0925218343393601440904894523878875710451984779846978887023719459295096772967669565737869613072287604686552355383516225188106796578503709509045590387530572918542114705307278986869596572922461638654440331966892740380538804398005245172874030626888371325121229060760674979248929970411370796128471478263063249612510897841116701159099165939714133837145426308394513747584959369440725123700830268087680267297703323317011432331565622478612556339532713662399460403407558866791012696576666828169744758710230285083004353193105200555371589206050035108123380356275925409051230113137545619049552167688292160496592038079168533931990754839318435496511964296125142322296556933642790325464188685048064918268239117734099186874216953033147265591354846342971919098700572077721837232352963873552043529504728070429218033072866980975953234646067032133937030936957184105770173853477467872641683534875578488224769120857223351936488978938792760654080640730935618319459258446172361229538329087514650752809082262225545570901412183347430301916530627552923181138524902043571764189419250033322345015904358850362056924569658008844752619302723537921298772662288554937752153840475282331709958669864992269658343680940117750927065293202070155447614019658803935865398198535832156631834404927093881935588392190670416815672230210654346868894082631010152496666212014669943115318231505394365659590095888479809759247186082880579919319379929064042035828457808119257430252760441006890471809790433583430413557118282738474559000843153917388075672156877227040420657242625773849184136920835135443026344166639555085796714980603372868634118307830929262688975835142708394785245782300074618720807978169755119220497331441833337336016694353181598468618005184071558158571695115505544547626697800710518421562000502824176897680557413973168421113273133221633712115194593471060830434814065099947452481709277555901238141204716838201314501527880542487743627846027742468622277515510273686036420397232714392495943023399850712242337698408060548774119868203959146545764635892845497619378613097494034569643314484325108630848091376240797045079157289242964437659779917586352015425668932816246782853939250724952254739943042892476112718601910313823994701794167549527808601581564523183147954738982065732659857104308848065661692133348606017772926420639851800152724151639818489910656725340351622229255203214451101415775215487586735444858636773100835467793657139280089284395777169642896956683717815616056707364663648084229181416688824391524956453483228773539916931339918863159336210264077037486795204618398846686565894073516940865940003889934662323036808454406408647125659517175426048923172359726202222625177449993397944011609970000309728503494256825818084908814986783036682277506391847199371197876403630853055358213873193330273594820771186806864479436466904574749988147079397094202960271772159437677257096225707484318618057798216603473628667839708011851964997926460404351165816753134184263079817464668129983211938823571236532256800328044950368238962466662259344149485053475557375889995482556879325477739325943714720375084768025550897131994099295589554610821404494191169063780707209114799090391738322508247040797072630102694645145261152102967206854883537822090956991911008255408431865793730923340602914283264670259128045295420429943154686232218698581816487720219241631723914571514411373301148295463575993586497386897107077563917808025094759424977665547077081596599762587146802131796665866160520421822189505422408202277739860626850144915504305389215402585422803777618103633912520655598097441881960577693769755543334396822677469179656889886778649349939118029226598815626050234437728782420005746381443082462277985931390616552825986818072700994578820893237274088209841931182884900380885157140641672181463034338613780234355479422312349139358588923031679504341872957089235777837165484254992313315022182052367214954649419732772875275268430525711316403315696409726025784600773562819304894063982912246579564779402090228875760455069482370264478644797320550114955680562479861703593494255907338067731727472634018602193602096425490489357479417300265117362562035024365243426197564021399713843183245451840951225541946882972100901207566354603079266981388418741041719095882880493673776011965070347461353981729188014850761997759307021886954141909748981948290521987314700001913455204732480737538983571430332478839622061046261029685615197216933881131093607350289844199839078732757451168911520373612055497194089579924706536507969542587356433836575337630246497879296988459593438536268884999176247464472492502869738632177114133192606552623586089021399579983218732004778436518793353999409348379463156413569109867043422576006035444107705518552809250360629651692056210620016273006767811563722120332848043051990005792712175810607017217250666991633668822835097195801855307874793631451715026589189113543175388915392456612670743641461357787843586344632829734778788262651615114730960080746448255079667999718031228689387128801637198977968623222167889645317038649967683346945321368981859096767475275602500009124643631622942392205264525063521570011678048244147910080312945322287387116272524049951450703699342166904674254783480236960525730130793328574204084392688487996182456827678123069097029530555117130873185171811288576303871538711232277760988526608856722515231745605275388428609619851411049825088974751565348916197244641514884195536798981360407996799123991664080415685510066072041983086939164893203413133981031005421239995483025428365595506182987329740078910353797326670155726518396684283645721107644709813234459831925699678438253845833382197865852898303417929899143657163846141861341282472472329378615712062352244804444413437342233107269400886774236682216422082804421888532775529215958250683887474109271938946452917914938472052682421288809716972194560281638427087761278604198698009890025555269072576894355501421930432082937245277831255435549939987170397330891034108313156120886773309748623405013075965962578525656442555702765842343637559481681661561250275932015926282987340909865732744961376517635029434687747893528900297931301415447535829070030577722510383050814208443707611750186747010281574093063089581029508255052209628140455090186067325277647624389623363104322215685838211560359183897840046825985810603442123744949738996882798803719438213670831104269218087869429850423570593937722933329154693447878319628352454379040319260923279082571589878492504518925269262639210637221230232455429166640403294100218363365182817926379806445394192188267160351494630644306672847875204288383625357438965936158497438856645906210672159802173243504355989113324729159035574608393605964950517284587440072642111305307715190267689298756956592186650868520473055451153149649855575041016220594574815604988253633509976912630315950765102109689217109487140873148262497414305602240002301539547428741901367661973936644767025174080350405248236465107856087744794695260815322090577972968964870162859561526082419407277856344533631299035606700336127751921709757810321355528763408332493490920096303292922299649609568847569353638353466627776595730806979823031230444988458043157169568571025633634261874506830336542188960503260383140616862138971104674466860623003703427211482325358821387283139614105352652318381590909665225030550130768553088803373128397842318450856865555217183717613163197843461078972318783392529661949380058593055850610375853298473608716909727179987431263487272966039736576626125811162624009942547081868165025284873886444275071021434424561414367877144066598304557115112313675699478251307546537950369650769747923930854650480253970590320671355506168484756778383841735686833125858483843406709629431578257879525724089195284938048774504446338122349354206526415274085546264198304397034809574137183565877839837134221494493926551140852993826862961145210962071112818961557396975987143398256686413905267681385779073683586984871406255358647558276745372724912432232744810814294891451902148217307075251911170878556576844039756613660796755645859808547700664661377717568994889176113213000611057468270796598877640262419612288600060528009941162289981308958193729136762717464790961445464180697506177307867756321301028192199237604967357421350205052949466527260341512499613453708050430292859997277166590826160853124145696900783230984717189486651870892890591330911860269301630203077415611829834135641993021996798744964483123569564116104082649912490362968145830001704467508271455605832963918198799118427231091589471470313280630166109029377826856920789899472671972756550350087048363226830503634439273838573310442783360166032038466491228246626160924864502002820307258274434454025258705003366228080917726275280548457981987943256618345495222402862156350726998734850418767592643245791446982710258583976951411844125416203447384089617163830915077491405087593585903198067048982130846902795286805229392432742957276851671923651933371074470950314066804407533471451527967053211078055871750571047806093677218238238110629310054959270166744998201317444546721591606016495886815746192931228982472767438499019312861678733906179239813363045430491908894763618870617835132110870784940049333448748763462694630312603584729142929180493593486200394164609182893628568296324301410238207358525855039866043445332668387771559667212128401663017554282917221235510887476809453523556395795629974246986732456124654507025515148731623257142030814995149531018848634128816134445536334703400697831906334699682294572571931831385289154467398735542335586372066521524015581530723503283072606087526812403645445316230037882101875776382876954261945749969133643503653752499057612444650414501011399679293475832944666044924924417466792916475439639172448025289778096884670311660142350364934460501932880799935555977065001222834291077294057034704461859553852371682981605153931311840732035706086268850820858508130536544578142211439900679779030206432785154790176323713354645095160374909428484160047216571916538820566066706796545829777163497039543400653044457795672794553102996032279271593185968023891688905162363473699756433935507833005102087135943841683809829609034928762383809279072406392588312383385652046509186228090300456213627966936964502254427817311655087691962857397837845950022098820726947221461616129058587929618020295659542240346955458825520133458515732176473236338583659742038707116439005845910778843594834409485281310091521969633451131327253699635235583669921848841861914775892094797233056495940892468535736962359392551241730340185949316949481113739570390430067913311906975997927214253944557086197560787268187980690060034267784932312340994456559184538826079679269001365699862524087703267198657745770291322354950154406008763065021743867840571132535915594650247510283851767857783831300923841143115530224358581621004889895726382969268864999990663338285821159884404694180604015793643062420994584870696837337983130164460594529388898484382971190327202182775843516201344461602255466318050681399773067717850716290008865203388815036592921352994783015412961595824795562972880581036314470229608337697048917085498591489825745923037703218406216011553530888455668362346231516721365012679714128784391936163998203320600619502638251982746894791157107734020892145988126009207969536261798723905590452847399144397062564548620008141219377719262309075000875902226954522104972436838122763050105642481022472748600215794002615549337522374630567786124869485514598514661921264578438418406108396322865284171416346756917709901091626185311519425022924127105620358270782064233670248487285885350223862847296607751270943609521442202345457599100699390551298159658489844182183622749219079252872952320858466133967680473736125984204925816872520405410988213138262206984702025178048113623951158715291943383097702613805546115942863633761329151423881741299253368830902426812188281303345790779162714293946900441835704581215025554376080463320799940998401811495190896379834183868989016679172561872192906837960771586179377942612700051354874994759740536617826297992765133142061241350358959480163197341875177874608495151929295501840206489286864788842362692045334404201153936636349184666793243046022216349313911827107321017024604872617133218530464429496877808513217110748752537664205396654792909806773762116736048572891035172588089335380949970281522970049171854432449856318122767339117891148467507408071316990089784603463914513058997793965183437554224751381930799831155657308292477496833545075178097688001491389138630522547762416913903895540222565035644311143959565550607866436478283007881824054294114434481819750842358861017065320223269534874728125627921075263535445515188528603064363578131529576537901694224497616083435547892769489898260852107052267518230759644018097660373250586532725870934136206222640094214069957976596636799343358925036476111498271584675114200901927695842283106793217612662239123600002109210563626275734691861938245010219957505500158412835900230187420978847170304871472532576732814178595037515056645970886566491650170468325793008594463426526582193193368070557999084349421480543775711331330898645085833560605151165119492629710320411618044116491720985720878715162282430168628029688987503173648069993325884513431576757493577262227242771872314232858733416535394677975305419739358959074300948354969204144738547579163046963573229493631659202828910046847578468814824213338790913123008926275211817154119525465281797121344112765557564395857521279076156413858271338346858323586599213309336494284115410010258436257200570294679904640327676796714430505819004009866019062945962224752282445184758546415508233766907660430549197466386541440857306047081470347150243689849868969040848783210907072600148996621693275551193236678966418378407494782044653954925310728039847790392598140973414021182741281152089552814119097279735602641988050894788811062744986200362888023704360307045015367084053811373868394547649741296201583160812006704446066195167511182945364389831094870210943677399603235311051807146255786955364919115747150805559872070093852281949366513578123989987109581605584231135406103245771907546351689997934918862563561718163144515484338486815435038555212089202925106147604326719498730066308340637698308917265743967578203827761494435930054284085585641541159715754023759132786244402966964088090725698988670144347493830256876503877547660216263180085291838875706458640852157205812598450172918715918835528562309010372900131021418463133606043770675402458877546245435672803182916483630164805212765214292534443940804768666658974852369663242446274475248300164513270602550656933939392360105035371395309825918361288584384513745633706557750429995481101300857633480755154761157033586838414854899593617811466570371621100949259523637200127780799167552378356658761567622377219355289449929714721593188998086725886867624635527005229589275052175721103916608152556362964625124628544346645125061808808072926145126522664212432426744696494594098498770563821539889635636624384365126862606833777420673117677507379867991068226950547561022724298145082079905114943300643082464173792585759173099133660705179191090332726311835912877978659214359139218870512369943117708174151470611572127742940413189222719772972794259650623038084676033303688143375488841832078881491650900374437789800847468009616421549224502962252056403712058361931837301022302931598622737986943923903887642941752751076569555347348533601554055369573295322258040886670390763593704433051569453549626117360423025816206119115899728964652588698088111202365341679747365012958840949722758499617594722960531425588682290232352659703391337845959895571904532941203670958802270783354150949068764709494195199381362818838387047959389597096079161833665516547415524571755390544870158338904787134447722510167427135795342084624263716152649703663312770310080968141125348326898305560708537592399678517168841606316906713570683922157218592445419894258911427548490551309364357238988945589482530941345319713775910169275429527494814993699531812965946804632389724876509236468091633361291997473919208963746632395914229982105606987644907588343033426898938229504662388007722953822059957307890306350499214304849953075304752465509169187432018457195537218468630250409721221417783000844295306373046945415625641221993452570579942073875090808048733785243760793564951551678353630683652490896397568803498473397270912759385217261097917693592494238623406577546088072421053879030583009670499603201013143770964928984244131505204364803265148599963533346979318682992433080807784678389880096968225426991577010358616760094509928146804248106037270495884574352885312557445846803203939058815261314275662059014596438374731404290953794503239037096532117683397041596845883233993927714981833725359960340067810231598468863831826079519597365343547258110384185779024122905089122227209661829318425554641641510309815647099133247659507700155271904315296482159077845521698637952346881822209605523931721063833029056166837479691782855109960310538941192849033362478198068912582492386911876959798385911716215654898020035909806821547433085802514946286280736290853446748614063200378070389150736532844258147521640075724909533343058316809957957676513961214906216355963995973766193170447552840179556489809651813206327134345545297146160078621097125378726762724793874241095805351740608159313780302143139893372322835391791786711285207298303758942583271216058425123338537538380340908506721890535788094681824453902717839739074584953738573048678616986633977192016792177397032989563283000274594712530150665625953796790002651895876695626634290410785805671903831874569769502492814786386329871322346561041674114179692261107117515398497938599154519230116639244865861914661876667236813225622480030900467180407670482999620062530941319574355612741978809191140663802614442446062826081570482130544283559673751750377614726642209095608725367668939852054752020848402709949702626144603125993662011859785936360746097547127182815340184767021978144346648502940527630687945348528991310859133633318512321970645571256351332197247533337498240401580477037830409277141356956780378525677983505475968251020133271048225774661536107442282591181516869331342601813711177811022007945059016454926420325356602414022838413904194632779406261065252577102798625408450620756523562335861474349320989062229678455014412590196375251332052970349826212197648650072472461007304125898969223325576782092411642025465484976702555403686047156737307167866124735086216439827512193652816374480455391807809115472040581806283480272634008371995965907752220075115345863929833186320980519891646619548316655561469338919254910876436166865793066441757500815204697597278053895851421533479561537171564741972468875391079356282857320869232191747879972856989563045087907845952858950424646224609577726385891938132239633916706538640993240341550209233252469978277224826801588129462851720138622531134875609969747660766320617341409088970871643366402617723983241679593414537339453058010880809723324298760140782746501287987667465257919920568168599442436872555785108673938801562673053300796086243692325030157798679393821959215511425854778912767413789183512782212271886971869653174578631162623836068182242046286232192570808734924751131923018623985649404991585608155922227468378193540149688092406600511058428084768355603385290542637231975393555650262413816862985166107882658826725852386253168584902292375644120262213508833976789340291562196978866409648346643794451615006056835450697442537599324039875302043028062738575654138793295249568166538534717594194694529612130647541940559477704506995874040481228825144632359268121431033754911734925074547438337462328022150144158891056578924855900052287341299864971326848800705613496035558373134147715496574946433560591330406234681203595230119033801003546981193919551863272324056161054961382445285965835382647559260823028559552302086513248557970900940621372401606220051603048770564382608744273929036551077516210247981571564270328146688469288269453925253919992629541255905842010971578986181528249809859984805735732220877307724645518596809282471499975992587243760174194812352808847262027881415197177074371126215222283268455525674309121200560577675484329752178665912876122167826078061126387940117917008283162914593383783791823508516073565753595861929551143342042979823200067245523157876356345673357691714614000562933032339187573855556319787615538416048381889468282324077990301493640102828159754764320938992554664070945886712831932869579872590259366394876505275708755690750442254842171230151712903640603577858884074267974901706421685024053971376026776785806248929800124100810542193719115738182914914509092148364571704225300897796204883990547090360500422789878062119737449449863853885092676326382065813248424106203390598823006158493084332458289033265428817977640767793505853855761353179864966670755977798104912831858705140466956741394398845930788855131954831192314103815427501217196012740199211747385445270832374109822500452320025090638552568206659051321716948541134512720275822475756723329365779292414822206199200437915552025468873027847789799860369687460895162796840846527982938089931181058761555934565816396386605067449918210976957445453750876045971998870323471627735428358933761533361948308610986676108132124392256910288628296201546857309216013707380259389071435153892557951971215854181609794937117874568669011823886475878556543651977667698783619368044058795445964986036579181740165025733441861261157456160098539459474738558325376759520379726793449621301929682290020512884306560336403133204325253432486075890261251310715170841506768180280645280249677027191719629565937444004014139589957625918936586996570033608130628376363702985182128530631200568003971328062463874067615175269269821711426046611531269522857906465784716736948123720493506017212253247178940137452500106152778091219346424231544638454372358737253692114475367117705655129184574428078909684267116596526312812481598608622078075716321019191668139727258619960207496365243656214472987830659395163352574687655657997574214986970627038326406222237317291028016708413969417715787282211323956214492508934851267811203945350895465236580977011309548984076887422068651072254914022777305759701763103012788107593521128789150948209843576622171259134750903787462419905549272146249374826311535606007884106908253288705340754749579339652375894029747725860151441989735231425630470576949843059945230265442930158083052899267507495710966613462242707218099793730364857130743344451262586371212290476230431644585805367180219467456458067053492669728253672472637995676474928506614252524683994562714326049732998527374806734770027787783283055614508595627342520480580643342015828436042552708677911486286318688706676579659663449143661159827080182776332890059474075640040353240400238004779591314868547347741477260573936279187873116055647918474163312872492299408191066635315547829389255150539743561131012186708820935909219263191808320288005449846114009498926013443696744858119056653293937189306260891395431009157115506943948026179316832628138462704895380677883797562625033785945346618220225751031773090522858261509674274622956277994188108530777263883528239493655842228909286539207523615316964041897120742467428017190624611115429033399050529958950207566289755053573295259732904873619805211768190650334775689757722122126035433601625856773281972022523765647712396124402176312170705099793082540024314640720229192320420538071867306125858552360425122774337402025700523614525451353357039377331645326592117063320483144326118658372326343800715834605737006562597097594017553468113000081050137286918208981627952342167826322853154384697552648070460977184280904397190542047742157051664152874054496514464466399658038153201200127675866710364573005356852459274064847362729473304745359914479269408986321341662026182860664266400938753081587791631690225247080178842923877127542621058982017518747192323804966253944407884158124829603715519297875730677053939507367765341987878873294090576601999674371246667705582247727877232421722106872965627345841725070085703478794031802442362234933257777390616901468366801049068878659111536595579363529290679256506803043992711021934921485819017270535448254854389767022277950247653071539574193000014567741027227591536432298839533264331005162160192529934288073618966314621230914212777114614679993727201753972611329210028429675213860144371712755181200489709854951215751273111530893933348806427184292188228061153638627921617411290557442640957870363883640817085128196451127960635209357097569194893800460938978677459877679993611009453678187026015883792973859130375611410567822331476607852129398794494559782652292017162699236451826472089085568636247300097565085968293923665435123504024767673858931798884036005859865874419931616882774494018105859364539349722302904418596548780211865553560273034346413018870504415790536908637617057122581116370251815254548885039845667140806044518203049925579637759105870170032226910534737924255597338165951700149824042222204739082265049558907312771509019559306035465090936465737915060091033376771170622368189911480879480738555548573688020742806939409593665362586530768697699615044134263911429117036767480317697076740625997711088701425869493747911184804908988973618033812327406834639174442938159665807615100620926457468518491669306271012530550941696002842238499793924375060913419579551769499031304303160700618258673307427016196179054297427998504246870769999390898822230574936431226329709028396756867869044794176589772155913776583607208568719427752736535329162821251075159551416260527936801503910848398126516818586742463982494424816219865864229317513094820754984771511523784907565589077369427444937886649851266714611949909417862862389375486394117887761403519364241709643261501409664667313914806506485204988744921516137649836150072711771811187776221568967039545197110446144416800564522540480733933673547591923824929730451715261310814193118984679932780681358196246103732124289471234661927805670838948965201931480707627250936809569285843782948819811918930517662858294120584015126868658053803301147257979314278003100811778162534906724419384676822312896282383947354454870177966025372453644842623793859057668262022639670180896804399973799002812176527164758940326354062932343134136872249856033589225136273909707325679442423658038271482105614517875212156412194167281934994331653286099884770836540841137707985410805599362548582884725991335134100292250602062317168207238002220100865518849596030523066028809051457884444142028438891856339672201467981267412362935687436774878089688407489794973097380894210234489385886890440543999713544630905996851478356076625576204998432635611188290348685649976098959976813546019088198162227172685915417046563230729372423276116839598997253664011916087233134755930291582647612961155282431175587147483812579073489285550095402002919460073918592651107355138409754931208296923471697139102111247859123778880462201730141187330481352711448259018755761306307244411917284876077925119908668397623823794272874783132496614414323870473391168848751035100491995682620895499896783763096850228573284674425386705153154303051754229630142246086453733915274437589184492757278009431463414510508936306249041513037303314960017672096606281072611604736464975623093490303959120146541817010115362593054018690962020964596971269379349624288379476829197030015838881508934071463143403169001873572510181798351033424984420303604112408949272231153423599469615218294455679183820767335525579988275452848075793887856424496723368890710800365407259632531924989262561477169286693310839788064116763533012076291083878984104578069653263694655506661206310444873378194664936576400434459104936323042672011257997098227587361416391442403472164432137577687830907747467051430420833255727833685282708761892977388385881624837073447821803425648242864297577927457103020521462024004637618022239008600158643853958521193964331149500087388172594632402405874507344496925411060756554478181773774259740249613940309675667956360214365597432591822204053415046739239886570030596062721002545484686184701332328668477478071775698031244590743278543787226107902901054734083922382354859560007819032444759667574892208292791818132027293594753994812212089830892977944089276272463413864942342325180664890291660063374445689041096481450858837610866551147001368727378786387473180785752071154591426488130295851883642709075082680109114212786430591232766439159644545076751932325689200579053619433952713893396939543993426107184153447545323276965281701515689941822660687306191326068779420159872924706373375250059973973874978633217498902847990100835119080421481941772519333266672226117312488746691815989839354316941335270089246704294592797774225694301447504867831065489493296582130445129753287124887832889674592889040913166971083420435811018687135951878307251892320970048716552556295240804367456805989002498881280772806011731172704902859269671190921715097170328190577076121041552448580225025571315263709755525787247139863694698483729015838673571286906682043560996288187693366033930253936974503106119296555491606382524343699936954608295068446013801514119497188029479610354017013067762934169832228980177154420091149551904822745951851760011413594922670846063464675177410657690173146548812725159315716122050959351367372026305701296219194664464108562973409231508890952628993894783192541030937583250746921272471113845098439509095355539634779762970235525084367426864065784810292957027756944580328283912906205302374291618398683148806712025284654872631472139205727159914541939096120715866332861702815515064713151906539458238578740137251872746675339310317569060282218935414060926844055440406560078200870298385085607496145218252203333017082432760317330694014670236718929109823559547217456354613253617004927769154638510898438237051867692605082942931401160224900320281822554719563013223887811867481860135843661522060971931361504783401605863240309058323557083182138688756274935978711416086434482853030461380006834489149920652422910484730106630941336273593546430459952871931472930875712752741725618265213051484583537124082019128484273597923922497154917526699276366727997085458122288268774978283696130348030756554128403560903363875090843055247671863644661596162783077785408522300671134715027447235503326920002750539603491239197386359230266050934497026399077283232646242013103989650066228384835739878018232157593981482417637372788881334950957912648543244342082175175562429142080101237733594951352656124022621954752557269730366507850244389926871798456309910681087126888393295946175809526976524894878152824529556503283986397100743445853707921381619575419723655780882429053672607255866889672474843521345442409247709170190118921046116756269963087493542640258575197608113085676594409249782910249861974819510575195213043496603195538763479937737988355832099873227651719095540472134065787574032597494539471516227718860545367373852632391583667435018417571906298611932381079781975615066477109826628309866042315066427203676297088444181181819189816670813129229478609629047418282785332615846084965012182050314678379532630473680652129770193772402795868350119583025759953913029254347532314821529286234550374225419310604630256558847109123923275050730129327350508268873981276039153939592443874671936658585567790771563813743261082420352554112829976959765362082962572435246554748249170164282425680138793357298021214908352439321227962583452123853278517089262847758913851454225502396547574494999444711226297168210146349200802798600906313144679639818190035803516428349914806981423366718272646592390830664968144648722862150946640803453048607246553268662397319821336594171910181909437259451939096576618586736126422392643612190440757413882105742653286307138871029367829211304413648758767303447260694820300100436544582003072941055980095829891660166415204752637346012359122004392141607854619063807426079304284666806813120218198322519343597490913770998270315759080857783118914141951791883049908338607447379612023870852599119575895626556404655747041365178740015673645884559832205222643904253309612453463685689795447303018264767656757590616487088690373626295695184416025063199050390913488571118345769042854667146965952400747221083893894570091131931274917675949319156567379243849715228212887830584887813084524319419797337828643441999900193280684085552898865795802875065272818093227884937975874332034480292045573100172469146808556867091723946137345093679761886128523354420583802203156057869242377733374396122665527783064994132183311926474270431283571237816212646578463036074055720836364696969529114843946009245580874802957257682348373899239576220292206629343003472447054578820575809055470100062619942945613270599489218986559999223500237553582267561137085218888827299991607007684194253797366421679056529526563183349851937544539802561880401687665193924984808339578551708361399095251401518607357594941706654559853769299915308322146382077823763407357079962044448313910278457688571856651079782086971826660544942312030224721915795703728154138740819693008012848696659692182236955092408766371290383921612503219139866339793987928959500648914639741704874944338244415686001489964834744976766803837421577082537859744414866310111377238582412591206523145839618547030516139067502591687424395369063793898028892024161824833550056179542468624897297630690702522532514273710064495752888793123670214119641329457148032763751499245204194398874885123071090739042205850745128551054655807959586960525364091575227638752517353832193923300819868412909521712927332579042976959251766259726604289538819518193115417228185129931471171380884851863703688582565312620969137298615839309975124280206261587082601861792392405835523856549281397578589870926496045807787385839377367655847457099096480613232680955530789322719721059086835189629769557699322191099862368379751450019598549641597306691042704734614044994719042045069753128712283435383267422034473944972227178507959775396674792145434708242094197512406240379001574664247258067689963104623443378646001978412408773102491867592533998596830584813586069582260415280088021289296174915021491247059845183858033249323074211087803692572924102793849460952192481114103269683630191126914242982674469856026580189215118470667436851091442190595895008606313570626663249947323450882735559265355460562562042157296179918696270754788555009909729593576006712750096571733177234685746312992390794536880909345644762207754245488456494400358515678400878533011566892594119898861379785684903359515958576204041627059992910127683369979846338434577932561025630005736323710832537606960486230841126637727434551025048421610304433851097058851746866668404655196417302862109641568122631272240846274811544309644667783693672625974772668316410156810987677053740212014146940827367730006757187356691266788804367253366946186735133304763778742328211809352162184901034491799246188732553430524318435211186810038096707224649266504232444499419278952415793424564825907448035693720313591375584353653835035947091105544056884979909993684557370322749994190807866353467311016799779335440806349936931567834259419549217287765343253120792096625741615356507780704138895865280521350517599015713223980229300644135894194095972517142072988400106850210234309509943474912913535919215255526488938822666915454070130133430347817420696624613393819806366987913045870625685613542532483998196392859892062255153802485020816825250863535362590837510868876489944324728368046985056362908869957063680051939523554465325031509110726231455033706276555814744978150816786880598274323357291081196921496541505679636359647593854264113476212793358534828208389514996584760811918671945872550156326298070401510243917810465468486904764075622133310818523434350718207174753681477227260931441192280574740010005609440141106061002704894113639053911573522334574530914144524590171083914161223448427813921723210966592621650599001126589749938165374047592651529687485057234229376196512328496304577648092419989291735670583832823302415122716432962841782414901607431410405423156586077897977884104448445073053495889116003304831132318940862451401167712100217613633847938756434858070985052467854597236966671367656277141613852807667709627612087381376701001950848709335827412486739991736406549207239573534333847948960978577530963082696526248211081414746240645355005469591578141832060040042057373769061237885087628505491489799026450607959284929636089048600545613981290089841047219088337052724027203495743358906437284378854805170754307927414815284148304661613046089624857472409638302481518376155687515481184381228137625230796929386604512466693873716004016352743607649509664392108676213984333835963574263556338187122996867380291831318426533123138997444656022113955567425988898944684826914986812423917343448317274147638217758614636213532342443194043411830837678726667173068134941438010991738743936305645001744636159035427116510257028580341560513296422736740391296542616439973802778645295148593769535863267584685444724991719160760813443639195070488066337167158328280337544973402558020531879030218184446465900762826604123196900809511471890902415361950099523379748562545300571523766888779145428737379446931240155735887852988929169035461876032310406690236319074575040269330732575632697764121398707951979408651705199796236915658132958802413016835296092090819945234042664021077618539109052208104058776387859405667780958146038147100758328997772655212375936238693155538450411979177888170560335494076806623895908022851981026340904744813195106847692247360756781928422867887435271024068089084882271000481199395951056135909122346569618975406227551066277053596039109578620483937489666554791739108641005451166394334328875590104090447152996357239894503069784484253531686997559209447301652811970753289836713122766050807296748504149751136062615767856392325248891442126140313615577303080602343919890377125662261342612537013055579442207820299722577608599474408284340299685459084211461461926793367522394245338452098637928129711938630157100611202679172547419381467476642795162927318323101092058546023478794451971200820922592423470288752981861052335239730138840417871146254003904450981328354637731270220658926653969508361922642894828350756832311685309790162486311229676444007895516631526476671829868958722239363979613396101834704937245645695208911561881878013106668245093281260507374498227127294113056020349611922155267173970622876722199954568908375609974418347485489324714644421615910652479836375906658352791021781375472389916292842684931544668893935677668368392016512602229599050344793033158197677501117898866364462605364799305013252121872204314529941634730738040838203882436586973579535827403663151322063217202625740572471381873484383857025094848995295009839265277737777620484537570311037043347814925058550823950972807947141994384273144332245725495357113155610953426468566147484433080285494348611904303976611359643070359402076470816952076223456637649161257861187688116021071769602748736006768538990768293841861808318880677564728327999865075998899590066448808945498364511836329237513718936893956865685917532870332417721860181032379935097868561840572400666497505454214344371789650345883362837430637786949163659479337835841265469632824022052828683789511632766267018855578347808399565074780706329056431055905003710654869491004650809082168830460396331752179173921711960480910576674475919073162180255146023303161358875844021828493903852800888835041303574838439137699901872312837190600313599371486722802774317712678897669287857184809641991155801041116945286471610476448291375639923208623069295117001031628594426064137768854937412940837570482880740501409352478358519773884647069468230629526985969258456025397830784923541840048140163972598968055989872734247209304967949228626690078444780910045918971511288895628191222459410893782040736969293959672956775104315147641699723198608768054490879110202710723071019798563065503576278191840372108357401243121142077475783392677666467073085702839040142605930010186267250038560409837823208603947278237711554437310947344014084328918218864173011864703700435250795526972561220712276423274749919640984295259484755917334857138714051987471238852201356967309314782211872430500121657932352883215084003400415734491081586650208668267217786664434378323823060390712310254143208507889561234237546631301462005831896324220267659467501873722529341664923717721723192950752482623671049840972711009346219550527411362807772583129053126165994988656227254671518962819442299582214475253669727852839263457864657588437766772976481169486491319958983714741741041584082035864024307812835589472719157846142782083658036632125395846266138391349214718362567615209810233239058711884429159840319161862727066746933905523164608947623861960560238943886114138707042305366118920822773648024353394226374361136590195999370723357237599556972243035048555978329950214433707753529190496894626326369007188669225725984534895559858654902834117203469350627865102452906156115865566198925561272991061632896731292992444576983089430469566365987035878980803876326902951731834734367937166562513517167346978683349582938436942319647876648570552997566658433944315824646184875997111965209022196690230976312752417280518256581234565700388877700261672361251453182475810762144823148010077746378040114089418383766375601215915291956916024970971395972255446081713849054384156456377536595218774343344101993393432436639980330490848283396242680077074496331618957064790347495604632653190904325031393814451235387253930888909686764131641728876282731187080485487096961543896603353440179849985016196082901186535356687361090543990093808319515405830139064100333751055131114913942790800934901674128795207770311174443642185020870167727592220417572721828337686811206804220711683625845147808620558776514424742196312507123095815145061332245690917072811670077089493678914082993252730502575491041337966002729951813539257150369018655160011712043371808320366095215226442519297728343772851443626502477444686610330451274419887202412687946687009811954436525319810220791189068552601271411305674654686670754265243704616658200471702457754806517116580836041694268472422157525861879128183023098921578478039909207905709804841759979011075943418829501211505149236467707650323878693879706314533288097386836472843360603318144693592329889452155410493367822736371114713887786655579667964706015960844788541274404845827744827383898750918838329259480258860620902908850209434177446922854902996008580008083385252546840826381343335626720334537349710076589294317654657305900014726778043359624533622683884353140087934609297709590749122378683788110939307840305807203222306777314237043469106421629637171462384164369429252351731296562191501946837074715160124448592375633283971653042540199528066651855982867919876616909949729567049640005391972693546992022268395107234270978444438700306658179934432252068686038581726785692313901510427027644151644206746048683523266906293622951415667973349472237607772499017022195733604372391445441807671818170522215275718534155250394819267280656166323296676538322081477963176626127645712051454158202838164070075288867851852190026757576009497669346707482434511383079752279074615788490864298184323193421732118089385967304300515959983869702435443454215765177218071645096201912052058390338621599508333030712729764442126779280577975151111079876116385606619295519827276830611907568656222960981065248202537870231323180488172221887143559800950734961064760016448533798097163325047479018316816459599847179167275070178132509756165599981511719742681685556091135610061054653351418399024289553069083320520065832934069892888269725077045470497299570820808698035850712371047031871941719937435478101703019993538002572594255342756332579207279280306240158881171323498834875962661348256510804918370960361188216426133524386400166638749830250359432952549976609768699548835376406628321827715531746863403801380078088494727334089184697143987713029567511388067540422007224701123032160982181087253939012950791724073323718012786640982974533561159462614898645541810196667956764346407991467707077439854430336194347709759063892507520616725388833211042111245959851166767818291746005360607516446255349994986183586863133095549694860594061740910067666560924215228269061094368835278507401315726233584555893351891367285262010465508625459930597591212205541419391239418679702427639292340091219334968305736254503806148597081350620881671523466021589666734617297309860500736805132880188675768554386263220347277334378744642609207502526517406994329380803316254663981719322485229548446292400820197938781392655243025341990493523598240417429506296865339336934681276292219805051029171994444027988447104671817159623045001231473120322614121915521822695934576602274474191494716536274235561963706526425019598991777949399897532418696726901923087178609128376737366033857651471618241674804593081465315060549343192142843191589972021034436560253521240292579593339033720094787553707756705882073097374063522312724370748734273995129409280150641224937514524366762991351097519735360342380832078813485870395892871607416852817671310768369024606946421867277469181424604177399804711716279619309369752441111746562676616219228472412402228919016121545814278194793210177050048006148988768443819071092449863429708925825542741363485439066719824931967692348253986016391501385915254501123741241547353185601461070828505600637429985170167053585265743697530877555272461801600810217733527650226061085894746131595757823063532202878519073824534373260570677340002622264123162890086604926645604325981800757793064704766450535216551907904993049264330116478552309322853628725859905374744859927492881290190011349445146861157981713165837896732925670625378133984719624836180123893080475719976590788916726902965238399790767528965602945338991358061946181566694293003895481362731880818846932653226202381021674554362562331190807399470090418315515558388857755724329912120539734054661588518453483448169247190576212679337358340975684745616067286932113227570280021505761156171177348485812478828825110109795076363980709916162104740974036396466727706491356915350036931140282703544289402691932690733721396358407751975583876821475315716737649578636027791746054028727034695195875751930596473595673593079893377204639391946610420065297389951907493865934156654211401588632927639569369856291178703916133565055119133859315407898844327146604179018378652802584642142874986066164013492541488037275951455689469559857905456791145881718696579290395690096807153374851460689754624112151946653028666140502822538681288760388398631716425754232971814223790998955370720678459975675510319673699806317327900152444092553164060864101673268712351392354001028888061275050131526355546352367458255922660229330514253010720302493078674826770172803149752653730642454295599924156723155451278575540205217872755167095100630174621059142032575876664569618054462965958322860602963412489976717198955605797712509243951476296506725631095088313635230972239714622957306365418973788273024564991586184817104108727645597297686788047252639691616373932890541203689166907642091982632014953263639681113978402301183173408913255346196699638286524805677536835506882924528598646507458800695423687787651132849159358904417872480689099603922768424808381326232602161290833415030020000067091749066014288522450637928624708608128965391991264041247024779695400106806299119609907662398683725309938646171379738555552158703413674961550085329429321985877384228744207930216079393898389568797106194988235343488689869233000940030970995937822535429398137340548422076108460590275884811336432524668970756053691866020017539697522220494056809286193036609559063786451753178284948207482668811471840227038595050386272396333048731364947588072776851109585939740190994269897783614179729009147520399041779109171534346413563912133781081406276984885269858534122753489571567666134763563324111178421676229518321966429230897766075561942390830239876316544535786146885155933436472484990463905351383303548370500887234662515918987003493307637474156764300469901122283828767154321665971738350531737030342796786592011595312826061389632209405504647747133756346945426596171581947845827836050602772829510586572635763344887121998017518253075153747116377798380359621472535696428031285529509064868014163104017847579625432172785965844194726895234279047621805928797834287118366626864765352564054352322716101782831638340397427892642181232011811330387082391882071744301801206464127644367477012328723225971525922568723496857615954122603253386970395727635239820952618474372239950131227932327501609669985551095957425712655261244514684290119113061720068605844397698241322003993648915353265539616412485778080718960058986831375129307797161465616163959225056164329357081177553488702717379598783917088360250474860277666583826946106935617983817689531334217619327768482628324237614350398681767142153236227976080739153992542133560056077390590366853885142019156354494350113983839628937458692988446999201097271807106822721377528105994798682569439996148635095369574397271869536675117146611148667475553774089672439703156247917471299641348629534969672824631048828548896618833615902919477837802368093093370355188540214432529445851371848620826725744842489249686670919693190095610742501760521035333099613769835044537539054912215378511961136979004303487693345412263666775451187140026612656897898390043384097176658307030296853017625155057449505156092160504718456055346195913971940910962296006518265244909567302338929129271500906071767674707332787917458727700941461065963536308397719797921101660685103933952720065374429202168878682814429664363163018331298651631648722080272770188352880756816055065756645150959935978770647075846954580802984002087446705549868084950213161850078821109222549054148051640948213986847936295110772136139732200297539506414941644945527751133899647772116082988092814369233641474326140006361497603432414343132026697504462175184229723644181149157517993508754872127727661847018028268488258535527025467362448447939970656428993403695475259055959683173683377081142366098960190367314097358317410541911232235083952039131968503483814740074690902255017579070262707331559573508859356190101164093016001270504243797911172049249377865874534760189814099765008728327943331215257832391471921275645350362227363270976403414062261179631655059549625386264528253069172791537171981274712955993692615231142677829219450626970166985198545429700857507945927201751934853731683150336440110073900235668333972401633884941448217632856335016860752883692901720467038894601060851537735788905960147867372096263092784561357593092881793876411468719350088104746703449842981886780740385768096961084586952627053857128448285981449557061953524500016345977009115688573172916463866601810620782239541976998532904329714827125656109169913267277293756210567131253972268412823949330314765814433024568803196935690247252906765150670505998241646078850548050040978482286358214359811363506040722091147873005299421733245864034882435858360365444576436465008558662187588902202553095777343451408914008703848798972623906792196395366839390937364400623072270062786828074278819368330956844156277879010501314538873690356595324047595419917227644488925453925727366740597404295785312397294387557456211214041384679761979352076470792042783736323735546349180057758923940190906331529195767671282083059622227314172202817991342551608669626533722487063433981496059938051312557862287235303887169394711252103341330683078360691855236338271757337362035575155025392419819894125826294681589554117635443272682028216871373406317192296452570692022201960620885759921108194347229110049645959971298570722547451013337407573687872112374664795154441541389463852986156650291725208883366236912408569567504716638794353061079028649937693994721094249954061468978991622176254732141956313838882039154062146384077989053911967471460339284341970677790186621470267594809621047666743962485494091133034296882106952141375165589319171920811901189616096328651290396459550612536533811232838461471098991294572844661365181056439655804519648691898125406301334837519030788019224869240532164417762824192059785936419253390547642572823489606320703346483461007936144891509613889110895402171763948676031953530267183305591341584376537612364076728549808842845233521096854396916093301750363350512041010639418773648015255002583976691015186781370865865910463274771966601725851767362985610605693433761567609276058391363994367638889329500947548677822433370879954849540084818071120239485339167746845666380830948689721938935338202891985482487473280512806857672449540309752307176073387691247621845750840366182776134803304803733095262838010721382747338210219518589913453117463999185475410002481499987720420508354628926926845377613704128175432019903877628192599827771450594091743101473366083703788536968283395652571779691657742480288597974127415761748769346785504815324182791228511172176957942917045149706733074199799129238991201587299153438031091641452835056197146125299517181219440195477761851998869929066465045021715938006874540943356259897636292891782361760564298051717782208920126210780696598802692656716480186958717490686498016386794538695134535005140000951884304725774338108135031125596303353832536972219955153678319733008979585145963981050709567824461676431486654390207970441421353376969845799735793353579147553916191873342928034431719495554191967026820268882020878057870483093960317292202667892431202672392282140222975921027297685660615966830560247870988385106867756988928060357698655433460685150491890369004599785877109415952653764451022511915612858912969303786076166271099279667792530196298742832468315232863082692130882550837695506327293813548920499837563502932087796943910275120015543335728531140083269165665604606447491595806811338008313185705183613242350502558727046753036540157203239736399236419013087547218419313858016642605755304958329053956934050803823154114858165953152448183453922607086743344621275112594869305407283703069303560920028221560030152255797362486329226721856160985644012381082328088820578126054199384150768551019861602419409347680464107359369301464942974257376115940021322436875420860669354959325905242105799435321937271064111000611774794397275877640565300719088045014492447077486775569429490853301240951818128481791259669304128788210194947173184542354729479671354308742009647436570087181860608987943010670810113231895125770854372893927619355037485598061936666603926523640914954832524196717610578970154847971646059525192640015617998193565829523422040029237894782524727856476732236758288582686641027051870705946936072087271546087092388254201156226531594552523295345345594543449275025543509814455459215858972370581848724788179648680964893379597511434317799908351744493636782896159087779211551261045605209736271365968218407812461437074228588801523032041069872121539478511001047443684959096011485173315796123578263755695576617307910609185774410403204746956674526350314818233624179268564193151023760031482159054692575261307665735060055483934725717129860068636194022529337927298106972094412725735483700551144563442841908121140577623436795082406963687913462261961860912447615906789601209926968397101218362655093912983473831755375083341438750552373184848035262990759808842264571693263825319833897124870953196362650426396497631884621280247161826984772307365826537562874155375954792687753981029003861692532042802464932390016009571408875240145188529063724375957725011605044772555312762175741163708055966831257059583826497009885354162551608825565405754870906604451801885376829308965508668489851502994582758417348698343624473251761260887760005535214446629588988880014867104332158466578592440990815372822574430319454126402555770748279861532385977633975230840120038666438311600940666699286232159820316167131651103484909904737152506346262456348505337254969962747898191298528660593656283487607766534483399542709146698939874239584315500216042708225529948719900669055485036468954213699116064627373679792455387660813183510233297328611278595209646099829744300403704095913756723766791933037787891586467544139474316338344188691984094056214327523393121634452826478533632665424823507528556285365906023678540455638700972507507919600090620601177476717112715929150207140866498716488110746595315227109667806355854197907946089634059032803137814959983404182436279580658928923159475057278374535600753923117221910012696107323870697330551785126919040921747195914818809672303363721630578908785107705493653042096129052850890660771483923609990441068715870104131350819690092621967493916734709403554827046551983299382658243227998452393218589355129390307987454396948542525113664557443386551993700210975077314310178064473895280679855268284455527267398414237410053968023503831578080849681928780787322426327218265804475415773958373846898185508614086786466496635445164570726486418241481527529890425953807389516164913335844793046069388031074267860073295862533428420002376427783113076714618658906753237929008305412249658574809006694430968515737920010239982450260397563794302710023971705791720030967920020562538326827533735266344196968758527180291254625858370063312048590514164393150723401704565912078357140924960392492990493732273817876687409253199161891053253486206196741533789245810059545766463006457595116436738884131066247448043064173733032895054518068256086172915190443987256596118257833602985586564406418396550174172088385275300336188787611307106176892798377445957744732628051530329750217304031880848245798030293495271763725891168153799384516851652879677146794585102294872825226866258599888735083032761819174748444726818887749714755398693218134809854393102608170211161073450569777935335091070622501499960441655741965639172687200259141472861655641577547690952510671419213234532850706112908693815257938654726614728752835860600256198643179782594475781726277794460396177282118680431554640643609750690393380868385906355917875357243061157519324995805047779137941626224656439113177571361263979763056861295466263064468564315758182339178174931164938154612182085419981017643002261766704648896010970320058314941456046317898148584517795554335488255225705358818250294714644292108528598194028425011356526910828705207309258050031244949537734249317248028331636499807896095251711391824922005087088389522635161561276086430891534842472712005199098572311033863146288061452521458453553189983592246819800260345566656137552636571289579644209638337193678121183300107546089473863739063913834455263518933153040790356916520174878869635030733526713049866393653598594897788780980303161646934290113752580076444458111707846857354108730237679583831205492383173357957607063141092410026450822544321614270594441232550925417099842233986083209441127364373899579559719063144502934780848650312842844716326359933881588876526256418695579699702683377867994969068305602581680045446631570886988643784104383087470276076991994652776458288988668379974154111238738541893997026286127353384379738239139927171971886586099827718759056146549960421968325527302970772215260082631954231164471441321633631779443655136101678385402704254425028048997518720296838416332321926947313286721262420749177668503262295004507766007890883628887363642349835141018166817180629276534539497758347587805631693976608436314979563081680001306308975477574240624330173408228467650400319472267867341404478191613263260506677364435677062191402042266191927027014696825484843883853333729550865509834472415946030710641680572534932765540598968299661646630371154918183775734217538207847904343343238968357394041048546715460013601915099895703315928467579314971815211976722010780419859534306772981898707700668289407413519860813388064571030879046367464550252860864406101997340040053146843158002296276523023529152844557920989573767710776224081578826927543735163280886344831930603601360808771539479598900303093754919073126685569441625059566220543752974363391459759983330258802720875455305707501225791590157528970591881327365657367887597496739454479595473680624500039694722566159720880511251323035818035641301129423132828026657144095440084052592991336044837155617244901391087095762587796631535976240660302863766574692990574576185435589594839714698621207043776092247661088773055598086058009430654922552817386829084364523560590346441679674258944157076414682821463566724277565765607476830916033952124093588431300395940819758808087782338248894388549693363218314204150170839887656310918819232074184687992998156763746564740912884599567532534866626125207282593338546293915323307156146538723206402639489496035940226514261030052283361584719480727156841153410139469760444861765890681828509566249487273044000375424840222969000991451975789559891776716363101705917253703302276289179608213233924435873450127880932034938390283271833878192013674239414183230962568819338107525365223426028108114918092331842269681097797691252498052299525003224236703663077330723240388428611497626543284703631755917936665168088228473339740079683290246842208185062702239570346422389838159041160810855109494405166928670872148608191590175814760659935837646830250683354997407927720709020808033478878904695570400867506795200224477332599631867581374869243928195094952297440396682177626026282935391233202338204171143891322927473393104966932082008387271829049784614277711776461336109657881901966919153406188194154770724008552967789700306299169490415747810577179483626314409886753175582760449538247776937549892453670186838762353252558339644235917144663339975875558961280046251967402788916547362913074765241989127286664340576157119070351122180164804495019954953699477024073801620198197184068782298398623956857464985987544726125843593294906232386927127823178343052396440519197544675554420900149026244983909266309928868267668123068750336824783113002804694824474147344851907674538901673362908364876146739948184143300992999114875484893132489201181540345251577810731368427188777559731243575086645126633986643732982344065137540217885844873489790896881611966735123074741972587906149484722101225530308690643246234097044504420507709091234061651826669726872539860730271872838653742723076978333511835520060938491565883574725091646885733559941767083747243259737904983404657525419501121423932214940060734083114448387799308226282916540650178334445601734212775445226933903730402195982870591486634667936303371832737088564179429471127752473384734049239304743417560855950501732125704004712485297691600599654523442080894787394966435244744547125956371847003879781799602186366349365915319678496688637315293825306135300584391490631249303573456915049440654560282611084451655952955908709576284227534339385550883460857557032463890203582600847437480886620861826929060956407325124356429549395786824775103579805053140774043526676167272348846025451934817175143702897573141175547414659579048580993468979048327466992056534927256677775397786409069514782438199197831381714013881483244704866389692333330484783109248450816903114437406281291093151373568443725196204247195536658278303394200394342467942957104390668221773385171562899869055428047459464424878157345657362665318528038800559298716087896834720402646000166169393264228623930205157357694696937784197242824136414131719888447879903372159729477252669615721607582200575399922218387658001239708690961754516926133277295784355607118240429387935177066921686878865693511346392837402834147830602390226902046329958018469244863916531401484443799015802567365740215363297191654409703829510703002467623834375459827959506882959149383259091418345883497904296575491365807374977342190281440296646369661824168870785897922316703702195252783796078929534523779207260610287519197364187279864583642566645187177738883163865451682949604518463113848924753908543672512217075626321802714457650533274320954471811343754428552373203709432972309154575963875554146489649440486189284548846884525652663045695795106597979024375348088492737898140682495014090260203135845080632822376764244079647838496617190865890679019722331140659016544372565576057819934171523066018446621299358270777931448434357532501070355141334303240687900204044820220862018791554893228855334477606623372989056759364126271744144428095209864757664606852246772493362625801798855508171221787023434914983195575018579576372138922516686132346706594095545280292954420302221177003740733494758585547227039185765376101526829332076251011029585771735123118740602616726423660225542124118528880371103864171984523741711698791666963086282892312330200985894725362683131680019535897070673870045487028230711315716851976927039431008810865787304901739729080247182312061738403861999508375336392948470521801837391323868649260070089072978129824002368720973563222955739373967500774133935436708166518647413837732913764280651416158511138864216241504016052377853716455678784712646489399976458651993268182196286740979326416933614452134702170031906445582431677175815409473795134925387164582968349774986756365139035995502338443686009630206041546845316268749827911320412352681095504782123431022115908109934562147204334098248029876450424173089727080974617251793767329052678393728302148083073420363527630188060057598856043758798824728658960550445566025068592895267935624813906646184623128114096608800851718085982536423059673119112895030110886925080621596223578679224567368029421879423387455125945274167014391332905812720588010472822956649492554787409332238368500212183531064297535143600617792058958791400105060968048653809264884158085739347792963579373069479295012291466128112825825193710058201743826052048582082833060506471272853452695176373558017834617490087209779218421589215645175406024691748893455586733170726101438930827978231303409154035298034936941017180847088047695136331084702981995871282371407997549578977615493341262474294081446275582308219393138703194563998882521480381229192071076179203609803771179013556069777098398302957104153731231674555743010590017650663787122227140718799333623498294688768400343078362937253174745447761095003978813217935569626052252483651614449516020796488802953909084441580834573334882827427934195112322915042621792366134511170665387332421081679397638600549303038772427156217282371791373818401001655756132293892466311395594910284006799961650539844313534106441070647670763832835612547400933180065655313379317891669926875167457710629521191664962647418604448333484390823529867527410617928999100451156949160941652034469161813814342959779484031878569697494129560667434834254050749083518537231508207671255680054980234823190999568278963083489688698969765831285849676967381607511146095587745786466112316787913431236542888387225379140388283613130501469796588681764613012902484600245760843002484228318055995137382870402745590853149699795234403922051538483088734291252426799727329839317865758224700097709550918369413590407984150524351757041473856527461421047112048461823651067383119120479119232229039872173834194409642192613290572143246673336371556524435058394394522501936444451291211362883341963920995611876777104167550176905024609342340446402974053488262749597795615703500910760247663137635196638482594043589602220777427203736822650702771469117920972313307053277462850036539761200552155103946686034732949905530721415813302232374839346043799080918019364183008563417901839079522477574359004269868825357904793075208027917119395904824526987420080683545928044864079873289345927521085275339584809084877338763722763102585396647952891649975101420002494991510579321373378897516260262854390843561156906844893585551044591392331441716226662678247453240572029188358871325280993917059021569398742934230562134796836838611108608978053540909175944076272903684242409297949501208028954247939318793460157605369725871922842216524613726403580145788553526939083993461405501544285560564344290665425392458916790833484443612348423967585207066323203479860287079167279785985357788453451741761328070847701207020134945452252808330757738388062654280931844896723682771323398572609180159000397875906313765238934974857377407871924298590336295318970924093820757243125390666427359048886835611019212404745481101526219282074006460222763595051774917389437004299071879214557513099443736640327493280725202319798277886670953961914396493086508466508390171520856094458730700756613192449095301823502918172284501708544976872910559208148815862776928795107162907521277512289825153427377673077784329470882699946473333936254341705127735889999592981527020363374453363252024661444565104597181820910668508636418250770396294843533956604641558723330525196656962834538422142591903188908238857353164447814834558911618364104427503044217358570263159895420619799482793312577990215475185118253728977136314373419415446287697339589424916130345081342172246846143798166624948388776499087894445182232527668321422374702224407742663744448174304340400529826786135389687505582281627080343943810670966597577167956524485104275111164607156261820524399294878016274048324599824433913328737907059376766972016764968441527753140374373737073725781075010680588724542492888156477364667374783873347362066739498080996135195539811323088827801322371292308670585117767035348809876396315349765495385198089081166334818995816478314974055173919523120078383684159321060562117365911326266506080232361965191120830901406114933306237476957635212006385871898861990565532004916814219399002767780789354761693403027437136122780980972485130831094778787785847382266802987679252593793554111851716347102755226035363524448643746866900951063080064429428657237531341348251226030561528090372930590341185837529754107081868600908246929709640800229150053829133487238286315438554141340152085031267624788630482253580875121652799272779650575958743332009876334941865401409152022777518880164303863838000015897717296021340599508147628989779648913643951484341607233165145937389711547280514304611444587848415589952777806093493206639490159825877037672595147312154863512149332947067448971028281473465768949339559670937208169524638330503291880605814447136206212737694590678033155672038402280386694404943229370537794111721213192535800444812852667554953931240471519327139124027391980921426433346415517058388376297776922173471382253248290678433236313762810937122783120816994750688314567617932950732499818998849115327083458696560884976291191863122044745844669615262115057137106487205590200723603478736061145344913561344718463070780315436005559793348615373728646422826384532489924488998398140623550690465262814475513681645333285220577273802926802125897781095018149806757865546488346166884959562306155536219289400754818769755165311246437388757520118501199401684137152374628988792457735185992346123857364297758790001475042332415303820302060335633898003476650166482827171588217171321144754727573940098365217525841403566182012568486540897417084520702390502056387299688450497421068425688947948643373462028938486403094813770246059281651789088873799346660526165532830556845438839465416102743855431687082543950892477629803417879804071429972091384475092051385667288419058455348320218868609075401580381284630151123323906555185405780400415434144337627360711405816232180636469691944998270852268949871241531264039448341214025057255988626659043276723714996779720522988456385750907661199900531375530842844365291658352874808664402198772008892721976757722694877348532793445500523638567593640500427597139358960097561962902052363119707201882433286039219739332728755051632234200496703511238874176942356425629991589654620397647501179146139944280635686534858961838030810468273038252466587177703601521211723241030392749782650114167715914475730570351281270994747776597232431670589336696031195370394785214873002954814169681127560703059961329106717892473175236961068453458645787158812360269769978426432207916992599828541030298325496099891491560867903063994559731597072844381135644815999106072681912599025778791679727045846566433175715926687292364990213700355174122370398929507670512067166121646019728437369876972213229444596295262312944287172239652267262256755909456170626144067202132421840922511709607775056058484930143488740330630502876910468607793434674492888308910056889480479866577641556578128090561637842555246620452155890332839598926050378591977314986815858812809853804391493020128454251923878692573526145844967011683372298065869200542006027682106553995047455342073312443964358729297248409648198595450582043716150702006472223860511254024294788737378546888331079836627764133377415871023662290666863430999703794259214604142287188073947099631311661421696534026899663764530014179351418114791212033294525677862774105505956015159708543342467124284462761095817828069879249874133992746235246634122332072334563383839782375028957006803175459581163389625656926556971642656528890320044297511980381246524843649314005427312106472030277947658990864940039031862591845360333386140477233274232094506696821522769404262646311796182369488956982388453741594088480131241710418381602227687979520242312240510004659515281791182286390929441683062455011571350889052969914578674483245045252296477300226477168265393474066571748662183392685721939539159871504052575430746161737654505088451270049962920904284509824361864284013487107651650647852979828558877205957714323596096164596532903391504457183013590524959122309097670481805143851648409492217742352822737690290556907699574563587664952949551677145578296344535518509542528117333447618832076751937205536120586143840577916740016577136778241575368122079710686625296349788841281293006505255308379050523250488074126884991988626070504915997645092863399335269944212284529612947855573481794372283310766179200740682213769911105795722362167961984528082069246271149702825727240127959446184117358377402052485303538370914669527703573814929473356680756720983386781842721450901030302994870449865914761435519888197734584313223110357616344187666068296973367089812774142697046325150737370440626889926066173317793487018121312085932522875895210868015251670244779725605353139126103068517710674936153978341318914554732018956932973142904300852439440109646369022332913274767352947700563965825618668049961252901333071565596742905186787115469916085466044272610956568063886007603542987583205964145497317436201001468560984889640146233292444790849625317036589263785368365493664646793809693416865936585238589241972546232131420145170733941463007377783641007523087915814779499845162376261971904754352631514559708231010021563303635423454740294216736956755065760423131419143294825525688563419351163044742710846768483529514309268128450028053694742662384816470491672955640992159647067388532499412975207475026702218418615815939652313111665943415889448408815283755248830668183865594074982355135933530833923200467045967992439382469493464717009194568367861201848978395247392945692604542133898750201010410793479455369280926538701450687941953251271842563959714922399953086578833709188565510871553798746778932631995455829334109024584721509749747315816869991428189539978963839011918877169550563731767548456664547846295749333262321844829374192673784589098980645952416311249649178089406559633461228961965104470119259296760633067349644684477673358795666242681219356173793785189860830963211789557274346511821706198219148286585428432839653785066109504532776113103100593618322851578688368399230903537118884269183067837525558549042184439514563524315083184593094313648316410045342870011426887370921972385904722110979186530870613220595746547440229186446392049745153936725511363991979381600618682158819423035426341708969270071494554606015739784843174269125154067141051861132063537127420340190883277487530379000800358093129401290302265899547728894879523189807109782371341703329711014415344118580129878222384955289117556097381662626723356249069701724894051144355949269685893642141362827693981929622783459216322108181228116605485188841945652162548252680482533086774974348599609290371350246863651370940081280063465912939520646747446999028903133036185232044402159886896147258688116602857960176606304030079012412071726212097963075280612857122493743565412581874304860280611778032384253342532054442848159363571523012607963307825948315783289530188925053674295088369049228276185584677301400569693326579288660958934705048313378160377331450061061911240187471884201965366632380497665403861882559031762616814824705285136495280414985969722496462907662372874093581314512124454355469305844547884728458656421440593909190681632420830537150261427705995082082724431228574941338983783719248340160582374847539626569104098665621980813973975363977855791282615619551508653920933317200770502024067101889343530407801503128703946531371410145100144574580781966104372144731006328878450577185579867469063472625075062550616212409154238733754209152275273799259759031592961047286489217797986719374401259515664969489074980166928907457473505028976157324761006947832176693166605527075552705281315912441630328455442422116064840188973520903827536750477136830050938731630158336569255978937059114551972321972021668349398486944022224510802151652481218724743732646362951353416548736256313831054244235311727073554899722900896842729983239539933859568345932919637417176628620849189793637211005276812530518356489638891579848682231134198442543663739697354372392704779622966135625943909962723771998272263258800625489011584055994233769299837252582191558340870120351798045370331790228156356949325604039131099388142269868270186262477918632317224069566726071304615479674908086012402534063969751906431543435937746348933188557558345759105849644668245203046539725237605349706283578677327647776875713918315390290361758350797787346022732128321896260156695300240773735374984331759004632791269908841498092196144793170448047376586837081221083342976335112311419290319988840678923086606172303463812590182933852257228688351361207322943312252648084641586674284250222672311421054396903105351719354833226078949177761688332524277458669042454697919062521673707693400333398623456175657005301221667402414114788932796037575330759808176746300955578156734682296915878285286435457230391745103815518449234268427757989043380516008519194444498506014183129477068210245064453456331933404752168554474882188447654786083143563402538773204822321456046663583078857049319026200767672376976516008051518718162507738005085264264125125870462672917172859751506359580328602214578361120086798896437896610993265861825859835233514742101909550537534382957382297928792518648152564564097458241410203313808796574619801176201578369468801218096219614665777570777754163032608218383378018747060800465808627255276639630421617161639075657453492124897684033307316150678705110534056476744760263382240845676215951235341335578133196284382911196195689604366670169393938036208567997498823723899532549482901291052256683796849577488414312172343127397843933449879261740280071049726445743206351679575830598148856295209980614269359889518107417534343450547190444729268551768672560161967408203272451625016182491708873777459451092740852749788162147399813290428550411761241340653214843941685175949750376571757158674398497605870054715255037073185744038426954561530687830773860601052814810046565370447394824726148941131864704759165941205663353603462058741951007175849466875151439062759006391987136415562401813753046728844985488033097834189196667721979547959461593253174016039795905736060723537628980056254205823510012693204478484747789518972937550691627329003315855682040437791927200067212093567136648436233104524916661484094288858302024699396970536524910689591509044794519419662142420471923804441932243528497708906021129136603847785627209342757979660280317245997997984706850216276086707549623217330637079805217918331088398233613553332572570408789791866557301482084562041306913200806875456287635159126683578315127780494493024247703794036369875216149782041117285806043167316631383800429364727649101328336081971368586706263430669111404211216203301830857222514679238808083988702396495363621729674044804261078744651068899333625847771786111802952410048316989341247713385481117492991363760137710979117872978960302138007330845579409497588963610054471157446329134860590353138981141786556728821128214632932315199825997128987662581636039249501771478680211915175561612560181293902616169287189484142288085543440957519989702272203142676115485140676783803365505392249577068194030929096925375358904222016312973130662909260427187216258055826488771629150267506461892577349680851183305114178647639863938574661822360118886392970751718990386245178719228342762870946458140462024719764985568435722769753188569480575710015100011883986708496190057646340649324945606617730024319244863023535955955271352134526478127215396576612859166872803917075737768287813246510513595059334409949799876085260150855535254574839875179615415231602797497099150313546622363162800398146027666623802273467048403149482729401802361679440336530412992863389633232586233467103090766459976819289504966239747034542402365001963189610541434445485102638555566916240581676028024440314607755031439874809402396494419210919198343870509716383081479530469132023327407772537363056404603707247207088893286507965949791011202120377414996302782148347001682471074686653487454390352445735488193913250155331940046342697789711579854151490755026168099352506036687544270204454758922533217627616179523549041372593248061589607979124182229819421869654411317444334132229507006412037003807797514828819307388131989929521101539058570361674808771376130847485690387264042929912301076238492850740515181420561008925335669997684071241914064491135656959487262364947359276518049887525274968218952865296797460908626036495225615438540804468283481461215776014769855344853999418023853434632956742632872435806698726563756643159806693782045683365870307349241689824188917448889577641810771499475377555540196633441681528258179382720544294960805249217966437578570933304391608759955760765062456372356062634611806908494062764401491156397022756341751915242342855347153817599021277784441432457495615294244579505152723971495518480490657060069000235217475374109961497870433349904727297727456265587135509960769129331136966010731293390297645156930108639090890965695079839387198790254305938494654362887062286101794381074600986569881015131488485345834143131325300315965556902971253397255944617591349745776342907468019277233506678016961053307121909962519989050397719981528337223619967159961110857013915034725233214735254187611653249911922632496216291204464550863051028421646558604134319011151923462893303773719360400334231332837600293400086244991402781687417692171129975588218183448171155687296368047457154970301305836737977579255864359688494195846531273416729267855891693915792213335758717565613332336192040813160993182781457867394029073908623780157896635203797783793283498290802960739923213825302439648446291318996073412825308989090454723806101012120087311574199350339039277928949208530643422929365183381932324698683627368672124447695091289318303477082019717662693696747503232958722416881784547778704566139286319842597112206343726493629307374825137013453449980583769436443293096206254034497387407548076372788686489101490925181136154270154750461815417656210955491021501746169838031807053312873420716096721120497857671151898333579264826050286411302936008714156191076934834435807267017670110576376267564417112396655583438045402018722215806248081615458277743499370854941819720662510829305836329840731466169712255341538391168580407623222346671165238332380532576452483434016904351782474379553199985106393050687342080216631978205480550683659970456781808626826135731733862707734061591298220928105339242235155187761908610441135761263832813997274197241538007666416243058816444262499401267035325028277801272253878695971061139852318180526783405338950652357227129848526772558436440941052188676408749513010129204709876970519320386777382572706559797702000838091946179658896276930359430013567906488367017827166178310243041113614468424683413065173005232965986239381177895674044193097456892141976874750713168890228241529589832859456856840232798006275066979408559867218193723075974651051565098410999597165588951544821950165137019439546320329789854005722176839249893938135383125123861603596830989398045727327427068229843282949791816389645361788693805752727950732432812443210360914102484134101246635691621160970264594810748016611258180329325017138178114235482897979791343271129835370560198471616400804114729378997950787500413833626420546301012298210202639940489364285125610643488893234834480403303621909602922879697944107378930676007924444097990855975873900409166260954119701971667858976381335079183735254872170065137078272052390891619008656817714931948164317922310684174395156027766709129549309113194535395988927399336454759245591376598596264240051447746504483950469573721224425578585623760666073851350420412118248367202630598399607141997570024886551636011185928436795326490380751210572995695543657326471889970049086041789243376697589427368232262682846930339508452700245073867063016865818946856561169227514569041708456798443091734243486177798301566017573069912603692378879660479288020833401716117831028050731145999692499163251683147406090281153889020006320236962185386813693248871432385856261380417094263302286466006111226349680051819352651429502401810500224624819125504469359264824418202850482290022873585563313248184691726926327822115678122484680547621038468736253380282143145053188603711420516550418898012817992134270654116937388731278241730020030141795530536902952729076383723192841944928136017665406378468435116406911733416641186948422626204925568450120750801593108829396737109444678765402816550319109890549824600250319335011654781032289970083140660786326049945183836959919742511853954341592681740270095419872404274753809238835286952594376135426109316208984912206756693805902307589430896097580026648752120462221901245942030648241715098715009344997937833250550775372543439402730325754655723923273420841865864856902009995732806567158301512887000075108580063953595777769719865190572176352624350737270471035391932487191125618431736129255228244861514502988574874841077738289128790261631997563081513628041934979274522664885808387790796491964984684722040699944508275702673082178043279377263062982116203772983496799985993528650988915462333131755828297102194523920038311887595982851441133725942765403807024411404659929362799458842355382762731060925722061947386898802066099981946250996788107839412978490186083890921912225569977188765253827033476920062649316123344684196880362795755793350979693038220193361832554157693662066681879944210502475485087143219037354633174414686529013418598878905564738160172729696457912203125734141015152507852197615518918757756984027935680852159898781230907785844823483165023592868687803941146009360732384138297628003398184519987303640938627643788574124702552579469816992259968342227035617333542406452186006276727971344628563686894241072618533308021572886649973305625225820476362566672665453430447077979632725614691092160118993066895048847226653835708685031275370176669968219197614389693366504495646848600583238172937341329019082405336132375294153636490509810470999481176944923035121805872457139911987939232827373773547058065931279876818349401596993296087501734214222930352188761002122388922114984923835975812870214354541587201495239210371988017920245173841067998006001124610697689431007232157282169072881999378474099981124656095367345485851421107552034807112706965020811067444660123808008637317433357510455136485843575060620044418566396033400777334492553579579885181979920104587411470742028587765763601950760801329923966521980656904585513038207410241190432215933604603269454154220722587277368776014423314185268680502005193024168093676164493636971691669705268972829627948273688322515176786867849882692610970568065525722507020777282893963011810057238935855890856448124122799820293810737907359881094919810034354248122472990741036372454786809742315634261154060971617725984532050188318500940322865168897886152046424343506164914428456033323646480287623722480112288731220527032094061527026998565847296975587142572900905140302024341134124049462761958566942127024478966650341465553542712633027125115961931854538660844987020771004908562258082745979412973082830676551366744221053236213796188214835326715569099876943866395632982823408658356886108001443440135706364395521888888787112324096980045614268441460602462918054496828155670042872512322738795309953114194477358117281865323518887299608750730582000510606655364386898199911766482380889914549452684405228983196777393556355019396420815113706042762197016011528000008419985567599528836240978708385817942861300223501937813421447237108904047184169037219709773842650981715532996664665475843758020751981648868805537502206211522097212606540867843217686862339649085957319831047678048131476924610473831922495713774485588421765209099273504045299597548364842415659860322645607121669756446578123732936093050850194358924611152288366103489361289451952169260228136334345322568364006910758436261788607360002421541331296256462687986982205694299636859658449060324557975007665720015880671549938765420623516243719490185416429878028560844240714829187562846592592217001099821075301982723662343700839698031574347122234419233300141330859722312445714196999637604835522472832919878591216132500263213007965130429891688318811334070064983571373321283150528263342348595394912000472313728130217884954750461184139047976010423470336626517604903709946471398299477958392787862692261241986609755257270753776262283463551933304248864068912797561825746696407920252337692062172574843964952977242155081870828725594906378185349967436947019604988192513807588454847078658436047708683824327518457691165565055595181309733158195830483190352924043932939062661280161567539953730983986402786443679924386914266504965003650802589945202444360716991494707391635404362098361214830243906379498498342566036316846202595638884423891312287385570588510333744723996320820657236520307973791818717589706723824557703032171288249808918946646236397035963243601154946249936801706394951264320968055381461794276325575521131531702672385154181072839993397608769714132356486475768432835278597448456866399728704487816197680571622932177444421521768602255295303150488034874895297800345294762922552637105227986644368016612711908678719163237349297613291408862176123401300162940787249937727546181687041204235505910152342210324202463286114029962980655964037110897125798745595811212451047728801882902235106093118687730604842657833295118205307222193464203481986246855704473204717010590985831025595717225015233670359571511691148371321948104167182931294363358248914797574097074599283591200014453861709006023877566753176258130141537001337643027907408895572783566657275002289581419328754302196171651568125723763242323645592545803498567241116405249833782305667124427092274292060104773347872641903099996006429575248402174275510142347897281931677928824954096899734192859522728376860104617579239670524558023154735021959903579083522704346696190516367103823925863044736673739488065227416473472921311801373046614628975558770553448514233241722121538509718467721522727277254168619040003172793886003171418353001451437135301942855796825077892706502059218682689057583466210304542353908552156423740333858426129392421247469981872606257095870999563452237565803891533911684391908090292233894539905543213016889900252662815584575844488230839777301402635502586963146564390888573649919285730628655364957663479997604539832131788584160140891507253548469504087653663263391150852635791451676218370650799311549669245142879208925535912854009687153283116145211749075551052136128682575421365305991807533855982591887002989006740430167066798764470735924365296234254054862546412281267745070737557590013810361056311322195898855634584167681509873960581863875873530201052098242992031032606217609176336872847513955628663625253667606817812241570137712335393397854849500002171965010767049052227926282439656210987077809888837575149171118774136952210711473125891643388797595334192259670839988292684438195007090617857946810160283878254184016225441346988059558407811718890967595467225636897350232824217236088337800104643309028985913433184116443274424233193586374324621725402559187774020875849101773643024204678226799488455724812383319972035039980672273401403309404359309372616082024953372310844715781356058029470656611100540698494628731493506953063218776947421665551844358716333503210984026171823638986845439150837902706928840122634442310228077866574245659810252023257243264571764409852526062059722716381830733316913415222585472333034120723732665906066985287164904027340567972920368604264078544074893928728443858481477274337455850894566599231780562706141632616828553625449519047298084387421906875822329897348022889711135128071205893725721767392858150458013186552346782324234318353198316008583605486753736215934709400686809243589779694970962869247603381613652573031425981101983208386852372590675573927343082445527070435019059131655696750399158633469620770082697382220476323288033674342424903778167331578825139079873556009882914523479169619313288780019394928351902916483166516229603646105992464402058235941305559319577411281523606438755858747428010201066867697393146355225832262848446478719769494752437651632001234788118875082794801404196487432593128782412643267488583152389694484911088086791564637754739018691542463625248532877416543382241508655867044160700297900608647144867170455221772859888568747253297858527327611589476367327138807237045565793838807241499867272824462326407637235925529227987486508398373927867932999099316692241500299194020191821067783730274583378289362734198050287228091835387699548775930366815514426416150802697441863726280945586343738647412929384011190300715601812970267595221701878241933034046920332121413528023692081597305393998685564992911086682365272239022834540209737930695022149375749534887951737807727446836886860672915848227753114264525085849880650179816638986996936679018863705641800114778030916026030027459485019111737422437133985961456405511545321497717259903334932044609573745349978358742612376230044603402224859624033907274173976500831267860248715772140258210386147468124972523092306796379301761683329870592453403300159487561837542910940963258074347610338794257387965492633977192146062256781261934796378182366464059801869327191589062625035019162827631539819859726833931685728259217325576619868726844410517391096661450191059370683043058679974822033913123170256649976875241630188998704184757564874294467181884095544513131728352823682981243905555610605107031554894892363174324305732207120460716984266702923217882347936046634073033966729319745948359434926583661343030676197060319463302648506771945863849039000862342458782024698688600396737386807081680865363205114610428759962942692872367512748528480085904123535163028381654775331746086777709817073937342571664420426144578520553799794372261272144254552292905206605362165634815470662403071987362002988702667133061014142893053470791423269095069553124747951492443357940105062932124194232341401122940767360599260854368379991491278038498504601725584518785797599826265848358015670247124010124966044699371237212410782438960586405237953584255158318236208222150305241956450502495285765183038381826263384660609769971845333939717315133682940002428200240218281241945485749452344399448419653880039298060988839137190632883889010775971323828978579501067183631718232753588166610571915193231914071135464601382034751783266909842973254875405668084588360214589615425645132300769789915331763596033682169471445830109602171466732221707382225027977256268531413476765448766361311987248246718879047938690860636307490439893252618380858532339862628435832680226305379610420425337939297670482678029626402092305179432664394124451372326307104906184945948084461791979121863529712135598197589208019922650237444905883014776644279807402234902563921518471151719743002394699239792892267829511107587651376943809902747167563626679769341465589660199283872353592259038707099873496392383496824306800268526990103730097629202662042418824742970281557764009154215500311655255201880108387814159289590060894669723041784482459092013409971391528406646378166563302704804397638689792660901307611131416967015784947435079358827183526040865892517537380602042658884771383438193671461308846962463914452366701283738146606263367390114770105531074944647080199889875750525134449120721497754479011627252173709403270300902847828056895764883990532368560261705085158582771309634746092347879519888469601989144407517400233486949229772238354624344309836370839582341264682801324328974651506772180893613819908986295425990695846412138506912101937951002148364134247001450906386272416222157715131152162745808367307498449096992934685990888580558234476836945229917081360679623807156546140161487749954833876165594354942343195567751804045338293159257876461954272806288024211403700406800179797336424983717885042615547503203703771032364456034114883323466334826675300482788638823813600787371482660033538043888051007335850978297079013610343365876522446906608349207900254527049169246416826238633276658895388995671418268536140559445096372767118638066517118445954705250392521167687662262263648769805865441519276654748334378890138065762810294162065887672748797878228461855191817348398371076628047506880684192029519034380876478939836739211638178640266137870097166209574275591044313525295534017796963061825776802129890649475923231072382792819700566642456343525972415422073762987618718510892963299259238305424287058652349570511690548971379822626320855083179224961026158347716861096268906616138273685507594496941732426652866323309507084026010749452831587140439074285172290020707367492940843740813706350485868799743734613989757563833985005923409319895445744883160121579069243457281025542375665411576801411801780457295348120391849648872857681453634008300882138874930292929563591969278802460511962980946867139953675983987366066347531606249341195226064022319402112198344801711007497313440873360802733698726209644015895870691052647044881518420680702045829955695127391698459565072351841566518967755380341072740054770006753253286596382479205085249766027856716807534951367034784156179891151173247648924082933218786974101444768494540983400007923029282803326118057217254952636799933857009190225976418028587886486663527234899350280131659574318728400757597019211618577502871022949265795279398755635600528228087975954870535438162000711566256031873298846413953059526097358223949965262604397296844306781403515283283965730926763589131361741503727243215844029950533735982051628376957665894820551296523839347477858303579149975055696737700331331823076589837942341850333345976709390815974169970988039977595951938221311521870676699826318757364930125373532841800897238475606962894194612557859442798065481693033302709990091599707944355576841178103181368691373687341386031515919838031408997609357012701371964448557898456221655604684613689059473891971583842775633828744909181522990617680331044465972906181208199128470132061963536273523875764561995621541719518562500682162612777061200368338757862926907188665735061123683796547103406636722895168936580027583295304738314419015438291687276800899527100675038646370015660523903743542711836642611805265053775978905228796544853830765903025749977402139120154288285197880730316414421015790454300959250726433527028515683154315775034774213180790409148157908351534718634849235384815923782503527694789998694736997899635476340648584927613289969697936131355190391106866857836129318801208533218858648947882095649839790663002397341960159434921388127036960671369247830197246910948738863699066860799574202021440748001993900192561666854246542059858766448318449600691867577784054186145953256300762205917422592157142329269219326180222350881604115420078521709691106417621878201905735437568906259800809341448808262511717082888339689904894582095813353531549630353914916613590878909137882648295186735069259394970528833534671536877005091771210504671194600251481687259461865305747870882786916084563286010205579297560447386170273199114304671086309804881096125642233452974771829965997417909020606373982504389236875790181444898914229144734256740002778239594797379550031164638143618760247649527652371737621892874524628124298410375115379111827022911601503133693131142901152557519976686737173199956064947042132984073859433656809741596980990465698208112335800704633293778174216285869350712538986159789071613813079381307731760163059800801546754374418964895758141757252333419783909124340272720336111748906700178129286279154664230233895996069860690934935338299214145057207725722946587281166284075390054338278661734408943579518539486616865740053075441090707366621707956048665465480410495982596862616634760653733396405939970862061640085459871815127665707935648588378081105120930895312498366028012486286000647481117384274077194561206070358497776035008933243196729969808506709237422190085209974951495382352997189241741435446783183160422099070517673585729147504538070877303642032404980491569939868523005186373772023850789333896695581245259441460798100038529865722871499997257977315876920702415268079027535168113860306665579488599509126631362865779479113154402375330085164805241055298483047032089442548810285335124780390540586740536116998601780938723343347768551706164684212235568632898201456807386844852744736372860891892059977204225646376202303978679925608694394374835087799394000893882626702580368462779292422449926745648639073964499590890237531507718803534557082902724622075762947269873059331005018639747333527901493333931070838323595524000423853777725746364814475801717070936069830323179600571823787285662882679517170914043077511769775059054041996376720391429022051898460955123428812305644097108770043943557007256640476157700952584176059350606414680029437262161815321852159852230207362732657953790494139498761585028142067671609828627620985303920051410144259574318662187051766924321617519133943714171435819046780238574389390154604598743019534463923333740246637990290192352764957896168812722334175884204406748741675410158950561917818687920950243373193143533388481914111654825331115589103187780056161955354415838099876812265061952089522843416929129704770569446579101438858105127027186441217658589889661492129966588456554990124723994232506982861741180474523991287337635176178845428960719846520417550084259551161117773234883056052705858127034781227600270205979695833637680671973262875529415098666401364221642767198460295066088535022237490261396886230200151361302000346031906473088127966685387033593441671562124417220114563092327899825412990935968293991760141537881614564844043317022048633450337852513590539365954462717521128242502682688729169040834519639511826805613865288188052514213015387437474463927928557978777212728560420065825651348458336998899825959121254102030643304007527614830141614758153946512685609577722373974475910670120606324220275970003481910373831978698166057937095829884463143683942856056792028315973023794171409448213114114741917657909011818372311476986388810531613773268214359859747569993798929891334442335463136351797581244002779270151578413725855891679165981561919484375379457598070610071999066095651358170537580283159299377320204083762860868175562419683547024918771503524065627647937040443183604325124737819536926833792943629365796906712756926742498649323397008090876504235767772361070664070379616319271325785325081146856770971013631356240781538538180729112165614725407945446039876354571768456476570566810771274559790794721382685463578553654720919532597427984608672053573786123765009220823686995704278409844998730724564846342180701075001717936753359082045337631947013513255358463637374554881498244006658853763415758665146176062687758982015321353160595440725321911690122693870459368761119741067181319399073488306078143953579010953503121368829314585607957037308498688815584687964181489932148718996137156686411749540381417035218710470048990549343912068017777099787100779388095396552902041896294248638274634505147453460199926966769484024867205680118468813680791529660370910122574285779516315723520891309317063743696667216989389870550241582198513675699388169008840487394515898725446675831239925641552762219828364653110293131002383089866089821887770968005700858846144719786112204149167762403666626847226870213730956295647438689300678573288920166132421715853593551400628216466169750268474919793089850153606097911884537199508054025372128111876287330369303512525078290189431262157671141416237412196798458040458178441271749123053985103377280010274514736192033343197058141479193844523702729542840004293415930268553755694937955527496206940989775315926863171046754905544911744297680365696702191221186249502503997255738459478257665011110793564319300314501340392320033967610400493914244752919056393012018847992290703839446443340621577471444430216435303508192168253893682468355613532884491590906628184447250222502000525430029888522780558740844730808947854131844359384096698268834940663568854241221418339210023705527540714339890733295870116570522123159241050629681404298479629078100164505938479160275598550464959391649841475788802050525351188792563248629768086720435960510162035360186954571397284737123479918158135569191760647591570137354362418680624197689676490046385430329945883953806790747568490622774003658197980755602140013614650023046576680490370157159342590638023086359735700117301533424288928834647933807410477723989080055825532021404765881884746684258872978302872392143247515972015658430289227596472778655961896267620433791388930250836341209089744740689165762077762916123393545971476169907872299856984750327696620957380540397760465277741619402656870448281328011868523041039648396804657107362092918323248563574483696339311704510967779425263942620846278714227645944308952339391727317470020800806064964473502128095767868985125295540962434915348766445308026601229984425436952420387072584777586044249045596264866014818675214617254386884994078031084157985088770546104097973706241332715594066983309770820748691308636767781327152927327791989993948846221444198546885204256193728603200371780509052076677922697289993739749847849378940558502454230142643029103716740155983772634987890398757854545560197721899463823923251293299074835485046081224296954421384156713283579929150524203783850720438313725201492856739628506497275526366392686486041149922882121176845646272828602691236111747992242795981221554653374608200867583935740302789198051188104747010486821511074081926562409596553063241532341469443458689277250895877081099709940919235772679572030666022982880878198371939759453783641582466859330903978291937839114693929390020587389057801200176939957214363911453072901668455365297956470351012053056653316059786400608039497152191784965199635172430072806287241033208802714046679034867904161276966204465526664561128656886958824400085713357422363473043525582027113854313937487018174850942367325284514830334296187452624154320715496647839190713914242790682463602871910481661524534371511008665951234590913594250118261458397756530025725292087613586408876406915742567415025615782856060768641833315176173582608144247396148249895408367657235432669357972319861529048703293379993311433727206709484951323406331094372129300249167057307803374616116111881890120190744972051576124750843530765306182243535410314993207364685381879179421473988443880946859467596575522500445280041520234283835938795724129362175276314021011299281461329493921448289699648141527953187913335964977350944111161026728791119222784153144510601597598270365400003978563316182425949849900989154568794798026969219003483152626940524447917045678238818420999063503832729098451635786082983721180759785794735869620005184457110397495665086116138172407809273207977026080791840035259337900765913181713028623069774590171790362336622055494425002374951265065707787189835858501763758112390183183901446403175202493728103221731729569132583978569405550370616505698068730730114657835515892860965875304422105547253880205449984130142472503557465732374008767945061059726017002422341385180996688223905090873636725220910578709450246800604293536781480704816964613516227389583832497141450649201805974484316594472203288451707130461210610636892266405239995705070839688098899760628866549221997362578438367834948776240266109906376341349754638853987279772739083673220063878228195842373746629838948123521867798217501918903288589786193797284593605938292159806526088729265727022913204952165809516608164829561100620897011442528460951937556157768165156053954587509052133169058462452234000730001660054902472160366813900006093038885633798196218493772472788796059115706977438285858036091987754374144852904277379833356530504735489385422403122509927723819713771950779928220839108407424655579499888979021981794023211327765416740465047036717220934469937112274629039108787166705350803097775300593122113452979819763106781580812199904819719255925123273891744947272600882952937203890660381262877356051590756033913538600668526241380986909412814746043100498327531745858221253079359957879244541480390314420033992605546504299639797110339078350739013655912810666479517538631912056608928058208458386935756735713497835313926484360306468903650920525695823932760616605212637946948593763266168025881554015977921986837131810280627992033846788781020151763465041083330988513886625549199903251647389733100649985046005620032859744213214325990850427950084327734627422658550503352788159889611908619970076968010455380413801186100466237018635630881213385122109596296291942555691802370107468381636305675002797448373542025479407293673556629333047930569611464895661581960955848418037033525638890728537211174158950455119594825777311131591198364432225766827234857160577438237213907805388491395950205446450776153689939200492824953680657780984716439672984732252250518553305781582257464822636731957766355951995496403268216533187433608389830957732591070317222650211285918399362399936644026534681678762172763697764406360125547158651209834055475011995298596905392819454578964876353843433862008722967647599753659943424534031003922265579395208040873644800765048831849496501615649201443580305547891048242287497948590519261682057506446259194503606430514450278703713012561861256400329492455072539509883325789737598213201042930290462822095438818881483603582768344563925008462088419655708523915173876239419487506967695314815244774753457371449883024091273804750374254217908650911635071395074492560488012767685140603365617069314662128305721636600358517141100004265796614531520907129250367461655118532208181600468391083556327053722068650327945606419978616829860053125674160226163435687595393910794810199706882874851332175542590176057953688762542239774751980707499633117045960377036522112655830576003228575734152001714783429890185893108265293753386498861196339793879409383346021699477007689341214895154709841051393770174306743457404670315520567034246503725653120768494490755464304090787513586693220765264377144279335265154083564556201294071638402001150169119907427922769235774599467716933964231523957925422412138958803718460815255522145759518314095043882238228596349855005618532713784664861486453587629017417534597489973938725821991881561143398479325931044452117255763374398596073395998242106295356372292266375274178979042431686354230921132697724782018447570208235066727688236153987412477284822955796560926640423593471057920751998314019374674018726356542591098642297128772717844974115016781084680836750776999725144420108535130206326773119518629627042871131457558232980446947304394029052489419886927421358388167039735062889359978169104668827010531632798574731582260398352288432434424563101420082018025971478788094734061403975693256857318098284867624463560265611999179043030632179588552318370057743667969549414627327073589817535375740015072134380158640774698748693141195188817405646510743156400049514510920542058858575330392893268986773558407054519847054478916304187009504983346590173442917659760816860708921596540044919897760901397638573727162689099885714810754208665812959194868951112462072783370694109284935271503290956545468992613553019631572912574989283692290516023206691192173574081443242089926344976731332952495179305575442726065733407509847682493057637523495575496198983448608498922500508789569630358071016203811496364761755565220746346373410675311281052923255509068381102467330505781584709745057837179196493320990254766028636434724415964635587691781176888230339030222500514481500865721107501224630134175230208062605747093844940784588182799825703234145395293385498941613673130744974427432861249746908565488616174733611700533371286237556514338718637472950232864991037602128823041291773834720127557161202960019320894145536626393471171125640726004637125836129388864653584927617851160986378614869747698128271626495373257682306195101777846002581353111328976478645732057973526779351734079811425834250903581815919266948488885470514271600294428716323431682703688520060530178706973445620718611438186052485459478582794783491725553636676849690346554116461186424807263835872655752923649330006908169065777283006349764452262153947033047683653285336490403457685609451096881225562962189240007528075145861431534185322886838142685809691598194445703512525946540704592056600924388509250841307385816985770437880825458930247050652751982133690893704270847085676718072113503508250182849515191604289109531456966621480717280467318441942665892573141855583421323756945203370090045971067227519351839854130776016946293369483655162301821334024437655069771822368180812865175225430846276772059396448489130996595782315797194484675663938174887194171633349174231661539867585383227189383378369971412527638561627389912382080029368029743284499053496687474139049351206357991178919236692252587588153906821740172302765991754749235835938766313630780869252719973938581830919810874856184071702852431275197920541775630577208350748641922832279444993346738782202184571472877495145658446831742799210458565976043414991665805824442660916309645986619742631692251545629372230238834857500057213233566526558745985029104858074518711336033654206707103954123779512376780822301726288078404313546174330024702617991936317871011168079767623888270627913096268163668363905295422019845232890561765957128581715105253535350457250177057947977379520742351758563140647022359651404217787624801131585697902811031682050941880563023519438444109472861723593371570694224965632277460452674906573039564063030418660002763067522596766380917059684951750517030643975658134719738194057616250575113777480349502481827283960285803875989739628531369274926987510567770869928106345810074350573208662060531872835973516585113087753732576064545383041059990683238054370468026067319810494729152158903592093402226001170299775898110369773776269812377047063158089851798095132995661772091544623615230627004554204993187554778328039661024496445812621289311541470224947592431889295966127214789649804751857209188242006546477697928936726487176390269401201296746901449452353683613610423997831355818586493698786425145032789799080024971913033230519421094662056152147059189454793432709663756020912618507213715063579976266117412867503536392403792191869794589781021995410611556225704640055341787319711901407458070981541581556586415535328151568148485628064699086137475384391260389323038704267366120076315942685204160423551346785179934320282242937369347279350826558003751668664787828628631065109436371869426498512665886020767532753174242311868324573394391240235559824251252648388240131511298380839475640040210269672435835031022016201626942354297394759217048663534310904797474505100826370597737767806244415210590586103535272174042987076074234105920548095375876122556343798360615365369117115499123913107593965005748597507848251488737325666680249064185860353037326468307770431540281012460054321841285189009629877048117509190577099259977901575171654420813487808998977406198087578958911478215536368164084516262205550155717365783909779508252345774497473703556595300958430076994396061855546484192660245583584845946196302677134603837993737984368580062267752714741162069944880289067436339584452782216106154457013150362590854448298268479292086353513490263920713869899342410365131986102857170891430648899120968842778206522299805493483723027010734312748430480876108961798651032002892383086749174650014269202487409272625567293529733029774993699468543216754968684036663399291578834677606131459141847495056215048293405403651993504048048158846581968610649798013669586883672052620181849758004233128457026203402179659854057757210547011771167681462415832246012611705317532784896763648619910120821450845922574607871328678915311704928532736209744468932882503743261743683216548905772499040239039498151128182628241714526879010957441939126297164351578147509483826564990942574747595394714687866948152236768865125537023232057368400495576558546799820505454393775008527614868855686333688734498108990806261429119679468629070745483800804658869823285375673976632850901773133681335205473632516767813198193239425757242745185821668817390757073646557122646793073316668688414487066758207023912700053381768338164163036626598272051910257602565980327985053227330909156154929902413040375392886147403740998613455407399077467433189711191910576768263587351244126924864157929751469711448205886564826842776994047835010802422153033465411316467172321145952309748520756725500616431526429248467371431249641523823509220033621976795466916840870432105183156630983470010546098053719866953486651437855124298663420667306599198114613573634632999376439103303754442562705570648958159470045740859707411836494915754627473475503941051380045700102161213911168251283293301729942107686187756842256909642670634100152870898113229079643411600192046522608794364392307458338126939252805972185213401352130583444816162561903628810850187088733947832418591724938443954418276388547026119396865500259088068689695691973835356206762830196159333113459345815178094787252780816391624535069891661253020867037988345215269729313532575928511765475357476769341558487853382615708452680258601656327624429788811967155868175198504219746412966505125576431397826633396539460165484510408997581551970660850138015478415613657315911873080691733896959377204583817505356713909601140418897684698733438066792345665052668466983446783250951386444727888663344534445631269453669065683992771006275948486342846776163736008903846369574520909470156742625363613201745424608429286366365465911487003550802642293513603188508648613499420710056731332632578178453034460614832528039916134011147943170069251310440466126836658929957226498572423442013861817550868210093423669445939101660430942285206090961937787807097505830742720860459546528495643465091447268150681564865085832839087177363549306224606746408476540792876300286315574317553046022268603783453677053631889141309453987283055504783881038495008274532251968800416151888450853145517184139922350372509649732311785857985890477285585843050801825525395108544400785024330877880226964154265471199255370787609248142358353607728999351394023585932439296320465395058738545386889488667877850224574036819974437440649668678220078247739666968439597851770241061426522937259993134993678344352459086573433394924462208631579883768268960828226389094671813079150664400627183180065923178364910270831663654934026880969176781265385568137142225272397884824340228503079356937871782996000045409829809283535337228290030443296402071767089990298259666964530050139321586496065666066447716004336168997722628827425886945024447908212822862093689323774269199592882650705919392820650345052339044986014476039263282909101571211764029272109916649022930959611847590260476824762973670781081505109439356078523261194772564612708861914928519793023172051251349566118626201317997394734938934213240152292172449976620378327262685334040248985201670266841999628450578994419970823637297542254579873882386559219148580388983851661056233401068728068295784345024453334072787294812121673952790918738798948288947895812446245978976670741642470995837877426530236565432196015336037088178968735385768382750748256202665691038802890027276867401049154745707696532546400910113014444639441816639117873853987157667993211311549820532188351999503735786578123717613192427140892144238829711161713300762465912503771773366230727978050625003700979559762135730799267038390214258763584482113688182939486590504975459330710580182284319402893019024556437157827127808875300214850326655522413064963249125698618967759196491139234475220210006521163773581128557296873512372571358208822677344186246108998635196428093151355903559301368544962819563324535208504814981480432066597553112861398335363244879833852506238046844343682129567626765946795443664059678126887511599927867691697683443424659103420480337721303556095210126005881444113898942165546844703396552867650237827077998283901518072017741124328134851972402453545926345830152710928079723219636727445659118665666274892894005831563935862018157451437594549904706297918997894214562988714197334149678058039126355343781415533607630285927754164403520127790143224588196109551576570705463418057469549619271313094004957052872127249049071550800466555716653360469122700116133601732498323152234242313871043143661845675645005104410901334803181566850518781280646225236187776603189949562298572447562269242572482580077693089885307644351074005651984097929668161532866849284405303915060783370592390183963146923131728035225348223677210353560877325627367609008417678995790291200459748810051208446249745344257491908398460745604304363784731071062516264085607153426995057849405667987068302676713469608956162942981380872157682813368022552439115376843771363610472627313670765842282155262083568268348992217030676016195148818362040175714645628589951171796096733959560067124662675707650042516453339439351905628661524111011955616311379948154321684209361400004661936570699637420678422180092931520619461799052394315818398586040740453666434934879249882501197273005742031434520862821093499611121027379796471636449071875360373433943791874213775086640581843932284838332576788444079056628824818894827389189049166255575874930170232291402648923529303820310779902989609139256596519491934901621580882982339125377609346880806408030866251886359286061586890926240309445725543657429221417466646162445177079781590039421390410111487071315430916002167823079955885136125431555820410361099229277870595428459477231826843168267013282954212310937765362151838439267484047382884733823930497100529978889354215335089340467396168881624741662311120925584641973605101673158032364936932309779318905727001362622525118248325221355311630969716315949129158303837293700016289759906142644450311730215422751397640540156127696459305132535305872144127140500182509428462285030492981041450423328820867842537195975166208601507444249826827181497029387064651236282764205759729538799801752161686183710871925108747523887440354967528130281210750023818523676760223335665033487535680684430446986471583365725016610686757550807668770280918701884975920947505125619744100030728502352384182753092981154103000329645589520558162922264524155619390740835592985924115657376672802235162396483548800297982776385551748073716100018719751543974038737123128771232035154604587030710163165656270741798626128848222485623148552925426012802316171779614997573113928003248151496305632526231496193491295080863722764622919801480396522239003481732575956283240241490518558361173680087507977937012353552387845526850708181711231911378429796053399697271555126701188413666680251980716321827225226383873384517277972635443487244416802484250601611409226228339770672086083257021700910770560290025973477448124443869033496033189023119003718504020778012349588037368264096246218574017817779699953718838434296547032266785397349054614022978538882263972458274484937526131429536264063951387917886857180972444347042397854984481323334604838399323153540690335846427284457448616004010328517594450855361320999430619478314738931893137765607783640659411933260529190667511449242092025316287911071138076983582015781433923104812766816488527993868562706586046686286980322439239774253333340737734735748890023777688627145424834167288859222778688758519317136549455307180629093018483592661218939416329013265569757701460249773483359927032920359064614266009936818401561858262583488104054529935122924794889996238735576194252572393693454871455631370424762889615858515705038837737208252052480780177998169134937342692874903449408734021164520728760322323888643079292867747842230901320371292123276463126452421303378986048313138801458159596678112625876029323368184285821743088403553310116982915728263693579173594631375724886030984248907033735457275048368312095562480830506117510753138193923157322725288917004630501128078083614634792263461786011223083191049871761948794447471072300784088340409961474336866397675577922764681587687527030602006373870903719474443235228491879321421851593601445855074953396852522760202635062373159602104093098606253140352224663416554362089974842163115082610724708497500426488552079010132350794091490496378250492176486853093215264378633143115014874473515834286254319279824891448540420010834707225390124141288557152985177488682522687224632195708175253204428022698315086046297518665628230185614461370628898536412100564164566373693091396620581918335514115201910983880753005641135442249538742332685260561415372585009826054424245657779171844544425797437198822907179341905278385514306195978759626931328378444036537870735313761978524100515149188468275473261758167900132075180175471287468384758791682630063973628753034506693520311243237668053578777678136307173687267151444957860815012494577989372112757093558819331451192676552076924975214214361868293609238680826843488675890499203574389765606804786289016813841490903993424472647817894062714571873340358000811107467483058886778999375942322354005693428129537016503003701282180972875519320001959948594707534911476777239602840366912986312970683632321156527779063825432029106431402083854754431781410445115048310067060821805614291769918953355367973776433354344855505313198082895450524545724300335282428317053658627861467233760132815660392303184106305007646033624249775811642243417614953126804334259700594255156723355404516462224050696264460914091199092617375827560346934888908047652637534549424591645716173805420791525667190803595416977963347825444549073115702477009289865375943714471318560465863339454882055564719945690672554373234764028309994249280518626983621688635005353365767945281999485233504651814726501945031521058695172716745479438143387658429632245349251979923494324791724433285935528149800066175558644092079006644253146395380499270265038053041375989582532397678995678875407351190952145270477665114119111713627851491318810143138377531738619881051838731386195439547025932201602293233334884233485658894178396230463627808867379512593905443588259261264401488476616222331637415992745108481858987696944030143539723817732659119966347567539496777228142422435097249411886452926027042524102450551767710621334294837758579279491000979808975918791358824781835963226981936932061410674413583240688766839871381486483699013334339364656621411141074311015075835846359873597441488457392926000907822727277027668322119078298384654172709180763783851167047252825597529428650043487132858074807510203110433768901835810660005701295681424852898847318526925795579124166110098837422752123094847081255305855916080283460489598315223510102895220422430026787487445757252531288038821458838867684096313696366441473058209953540617971638766195223424032033943227409824726515563848360876824962307544282164874130134897839737606562190500491401675256200871999141909040956223200585789481580721735436696794498960240780179294826625327100445684048949895116413106016563855169824698083905408403731644271303868822019832463586699411003747231506478007062835204301512035423514087423309656067997018404494743366033333647331344807276249465142524846970832819796131178512510481692110924013200174466071812266801185579124197394861516168839291309065862237345500661461545130467702769412558562936349925701240446903193656190804233072130959441504719061424413895468350108137537543384581780716199583021242726763037439923948857440447437464268725341149828493216813041153512304361603176796897520285570788111149671083384596883625649268985383536130623605157072584782326423428076871406540666923356230770180607045177417795069605889505463532585068653769890458110494689286646816402561817482648710937577971579596189736942708728869691089993808894301001943135047367285868365937335112520181883044527018726041690638891945660867092875569581692961238546681503717494461907242811095923172540684352540753822312530023197803264539806966909181879250552969944622857422395174019842615994884465449604293692027959526809205396957421438973730756750148227522444592503979506323312912870852291525216768110119350365535047769824816888927743289500714798381592876516694969426214143018696900304059582116310157424976199653142825591230593892289297269394927081313007272548549950395355794738768423975109814197783089803256829021023211647988299057458074845758748431011373558661180146885008501082635035810543829046563498693107275441897179851137940928543751230847321748313479510722840010971305941556819781671607093132077403837794503079119473911601149947913529939765629746332273667484205513144913656864967693602197272360110833699201694850123590818394935737562311382458764578101641523122503927445021195360882166041066494305587704868921478398647693273803031261071837471686975398113674864336838840932402193222531347176678021217467672371165759213687240533870227318061786563260359762988642571773559933319731340239211755924674140459921141757365427119320674679584110895211921492247055093974174302570003911014984004754236380664149134980459272000967112314363443668880242436702236533597382032890973308517038812348661872170814894324295239060713593013499104034781940088452161765117192354336360977489713817037284826458729698353374091870873242810024582761359387527627568356640124723666373493374386405033387484859584734128952420173418094529892324782558932071517469044641054367841901761819993747718944451126598628148547026345402693743887287416047226764663555883366241699338292970180888736794498395769791723080117936421590865756655312082949351293295131901878679168019741833387308075158272251484162445998732139955717423243200679385571108475420975828168333338505770237867660002428986633339961637505061218416235453951287002382276142470497723682764134209795776608823408523914511736871900194510057345867501807330367335429487244965319994854477705916840455769284999834280520754778194969851041704639214767822000215616453444620187437916689934576055204824122316747506152177021010127997829743442891963915901761047371070178239182658152779715949147305952366109309753889578638540589851633981288537575354140964660122148889564625507830023223588280006646468631077401139972964493769566069032851021603094170118904435378551039797488419422580385029592509404770416634439508404897814912211021675191423450871398596924926871840499680052866883100615986694339522373187611965766276188860518901245739825272259820456049067768135233621108959871121500248286034372653368490305014084434165114748630562740526053371508871969030981157139307181195153278482951848906117410412363827206144268077509492817803499138198046109183111875579519703092927409821183878422761132363775336874510074212810385973336700252674017654428447867971203078149682392587003539378697115950305570438865203939094263069576272705963038182571773754988679431540891823778537316538738454058621189095071798665289871755062330212553447757481856083210705648196350843932314001812137390545783681168984014348165542134947984274477191967577526491852077045350682204339193029883786978983568772562004662639941971555349832228911447260539300612598556892871881329443866304224990644497010480438859337895561672233798786904841423452135098788897460800157943954226352254598525071397265849050251591630293368600421971375234156512985274440896932561870913658117257308503565198880633538795143591707425383452180272361316363219922714212942209023813553742729757226008288722552040222346184812191919216744966865339735858738446376216019268777193724900401811858656613084596215976771806825312880399998548702617223946316954354913643592285859785917886176950697742802579283828400086247073501025589165715577460918889773434291332504315945104350807599771956440125557785337669047128075058980866116832893134137046011802634954552390191652643468218275799288644654864991227214680909274969693345708507604293016803230044851418100407394038346786047908437533162214121979029130218274810036290757970460636422254599187634933596958990113194105151222485230464833727589634952295528081696679196671543315088440924980307986694579073657831811420795874388908636625172820649220773379173161848891664092302849047744838723966311440143869075442168386222847270572975949778962069499867836545693558002154360898314527505346296495127419512672310211280864458675033751177965111631665014563972701472969801463953795411710885895339532465580514322832424812478926441851373623595066052401968813494220654440932455708069540434558609029823444233916097902673509932519725479442642694348162540015415787980227608284945092592714337047945887011543029369251796760550549629439538386505588702613826028100744808320092574666480750847839000465545947217549937923142453020655853519739802257991924936883960331595502291615000107490014142916408756119447883881808389326829291401357384221208344884027101607192297007201767379267799611386525246521928882126564179405019014279318720431801853307792193671089581649335244198800573332566210190368932212274584977458186239453936073402661178322199954338274566814864878482386309314064919617446247396796026073691794346133696411569733988657894011904914641396166561688363552698256018941303838561705002712997185625597414948756007775681634037950045806112792094017570302640592368636905704650911970393772368821703262775668111172365557762491950122804274175488537856357815776526537316037493267485485160320926810172515964034760898603926684363697411091960266773618076857826819592077859132299775988876830127725322625086959803331445553559298486204799106124946387675294070102773717014323666565599045384370479936118961108402193619030549633572287915198468615949981743276797124785462387992566601568250695198026054702336644163321215422229011721619032871408642800725210375819686755819402595144592234707614949810219560349746288142250241647884938220649599521014413555647468449654640959006168636665594871845647310242291912308370185726936905339970857222963581534751025408534460678303097681416465371379853941731295315054701635080394515227735977146752333936522627008765643835441516298251371210111447282572371867252637783335706947864503355794960752837377215134407193753884775961794391250245288333495683473271044328793210985475711728852471691147179268062064584347246706126749485018597761596126606376986019329267098697524328072812602853570288458288621845048972921033491370039123049075103778230595039777250983174113616364930636478210937417821547312321139788075491370163699349408421682208406984509193142506303540153214352108269580555577499995865659152347309332398127902651698757802598061772251541487831301374227280358082573168211005356303937116275063871580897176243722721880365244309115893277940565398273793267667549768124701788852908584177031345761217241673279756796696813124567827959147527510147526109909718726807937514058665035426579404865174218611088392042472996699161063937022566110602988980044945097880166346097751019377829780998759124869594689548494382626417550810242897041057727675941419423192826461485113351161797796627007713460632134851669569634884755110784364113928739119332774762789945383477101667992384825431510745527441131568926415900520075319870246123277979399812815973180281215569162426442413113253528121560244408637934113459350295538300012613024577786787427146445080802903885386555981948542597786513995470247460189191924834466771239889052276347615751208930885898217299931463147518175994704816529068808021511710102564460251086650145647713092841909903755306158017139666523103874342153071495062017928540409533473980255885222662377460450398246651972958241804909015708185858942488696845060089089391102859994570332658124789509446764841944161311845766800472982733149857000522067830745375426273991415244915851736129820472655378751336781750222626261841735821756939721062537813279673239957466901088702469167298267782786148682135448351332237894832771134575985254463766125325905562947422811384752469617759860415823845717393205867000511936822104652415817732673537219696717217401928973482070795913638260181501613192253449240701410398413775008955265616389569030327815750960583985439105577348598409264379130614103701881460684636142294118546805768660531042386448883273633495276354623052490596460154415494892755630176495499958149551839831364474548917458991315504727112039423157772491275453780057295488746257429028170965161453280527669792582551604609011019202177685677194375751959011809283135519408338613375333653443568503850769694322050530675047765576046438686346607678576812599351464922282717625493366575117133932465876690569177475209363542297872411256915538272563449727832570336628256568193633984804579835177135419403639838265787577036067729129414410736445874654595038683051448158730886413317377971432205045517608093680557194219802537180837218858337237162012386450361436378587908686295790877996724180079397820720609807310470066855788076261718666663445661055645745715484883816184058988857965139988003291678765994152471622116730108165882147767623267267549147713961280036251627962782174164842598231130512762412096104789001697446597611524709032271348353249677272075543960969750610091887655948125538844221349085786906020909424597534304873930949488020911545572141026228233370304876624644331450814761899386277802410009298832668659419853541206094968307868123842263278080174134837877798312491447390437334972721875954474825029299035498152126914514003819567240129249316041546884094509899009962483213281710192811817367721653795744012954884392512453993891871139064794874587171495062891209483081167427645607968070702239027015401850566779816214894498867964280849650793903312882531303092755372274912010028872461364601202120758035417673182397843266425115311935245634067891911845424074590928144859467820165635651305461245507861032726807215746971606881791502394747052622223435926732784534037060567034763686354368701057766672741655466588601918859643710940406688019652517395686500269133980241905323685959242766727840006963539597277103412354867452473764667866852971479571586283124937266274086688626810488527638817256594505710705030903732250813541818731744448586618062491804318700047758436635559001140264037862148993223450103754728958060044750903846858970865281231089809519204858533419167584325480963202437141605603222061552432660373464248682613317078143318011868745070358219326214835866690481653001454102190625606813099867106717902587950680647709073244825522492471180222865085425543651934299462774120604707541405533587172956959224958817204093591668994352822621747651037581293075530967677312910331157903237731469858896408955879197050585057415753717503918786499739211230573234840729385202805258012994400365728814504103717431997061355650054015013607959836757146853301335274600360700336817828546852942946115122131462803976290324523905166071055604703733367114995201994555501976963689126990921988208102106833522385114841144195489084202648115013792194464561838643440758997917927345690406749377544246625439715782118654090141136535661798722476770605318463552227802154162958881034317059991348809208687474818848214631551721469956534590167001396728715100121986882126977342588277366079387206968029391304311457689343108238994640959372858456894208414266485138350335844233301077439578703058564554272135480349394269758834993779243341564790770462590579920566065912453627449890626298275530247942155524052810604763119642854092178699653840126028725973484212213513786113426786264350356150892560451719792857409582773315244967113060889680060005534950943056332118578631210500795311770384267232320676985645304895667172762358767164666036955493618224604067245223545531093300690021082737588126442376499001788137838432326207748881197220214048820118313996085780369988794769297827176865772991834801723775120693689277241557703808764879331541532057679347018641676705525328474775360507402215065991414506833443810938792555951956066798939961694681153310219282331891543604040724593392912638007868036625124121046268201516367706250499939541940117951633724171951652762983094405124501738783914878656505614549431460828891171691329864360847296428926096142934872188163795346901231045501920705820059769745620633103495734465290088791107347286872815501189723757223737778455119203061356000238932878799621277333360285835857690273240565357637283214176119554888268553917128540302061991960923646788709019851896233930834058036081562755259686711461626503763161404309973587664040879544435110373484583356003108326053908281970367078232811934021101779512919561872369395682810323151717915246062273379251076450118526106286871225782033878714722469607973364087519474055019802309929475467376433417118740673003693044472285903127934995148525529068412924940455107549621408090278446126414300257878560075884394335927075060397944875818779542336315979207481020540439157474002881612694826238955206699778021993442370777236782677636617514054086606759648132142089340653400119472036329415087074268448387122950342324760575891851549469292695941708877865444779114611826578627876663890957150466308886055494470378444707331518712086137431349193307366244195079974089563555044155507733288777651451548217897843994140036597710337858195057069433485698419818795928717665017582047037714337333003041896925023470438459518536128158780975896067411489020158172113633099181723969198283020118285777629596994044005098557800342056952330619699118141034723238932228851571274068890477458718945768690377194289144894225072342616026249134957031447801178137179851196053389349587443432208386160710800598334257557771203512095016624784531002476795437627357919473620827731350407096360647713306990145373214687880198909043264237266747204611171331507529562098224621781249384999768760393793421207806596961493654768099377514005764546960699541706464869082788323407445911439265972317645680995791820810729397165952660872585892556394392982302882183574578361187028815133533582711858394375632765791633549306209862127157401788546208373867910771634020329996553925850130046989969645179422077947543334472022566239639226401531086078421995955467388684276448820855598162541133422998013353070746999408236396351385546688767603109787858564428189363077710313098171833512135187123127784949520118848962117295457514112340729662221867047429616434574673323740157667268662867151532240340769351008320675452223434303695574302668621640818984481246420954663739111450140529839507017502270342836282682387257691342424459328195880441459873938565452147461061000132279212978161753781357300136461088332003996039199537244859014155515138702386460317421076560552811232170735044457982073321527791226408070387788508388051318503339084710984826214005650599893665665315977513073510974009633031628252019852849151785320623936090706615972881042474876308514797032961421309642553409579166588593360926927821416618785393748115540015502808298040312189903429526143522093993227456916076242048492420786146509104799107388201054497029118313299764669375608638736492248042698542791061775025439280584848115637752230715169191954218356097136380032475671150045536208391717429041011799490658827773212064166252950736157704234782115065007492110946958964274385117515880544692295378026945527545294569353048639591405299698842708925398444630004954731804110688877117455532464680609638486736326669882468546848766739881624661776016820382778738830659186287540246348620127573718070362207822144301900996403802549458632068129320593327191832041203013474684922485699103974082197773578928741285982953419250489984418419275506639356614254376649358112788020477526901775403952011201344647656040657420058947560312210496498678208593591303352803777602295748008978428861467895580076994139692612901744801826455293719270879892331862254371850371119217152121474883114241223151045416665947575254989660637471844386631167247652906981581355907533178858245789029167267339149572892292728881916397879074799066718272205143078082917461063854188952335548775287911976788386056637275452389560873101468109588886165186473480878527658960972781100035027818301608677530716321095513105106802723163298833165263846846382295358694896984350861694352272381470305487086245190384595466061296417230552792952026162941294761973676513400489296270357395565225769376151268823455083470800520742059807724340595763786308908206539905023043286740630434749787986120007775297499614762275104280184181165203567397312206108992179847907692907331439370725438102859011835145362966239966480395225864144694122195111188916315542945068096556916779957711487279686020052864172589316002438855862435314079631532266590726660959111066681291618326169085080667443469232085272254862481736984277964948698542822234779783255491824595244345407322493798331235605135498799447163840858214798280844657659236865583803489331710583118203297156456553578865970696461574165126135285741036184390676820484142841821925464225463790416859542013130060887889113275815162529077387850204234857871555340197956201451755113662916483149361601560657973656616263586705013977589166164978385325656288172576259514047235702297454086052118097517172897587761519635221704204516634215292450861099986406392574723470788213653807294443085929415602750148585999865599513752735736657312389236990943905456796021539168874697590920189564915534612546359406505890716083200460592238465979657083885662185675079506895816302587002544389497790002312210693311409526312260129935686156496909674001719998218168764060130806708912700921260083813736830320005977442687242545477570248421515831905551994847386558347885090911028142100899340367664289623805435234199075881037011141989562854325788123160468812738257069387945289956827673688617272691730160088263329390149843456124981108579231304410939588572469732606305733336436055448013611254603955743707832411701258870488839362697238235949900105638399199697920556615830221379242098341676439084688922627427394052828402769245692368432475643190313754871282724419464541178565476762833407777812430500800165518521089019701825317813623044848511886919042442105598293090635167601779736120901841817396510818546263019040834826194251973750706548164957464223831495437509654877108652919713025458068344658452883436963738451624458067075360555368368845682215615632828670066643625522629244136380912911101393888073657617313689224448479930365321174631847346781888192951515907544616466490387119556150173909563194047419798099754344846384676860226197062984418058179343186924531497408687893015055989347760032261875607498576517816815562185179107084030244031699112202643111477180371962671894808064200445432484420344484197154649841489066857478286152494942247119525451318940042218795609040862597719120554694114384521523807207975789527632083700285171562252565185436504511810199792720463233594666846180119835500081055228298675190146854241051181289538992890930237992732104135065751963468545599837098806994885923075290064636643559033901112012621438288615747207599910984516266623681758563624370887798318409996173222423696104777888932577322917174530931787400653175790074193776999977323661383886624324296992106674779759988299997580646427766100089431699693110598021048807152659118909304478592822340904804517200890002518362782929204553676706293884050560273420569378381278558303442625780112558228116546612363493888686333793628610323778782826318542494656028808640078880752119417561376000114371913583614942342694233216124254627630516931446999122959290641817435971114481994042926412695296619367337529274888817222454890534718539970160122102848974072216386249046139790994593703816890454842027746189187780247155667382665817286347496341481322245361764870719597701557712466849634084541135176133998967532032049557682430774874628276787995160454900646207722942558371811828748920620634663990622764612233962607857793647776098470188078513486563877629575490861058888406328754924583545254824321465837523567721019276853006794193474565931429016316722228468614048493722060954674234394175295131238298358100968211101465159361418761775518797359781307247861740288712489635500467853431967364010992819122222617839237194357518372804599915214701888213747000254300937345010009411697394365087450618777775268097341018011101707311133892974926930154943094158513317831544230056975206997423601052779135243025124585329971956027742077531949651505064341372188599811433934886228801765134488710003209076222611002187817979148190605701714886316675927492903405685182098657732632546366151620691617068364243085665883442620223625083953138015478693867283967849717196706663665629051077135253399300758282890827143586337850849217636055407022102258124133267096148548606566982907889366484942681952070682957844011230040784668063574654085970735429833617603212325758930961490733435432489840838504986011644385498126775895777404894808325154394359064210242662738949142363266291949177733745321565194726001676588986782597972527225375195264244640199660398765994470812344737518222272896424434064268946769883818772512017543431594953692883450197292203437158930731044686963247252529816712674071063361437770062778459047694097562976972456184132520578872266001905678486290064510045284339219600803208875609904056019599704262854547328999696269447371903441770026254957690126664400164840975028813343495416695430826566270722755376773954691061304070992178547708197842582082415230584245325202738869389808000234400212847991202409976917737584184278758299156276772722378796910181846487328517043189397957762937736304305075524941146972527219984863646333967405256136106028248220702151778104496808149355807629454074917587319913203958379117532785209191267963512708724296472097580216342648505412165181119858521081645304790526596174770083848648379790521742784078671619197833239318732867179296147042698303193458499900791742355338314699075919091456155281114569832293176038451967765396302405547254538192185774148177827868942183143947435658212824533458667738056116105079560840385726457888028484413260494591386837272235940256678484492217844929556229917631366527949599710951624864637068058063581064793211582499590167688487164587012748789418187712414624637672851542450324866643524909934660605235167697862231726589513829071388238800724331595179868406256251227906060792584324663584108031895376625794437373794312489173731561052652127171348573363042366774792283361962551037254776786782384666965708755143525907457781060795760998740190096407651953208175707253306304753536326587831889573943746340547323307397658198808621440213920762514365442749822559461982419970769533432989576509151472294250884963821773073918063910722055619730283974236574560349387034655665434616496638687118706885674373416772789404325646735242961088052613766524613759277393773695774711478650700379175536765844963446078276274748799040333106184189087451285970586477477149462050245893408963746728259700806221520154007029545290638091742073491095479208732530401601488768893453274073343493388294414701496820215432517702182803015573470682106666051052800647526455693730790857075743802635183812219916327410603306327584968152782692693682371472646751612293172093855494795727356792144670150924255647206608597362074695195453577856871632596229837357496836371054825433079041668728481630955563954258307880073770370000687915141108931344023502624129859166192643931609629520239992721432851825759996620470557836379472057329030318575380787215060529734648082754658542268514619627869530228090207542804553569017612017189906904524219957345669497277127662190285168721093312609249744824141358367369218815124601865816169835230464600780310262644867672219659260080507015364134343683377970677857574347291446987344328735996581392809247123810629013092707481012988410008365940192719955505226152722502798945734749002886337389693417600482459338523462380176540439324875224527961948320298970691867030199543115588475517463778601303360668590379880269351434014916249423032552251146254689683172870409715188311251892453956644500857638747560786549304035499914038520657630248454432596402510052175713338734501387417558647739084654168580895804538934287901651829724784402376259332164577967116013722937491233855445608893878953264501941307281918663905024179578867211668425821183195713729779173195950780885137054154437535814817191381061886659464947265111793928370299000091216190134638738002516929668523905533583831225347191474053400577068918442401054532573870684801646443558945311799398607915066762907962070337788215041727371093801218928364619905202366807594576307761447697932380398029943397507020245717064722946593322152634753803392586293811590924377175035799296339784652886106678619401789336306092422854661587272864839632117530421722061455515474357423056415699984731238198353938516313877944228475262579921974271570905548105841751799814583915597339323013220483999512628251675512449582586721526925714483002967377932059430549470806194888302702784621067642598853788077162625037601942398114102583746070660168387708283978862302871344299231494559281160667573729628150506738222694927167327991741797178786413244207140377431573581714367650353993530817050947138294763100328647860932712387184057951509330544042544429806834698058070160765381024442595815890636965843537584612818193789167905141348744411596030710116907118068434643339813952734707524174182180582659638062731661127996070829039305171301439769114007901890162729596241272490735334870122641300226452779798068981172160215275448728840268909280674061037265748222028109598566158206823679029304264041648738154408251096398197215434761770513353402020257951345093038730266081130766831746630302783634428420730193633154992904535418319523922567357616359637175317450412026128904107764500021547448323531262229767326682039276637023905819184791968679068641546120478245116870131689160432842223985684794620056326843333201251732226623765301959270590632698811780589252829671635286424473498812865701422216716726419085034247075430343990477352556157098015376195825142103413214136265551084310879793746106447279606556189026187884381430872503929699118572779023410160850607245610695305287322303747478998907436610118154336695266987828762662110503496334573548060217155495001046570950622167291818125581624897275962622656150345425576885751872317744312530318230114103817311151755669486542494443053085274491924934529404509873231130857236519879796813609514893547782720786207713889789673912844008730952511194049384839803404783463262327937924121623348901934177464035744168616158126200455318797503493994431193235018972084235841560922370867857328906952149092247214609624352520745563056275397105127930042144699788120000400491594112013447938691832016511207800684146875133008285054030237506830603354248141850979959299918736308810500642045087651898508946349412333718446383898964004777003570821362622058325095996886504256520278854871145512416655274024240626885425463888490936915943277191040434961059994840481142151044312569051368728072790869220100508342368857234944863511847723467646780984328716175072868206279255802938396330410843238396796705694719541408207920492103701258550349106902950113396754039865377184505586849703983625986152454859847559998533879264845542901127883551090625461291283787154279063377376700978504054538828481547022903292367030097050326894918926061596372955996288927094263582351735213921503916619310009159807354272046074818685915918154740013167404172766242953474304820338201055040242853344173200702738837453997647314519954022657066945364640749232650598169232680373779127892811148745225059095418488246681821716337245614818708847601944995353497316841025607806374871953683306706405808548922122471788087784892190216091786306927566669274361687470797872307643630446746836510747479131686503928774317164131597318169731838917106507837482866467588232493479515456308275025138777825768898971844170467156266539417599599240856357116318187979668489151454921187986490266395688992570966249474514971558893316051809816121800611712838017386626601491464159124531347616661443825975540684425109040322365931799736521938515886381300420019031609918970368074977416558446644382676619602485724363350190365672078367356324680907820704188433252189991272948888330218657883035850190753005590655539253609094288261799752642890662953796717630911805049726423601865142522598121065843756896475298981218216869460071027965127451667141141120003738759390097528089820830495211305240293374917022508241389892432893382024278910895807676491115763051042744592382080845854816673882242887212312838685698571606524361666887388822122853604176602967835593747371971209942463862857612775753390286739919810017867750315149167821862843466400700097088394184633572216279515587420561636574084241951709455941907148651537700337453295421414883747215080817850779055055218475283826981346471536872533051697988572751784514359534053792335166621051929860138590017131885808731159263395644919554021090565783012544368666948426676258317790639022539836424476597920128317269281952750075339297555161554692303276535134182492681924689997038437482705884427032164344522200284998597509172996253456164536254963150897397266533221911801093541099931139265050897146242543550466674693540188097330677315095191238973344132798718755629518265687711751873349540054371245741490904472742317567229572702327492900695306292830787435896131170989092789456858686420769488627012374819151550884892866738191675662718679481891791898139737100884214552764326358593772157132256075060751361411467695513621903040782086183426698448698187305000122132607270479497431999605543407599610669842410300890589289024983618222072422000904815973413214718989888508433717300716359402050104610940961841918086663346756480121517737439870936828671106649792966113736035065660901312403422735967223932874586925872215720700465452124732283973908700890971025980067523551297962741816283085037652702167012003217196813402200295976892039094114814932208005195992602250653717999020331304113334791528298639712354655357333333939672743444423675843932099421068529925476396198966692472268473640025714867166297524406028214048238885803935129937207058877897775613613742832381598679708360360163383160869719780476775956418530723347609248454395299160466811137950162054043344917655611679201876088284564368256818930502056468964841289013164424127871915860052254020999790686721289717875973570425432335742100501925351814333972539359455320443180483537245068835042322952693521672629652933691440660956309141085262502988076635279548250792271034155190196178098226272282520210961697655866671167866080482598752601706867657322423860316547980402252517495986045045060558306557047305084531598217881056977289831110514836355453714537960840965566862141042207565546516344121703181284207243427274851097597988979350829015422664600272759989350821923111751951333364257970436787609975899913393169688821676751623657529175002973873960088149595843960580201966803963104548096448903964808178708292159075481721239480296454307623411989944973316312130988437659196580533272992578826512286559525920910593271613030058174091060541902058930537629322239870737971044568902117327896592997575256597569083718609108615766979669288799487455314624215752877815478542020641560599292467913201320056055973940575714854432026582447230351169945751739111643631631843655552109754817948643608800734043032145587545889539123363180093971354347143630291077884269516582851690152083352527332765859024144971641321650973260054753037586691401280914956666412474671763776011687546393750388502707998559265044299443614410066318432237855776145940917094622299096277430314820820758179426992889278292504217433126259431241999605787686388126334537395325355323453157675705114393311768301131141252443854947432870516005221663381403221907869126414506454494800609042993279452297963663765284079489423447798327659732681472946917936731846868534423615240136427343493720559209170974528313702593828848975817575599216823203842541029306889645775936065816280781466647915437719178171754254473260164466585929857865930118655425165651358182831156824093971339912470644022834920746601321029616714761666700481819019015985002503695449531310527542379448221347356224492277880911752733200640685233216249605592223910650085248744157643604118410560602269125616105888390659947261912249643974889582548094384756790266216830096585727860400496192565637789549089592838900046767198450427292236264566286367715109127236974236864500880570443979490280613749860931823325060164803626365520192937061377438719834282026827042216095703228171675293937258354564987376913175486090683967502888172026222105882206460672187570954535092381302645874862025566036413304921065903276786069156083146469086061551352219282955431439313424808308215595133114434428556261975165651907748361343177323683100393606975555591128569817124109970128009370404191300781940697027405331556228048462118608623816699529651060717341285310405124604605976158867472858209619541145331826454762720982998515638712361270700085794942439690422456652150185383494348812826753124752101460688007815261953488118372839801084959041583324127773460313663054312068566341727834952932711547770395347253749595996982044713275689574296395518632466680394930216805572079617502869395119371135301673450298298016456012652456179169848053187467804254404470181642518414882605336967218427908996089946235263905990300468079511475116562651346640982406435597781180586443254653251564424575854339348553158673766242013506515721372870980451295686545721234841245029436606301663521878984090059009903292119809789999824657170789117081599169495395234657886900380044897710388150710581954158480290009219939711110241614667465351462570733161481328049189259971721599802321384217078908813553961494777752706007722810156282153510423967901039407729378168405696070784146141250377863079864301149196584858390556074880732234814067615159027491414859771284013956493906845347965936179957089708906857562312761961887995266942784555643910308004438719010516472804575693840855005413817099572173287774847518191504225989326990417264003687881143288537500942827260108068876119640312463652961966499140376959594166921173781352121644448921080566440331694596136209230629266601414510423200199208642427766861935069835285290745159130448303988845090015127188082879207605412387705717847038427393078853166052626499844207324235914427775245486973809541486204293348336572666413689437765324946069473443985573493178108919640170047593477436818522672577761704634995353794298591696617917952436224758097449543035307595891268605770790379868049532532930184489855271006309212289059505845214584159455093871387288763550090141081958407303856132224578479204657608862021863624528467985577499927912794356715907770521687893886918055170058983488118119653226038953448657789223631880981342169524016263377236822308641534866575663621875462950384382278549927898730488348115701888535180128586938057584955023703778497520273652925398600871604841583698436307910586110125999414712466970063500789778212189806600061603346278366059020024442001735378395237123006512982612605643615896695118693437213385215729775066654841813086392543929077369753827356465219162886767417406864172530545898005584176290157525550494336966577144722101533512180804070943054084199435536526107032876082479750446368056801039377008219499372772000183546089539690906242159810917475542657621116572190147212705079398288568903065403813525221226641480738233963456658733265627857838094299992868301364012216225543567063733182358419512971665092521658291122254089596385385344270298956599385818429006650686202103051717597398117964391897865453917292465144179782995727025529905160855689598545087867423513237242942814558171650139207349197869598337996342170157474053366235398500967341362365845657056391987894345483823284409794290833174752702892661077503888407357985234893958220128592795857398761319383099748323328220775337983702102344423619658287454939644378503262170736538130070264515816295040899584705068777899728067394162279367191459491771426001490964191555337942562053221055810771634087421910131223541673430163501144861582282417265996614695679641763130878316794447446772939344182316449654825919079614743193074603119106010411364686138708129606206389582336872820571904915668677211320754917500900986772527011202684589843884046670369968065993251809469501625502183240586741496730520664538535235791295089523656679819289193900907885104874165319437451118075676546176915435180636529992689173146082839532422335029568203320709541502975868424703404595822060282191697068647990007904096149742169270280388095472878958151692115408217018142977563609483270309085019250781543329748809503930308254148042151466135561145954803397463244295116257479436039040217091728147211580432410046727425405095687762714462129110668079794405246051696075558994830776969311338643894613474811285848242549185236684264147908579550830483894518768651962313807123002645622314147335914813141598476020856052548782149891635201530648676557673224102371674157033636024401973572513290802458150030659489849267400828179263520583922476499576993926572050391937065749773548402300340004989890867412206418550075804971197218593465302835398005964322029169422465874837284295565593231299074467085212557074672713735465899199208973869326443953689373631850782269285733859364128196048695979401474282844807663783319229170644838327425569590675872959394566048623820458603538778541798742603776290612840488988572324303796251895175711523306354578040540183862135567397244650977577389450808879730086773835783560052668340608508626514221012976430024226151393075178283492123255479735951583127859590186060982161225284262100653990092105156272561788872596531533890268990202739312113662422533850925328167311631962404181915499395364744718978927638609650265006764698269413073285012188458948343682351417622021846983864975004704178705416839022668705095968128375471188180047812633983669918679119585399852983114272231939241073717122088963069347264858368968209423273626874574324716478986576777101659206084185944382121324239045522348874271160484474957427933510391770034353130618408897606692425854588247961534695416915471348214762180730256628582575394658665587272108415030664365049025952738428897439047167825335722777155694055679880448678676985674379243130756564845569884033214176821981819518104124927571413768722074626881918331815140837744308130643334120815029846435182653503730797286534810323425428700709334782690002816602968299131435152211449113065900228192300393897672005199649492824361989259315771796489588069971688834943783039062178953864118497384458477152742069313754868121222292256548328888958013182235042666464779827813549682260557536588058009434703959072770529993651059943097905174633964431348273271622292801033444188051355413290875842729048260599605363495466972465990451437002798579843519653540968760928981090815531896010882274775988262333773643908380827840741803418953525793131303950194445472033782350809874771937523366919345088645819289967373678807718813766152908939009051260467429687623900940047439681152319031802103113634297055515508275453214654730422789652188586418972446384868553534414231813857582962608792764610771532789133957506844895142813054606148240605870537102225386265405691084579005107926822486642505624545312664184870212903932523553763378773286705352520768270987709710659274017943716211173701771096813459670040471111603061608415486181821723263851399923555965489973132777772309642976278231738039807952565699321259459126177378100049428397135514723161081749175333925634663811996515782166034970225479392565941088738029684661044286523314338591086513808923615317720051614993377183482408222742833149399558762340887434506734228891069552477949113902642456997480164092287295569885565865602120728497104010749966326223896822286531162557004517796800797714024221015011909868669026419890584385421799663087535201355776549508904021408205106302518063677025088781757537617876588213782551516978529095756193747256008296486515680862357299656618369227370677048957835179506365099424414336766245215878473385337292022082497461063058002236544695138577312084190744397442221632931926263958851505178132745329412747491703572142675847922567468588520495606035534013431346807109043776740343560044645665219524734510708972070267463615428333045081121491714075617487024179790020915954860603996616907658269202240740717977610587126629042454345219129402674977912995608051461484538887739008712121529266115578723052538610612393606766282338989319955262645569615019034325034570503154826755068266818320789562918839397737770250213513431453808320695430458249561618357250150995704579958737703207582888741146626100275620196395028230126222949452434925999112090693046954511809551778571043281122823212789497536220710506779113395476961020992658830883124475683426938999748403767473687607906519886718591535861567638667222956257278665896507365286437808753448505223457936131912834328144992171285257339129447821245503726596990866866127524482493391203810447701516336965639539073469121269503143532648672780310645493135111554117108142448536132531363309336488552120826015603730544410756985673225070803409881723491638997824819605331990228529663826161698523254919511844058339816104350373544837189954112691591755520114299823196828919999482882348487650001361484697198594984372332703638899866804602509235421566633930290777753084056696231055468284061140628716928124076498970279352352046025088997316084292770298806007980284374984313373689695879362995009383461676016795522979031314034276740822632077641493062038055654034874498529254809385920432756660079394590075889882151587730564683683271178022358746694382910058184749109192262277824228574196990699158925935146229073654860949508877755472527527995006871776305371906486640652245085117875217423164746779320685794759232007469435986056457320506304985635114026190171601441810092411691068338522418003415907162154661772788360534699277545218884762360119498815156186496334319099125078466272149475586977469587423414335115678222936442126744002461163471973779197843821149330533283477934528502365132439560461889104469469029534497027956776853820379983709383563893756854326772050798906259294658879172912826057117690176600533812637629280495918390911047490191212322787246379060461403822560984272414175867345865303754743742352865646255243302963157674456816301058749284209116629885259414117429100344444577428036325900379353137791772381994578527986285869611112303224398506613103793086038917132983627489207325908615942109315296348021928454890416386888892275971732011808685963794226657960633260960673731203401459089498682239167895812125418112373807389254699392739837801692374418282171183560738257341106981218578591332257406805308792863581333317459681547770829399579974240218765603448200671005492333961000304448015860770390807204754949728351655986450389497666642483091392667523581116371979810344539436534744557177031593679321822311108738125160972616623679350910942333001528965631677311553278339523453542945113944206358891486410995881688905142994634796379245682777709810992031645729971369652411888094000688222357793454365305219095847465517889572707735548513951114416630348447475697595646472610167421112447493697644384223182166030745200354780885068437834249242222997347281192410811242901564072199786368650806541783018241409146581138254970702088355389260265983068404493082155276736095614336358750807436644454817475936586759249153931651085593883915881659367664381386912732652625100823282466098693034080586384802820876963504381782073236858242840733455897848307773434678377225758558668338361080218165842770005375972905100596966701626933641406714571067713522652852223454654747686105808344330896855674972896435506622191973019453261103056482451807909306851521893671746074385530870204131278686865117404482313761987107790042558912630018981938931353216053311697624069574660991169699760317788581765764120072092179682395415079304076936347300543992957123490088260708542703179451727785483836731462565406001369749620381930265728638342855806356429457833954970627265610279034039821145081609389541339577322875958111935628117387772514764904708269334006544602227041493174928290648292071188089218481284331193720057026094018858946853284320943924483634287863927878638831303690056257642304093661830536295955555432426198514499998841330984330477620727129131720400683898300503317329893804720478575828823554615198247672960409482822292827746886328145740707133436508922291600730707798461694284089476454699407711017438034673320572828172580287984656029583455568094281892174774581417272572928550398776894516416767735830535725270942235515991824684847602634435454304797125606611296367936979622918209240390308749450312827994954476613678684972986879840616725466225119573322245147052800150515960293809554775739878984402025619330330954836367346814802485866937660545710890053892804867404538563618016545964160944604601982344216753073263155761441272291926614380576123354912592936309762032850278261868819111278037713930551962322336697968740936895892482328026224265940743645932771667178445188445922799143804748925557673144092083400909026369115358507974988540372553413786556044342740183341041463443809389008939712813715982696613008252439727215952759985695242907538883782846769747867287211050772982720983661859500780820598214792087405210220214089719083506908576465318486263540266001989301528212153359096670003502327555063280863449528900743996630317825048738613231009243103640848589524005454244282396343698596269770574948534819121166143128835393928535440938904747047151465310070777047848286416440101388157390821986690483740468317942839260152406035754136531171394177993233466118183914442410820505434954698790148452671484609869035767930552935825818600224143474438310158488008819028440481295782859854960921034477650642297995191835990509588517922208672578667815632850703424334019016350390528324269731486437898261386189009258149201587328004077193412028509670076215477672767576962126874788580163404057545066752348432760513266688716887653880480631313163836864258309729841640617857422800915415734716618824480480137989626825980168117392961038920866106524630826214536565914299725030144066802559519282403018851633019587807753414223791083533825847610140450369418390878575924665887221622995546961458627586017376391083072303377344070534579281122781485906779101432975255511200327130000592384114308547568487367261319127291913523714441359271725479114436037636877546780748254693883429125871463488615818874491259726603798926523364670397240415784965913061538907493075071009113307947158895637935370162473582235952009630706402134254261692384095448172684020591042453533299491652692441701118132160382885803942293212475855617705429341429641527386226710907706911191946460346489998934349000257450674753011018670523444120202485983624379444442208486649427477685257069208471348763669846301352583006723626373346785292324605292655034768179778370235338821051292517232623453192448235504721576010683284260291140060798711022739905138331313414447804056188418789969134038767352392932881058820731668927882223941750792670619782918008536691785897159134017001018210606455111112943752501132814029795280119939209122339440013764503521874624564165707785986772634481331461775350987033469073334435526236207642863486063426151146745845578630076703087698627565167671648413771125154042146038246019201895486664750265028435575673594550198845962239337400913952547807724490934042824163482753003971461587169732073659208743062028284659460438562048233166303772461773261631148561623883460040296837011346693741124354239972264012362282566080278914593765473932339526103824462255136118156258667980896880415285215345618212458484668380440700009290552092056661343829158680130146189127515687547276434733831436617281797496897102262055590181810915472199265815683928957040396745252208083849291679918635818408930665475088886144641793611738200320489690243699479206714201004722095191069558427357027849304744165755692539891293093466026305837965244628138182073987928847385139814145419716044502157987517290994554318084051241398567297016817902924229856214552643746393163719132306896000849234584314298613867309597069139219870219548961110523209769786842206704004116562243911632386204075599198093915024830173746502238923117782252913864539797037552295538135738494263492230443710767596607150497926113688640809783961968777193021916189773147401581379349138672229808359787460821060740685840622107484103074660108157801922718903965244067182499331089467844725724337277716173669490287264559759957059310598053517570283375429316002455371632752499074575603366318903034238876259823303447743192977594376460150841417297993901627285252844245115867207043450959474248174716111444057859071450740878341236875543109240092306730567581296821746506108265482818121638924732008126838869909305856886439822165980519491380686516914918899508248338350291972050679792877144004455142740813085288731034132804104874444013876395891658315109362717230003673424523364678041243917329106858090049813561289814263187441833117366255164314732778533591774698576437466781879543034538145377249581412191303108336420490765567437531918061034906170796242881264016369057003463262796960986930895720991001523656146571452791539391808153215771666989592746528026763576586302389207474495632174778789883223936032761123022344149612003188785884072969139509343588776206487091145725395141077733097259031772780654824444409164329453450777842929565932470485046310226546443453348960027604408599584926687798864615147150327648143244146242485803726881207816683475263161403173932530499299736949826246969922001280997648411149312239045468874059863164187972543484727914394879851747577437478067785820115470275190959389365484071894609704266087274392889427073944935193934577975671998448976392602887975830002848320965470820618474180310062138156989521559343795068577598972957056212936896810557590043871689279675313477887684316680863554487408673235105653812186265465377324252340345830772175041637189359230382087930110127902718631420826806552853849738102279130588124279481790253561815594649177631171526931668509771904315767829712260112204205099227821787831257214788440665188737961779108661835542251826592002620236175722810530228692669362961444277556148702687321221030690735598022185227000594296665121521534787431387124106330454598417331180881890714149201493861826772077678221232128090903904859949406545637332602544520865340612918507919903896092171406038693709015097901603029182870986320565744757475101274511685386291663430898549083245087144722174794051468401805514084343127520716724332537315618558785282692240394319825248532738207713418414111389197106532819966902211340413989670135298711350217043490293796827810621243710066519313296422236851832877533969844811160983043130971336608491599425047698737159213787004163524901522940620227170388300391865782294349855027568881563202740309404804425706827273383097018163106195834813036163984204555485390169557823471163144563993415635264069867466655148082403663399670697534390862416118632240889559602726881213691981349827555477161423845487284856823734670014896455784245666327504950768388114666507555852580080260469316915027065406701748974393271791417822062911379029557867815515111268821756382498330352331762572267231602895568930323769628425880593197070229937270605874085159802024972872683361739182943198314881291421059172358260850603650333164029808995036116863950218127386136811914129090870681145886996555857299702709308446694461970079497480769037104107297517342200219562397571052097732435794574250933483613788192237360018435314303719566580137029247643667756292317250404696045638829560808675496581017884748139243291203696926654755649225450994988820108051042027729534749451101838955496072889099230493041084548923400827915549511690421177628851264632397477220484311142031637911689217947204797063420638068137100343744455122815937479204560136181578262768283267396478208714446589262041377539888078769398447560014892856567053240714054571401526972649299255097459702735760036480815557942293314855959150227807826784598355905535260892125924420607232456189310444335444607356188600476477705521016037947643060714385669178036616560877490158871689929556671704332058060302511265977856202944608263554754863606159062291536896364542836031311651811912011940964755570044117874547010958746320933572141773672186833536540968225921105062244921811341342089272542354957494779199931326144388785784292638121608682438552819492745511546779385199708301807820646764462271140979068407581226501589958833380968651774760081345350659660814687447632199766171254828103450753725249962124569224592493277283865515414960847492402365712719768458748163629304095233488736488405499829365085874755024369167312041050860945526074160253487845449183559940897688251673832024375670645712546175490378668661659939789501661847506089293328336068426545549477248681597414311404878652620132782193720777356913736966990296269714143473461389923342048850131371374464627607994364085465098841715440211476508419402127506481301981710124493635182615690499205459279300668654729664392818974224756320519191267928105508315679335831144090490296379942578990983345267413555105676883308034384371880764756536688118747606290153752723678144915708640947666389603590975826651919178213420634121698945310328280605076833385585255184509888145490376820860674420562856858515988971305177192037676175442311986900904913168520947782311737904178827816468786664463296089702365628451062876330939178331479291655255177405225539294392798453892037573872983971420489512989621406072551830141475764012015081973341178989758020174339976978900235978994434696045845952032367143617989842351055004458718926559570049067793530102981708377135275406661869875227388782773252389642336633394007813140787986856902643240310828835473205407026722075904129784386755921680117817677532413793819711793343994307880357972103618526859301105105978941325825850695068878646618085284078541916895110484337840662964421990905889834669649063697493244987289850909983561553818876787144448342241505697655762412122325645067521604179622716287164667454162566681878024465268828800766644222280078459089734119946851051246223108032396626664449667295206461802837823636341292346966645244679269787521851918238340425007400706310051221215906493805065847268202550877666930083702148836540254923429911842949307147279002076687673164064793488928902765446140488492199795480305479186244904815825903754469746323556656110548472133017019249161261450268744323696164773843354730467900426085120572530452399272362359470603836796077434078346878393590685757320462598606744962633699312924110065753772989341394514410468581969103716751097453253689190725224064647298958890455294108931280141420905148936204300546414077925888993133485984078818046057971850380963028763272428387422945569676502521279745060981121854526735500871514707209409533760526171291102244373750147752191115062897735013613829459393647460110227604261875319318344859587392820072935290095209888967574751560652888245925605361183949551441759587193472119917997508919713751565020701839166334525866069539069901235020305225478537495377742108839828702556953625587916423841838294198554323305133652026159132538972431636153053274668009166404526640060059265809022964077034244287868331996373782094337356117072321404158930099974857110635060771929191900759130979971760369095613443485958160503106225372569072961406707781926769730816409878841690497609548085736186536622239939217005518912111118290106514963648793238167585640211263660811449735340479613169676105348892306232971340331605234821663899483470909137381464560009766136752121838960146137413683262310461570718630146623674751695962074548298280289974068896451365082732164527535990132073392402725888071801769609123746011293536054500550752807440243458233517437211360246983050268343138491164535871099763633394293909927906327726564028691380259298905766201626853747517410267548740807050541106758360137444154354302763503737121866527955345294203974037257564152749696028185844633982086526151409458710520801485867434031042624218171929071444707980377063884392107568660101782591433936669572522156890689918260672565883310078066163310178889743966174649657703080443390092365570479432014131973763796130921827818639594788655607020986238299311408149366898231933225259588169327586659126133709112799149836165229244913870508026744854275872175790927652934361529325460033445173160682819822333930125543488136993033988896029831304792293762964756267106906170113920537370687716011118245754684730978491084708663359607979110444599962675189062114652901962498410622942612811768644888069913268674652096441265437194248951845286491466851172343030508697473915527481409192702340112454828447580458873089389546309553842898051039123351502002146335311086837069588528498844753553167494680511115668878738932565898499921831297718825415868903515777153384488123803252189407890690082870803610839580482786556291846887102989971126487715731823521663776024790444173441700932065130965154303519421948932900123734173222175808490754493239960578053866350668428349060410200086289670850468893472339186021338243979175963531838886820780337374683875414140273259364610828513905970509836346957227600147987472710756671416893176011360847926480556235132030373710487213537691570580082035261858747256882458845239317733517591912331552301245657961867480455711496279422753357321361972774974462006835235681103202831866607428946439462218772334722969911589520058036381999513349710033341495851166251899154171964509424359952598702887966713615744314356470508528645750424799037733208011852450276841815870488620415350875532902763954850669924221018500173799208859389118116234906324685837678764479953562738071718573655331061758537313635231838322651045128401826912310187599577563229548680420053071837375125710842230710315961283496492818462380355391801162075077173979536691763899340998852876797017700354914585268240071883561928232258807222956260586834472056239055979407092020826732128206922894825736017032562098600307635125385841431783792920102365700206017156507015782412105840842093769632757105010580878109852502575132329669206769318767069546209468199032422576102080038639654803813739955109563877604905622328123998884381372133123414420994961240111348604553399622684389164656266979175858021236905383419170566891005507437848180214359159869744075335094573227988029793380651408141467714654642027082484022719503070722353718969948930215365271634133814456421954152179109752436056370669749125529411416449000442665317568132251941900313256878661072008954843863630140240555959209851419927111669933704651298204219208604598623549054458438553959584258619786289241334539202124126171862822973690712432857751427074166309849185166494203792038379348003068659562512648891441323578919431584853177140868460392184397556397888079465803197389587080206368641698362986340731947659887123256928695531108692366995565107849899364397848972351055942028363549631024155496179638602399885336674993539583937457359391093683569666338832982304626266438356882692349695274058786355603300406641666855586763672424504912820407677862862825252683915238946784656508799426917899728930271572670176455904110719385097867121555171472245005894227202449194074996074536829582254857812217608112111481185482080492934072036310562436969832800590120812170211691572725866133186561400177740498101723170539431352566718111969090555354391728086374907140463991342451499558756734405123023732015828977155895750449208942739603979569865786993650906032052183067802459523951729604799227832979759402049405736407373636603809449003597738702006850256784333361553728244024481515311626271177900829196455241667976221684300283228323308199935724226301254817802960472958738631346052909947969464700075000975426607001488177677624876404209122788880083594702464669221441831401723225629045968249517236444550354719157666302523923180513761539228445455566355334043494197481344632964624173746147934965486810379611799078583128266551097685358099789162269498716833922850134149334396380236098622050698663587902268939331188313031970893357261913383775805958881742747360455802343770962281391601395758024062350193233901641080448903851006663629856411768003753718314968175557699233166546086318838345858059769565803075279658131046977154608809049404867545171242355398256596772656778851048335006521027546958610746710628699734892980601194791422898784729271739899615283206715758933862712202155612588926130891010366532273020106929937344816242542474553472404326165751628873222066235170065572355287590884114750965861517348471965906598755242092003755638334184778070597283239160229267272282302381092234700873716491522667357340995151294631225529452114200362804945297639267967085769233205296969691256898070199858097383486712540545531650847857577020838730669327847323812567028757507205281626193281449965994567278425932553540876186369294652659388518407756953368156569794156715925057920999878205042600368817984040695689628967303599861631050798623878637517594434975178960546815348279031549132210377358503364611599457879606200281737398204294935261599220989191570207680645950773393598541259563328296079859735280522248134903252672410495477410334214579495995282813486107784373079129379160377042853132450352967124069694472794805014715487989206480411147682615101048549134052591687460099571556766502437554676526326885469982322558690010638036473069795410395149191233944730644586841900076638230679273252343679648377073139593646578278622610420213646310975861488762100686853858020767278837264188241630553736819418008695514104973315009555253487701088140934273841540110706963107175586066726127199449162644253156148219381070410866905373309775510552529152616882562900529422150948357672093589147197153409359244092605637031515903570710097407670421111559196812882751001129909843465273794432247027670961324208915437243102364167107860583488241558598170964071749155716633134455963438303823234932313147138078606564246889684500704399081607902242278014513376421389138927139663171931324759005183657314873323287224716349449750846339106525335557998261506914471409819235705271507587263855392416710899461830758030381685413413343120327117814923873056097825476674433133213138772586879621177606389355831425631956058344589006106817108763570863676296738962295533426015515613971994349435744169787305739201344760834851871547757180204526087907707193241600282192451500708439520713263236734204821659740416757331156073757916940163591562930152448888108364271646164648021348691082548435702590654745569527918133170126116444005457703442990199847255050481907301384604477164879270020456263236132158566510909278662088148608410118760538190797780331321841019102757195216058518316050909126282623874451235722258626521651485910927478408279763370717547020407406890711675511720889413461627647275471192277644543305305014682848821463579771086299344860564802526418830078358453586869710734620685836212050764837891665637040833406104741802803139952589079735235281819010888405527675310151463529423741003831187491040202214392147379329705107115300232703030350415646886147955823517959252425678248883013785274388549362111241010450904560222441515243338987116942977603327399360079605506212077163107660257793535009320333973504419077020972572962841296034850313381867686651077281319010971621942783967303572347224273699168146416293384106191847119151298913445601162285349205201902603454706938541593712688885779344567338683552727321159354194984019594658437463696132786492943232036300785752252562038580285463692160175862066971247424015463863554722022308744799716656318430933849914337330865025744825713954833816107466158517403081362507428053507987764002078020194735521145085267733422845731506246915377491961758624649749805036373502287367846045758917031401241091986480223841293287024861207672956765470531162579051258595166859080988664405533196237450784617855552180532693340264713766060423519318092998739338496491388002906665712139991970180704093188759866643606710513996995817359258461939183197166022863746239849330435198122221652146546732716431536517063513424667840941218586937603538578209663937881475718024531058037926243076949015218957212785634503230127606136006574639188024992382239718394802859907227293230871841665187051445657912529536516643131627817488397279326628840364474479715110804173785601156992913143223219086164832197683736432765674740381630947861923615501299333480177548404873233432107556845567007495816689307450093560626656405227899571443089773832620021410850062935139333456161703491458477502769396875556568405335339953590119034268444703672164111301306860401448141439540614060924267458048668824467009290834054348827607423491748018263729297761104524931195351395374894049099810085276239880421150654412882631457639178382501298533403700020703550379711143254575185022543302687476932589187959466822498110930765346150980909342232976614502803026563768111369493985478778453298468135373990252665287728215915708527652243837857061755849535149729115372617797102124975021807289262647574951630804657183663328955472189350087758157204535255115366184662011272663285343748130587321926656395317663691942346389641855233520597700489677369222008107291062520488837802325802927611415357592201762089014572042349762665386723361256381474427363507135636556501843063308624564115066348942906112076096199533810065562623736283685365466384107598578504598062352937939095875407130416366825465950596091298108743587581278317253287659921808504046498035668846861652052878667236526041926591433570980557046753767892179824416153654058720704440636441432574045713972583323660618584356511115137281152043832569530064437992374232798765419512591143621394326910380360038669728850032118845773152420593244405270232498961081504817769546475271714556120164184793153691601295219041627744046868010056343329810793118694868162434299163774992800995000980685541590141081015564932768458044984813116830899315088587618002236406530081848071909445787578690704059423491888138622604900978964604219157204932621142456937426731760019176081634460316778786979789917394519406340157141006773757796644456296912094310237910829014587762283958282860453421094400165223063402410445679663979942254096808787996725380256646839854699991073928045813559525531420757923710814594780865611567742557269792798407530799738428713878750728308101780813228387859006984261870723048691545613088326739223602602023534421287849684486860582745346475491704249248835265932880334829935843754991371695080307175966292227320592671281309822986623969376461541926102198062244001030380570369660860142321859180355876284547049165638498715721964188254342056857074734470595736696392909606102257730186170441817612123635571712293184735395631624156839960924387027069722138214423503005668628280409670974109045838415012885966081272657768139668456768957049113407266717282143426582600863070883879360239974057141958825261958221979758853351738812833578100362608503286250779931572169911510579358948363876652910919056321280091465873782422274116573616108439495686271473612027278839349768164087062807455149870091108897013267295998839715911224886047791261065034688906729570224812798560511886434483305071735692323540418936665838867179258236502391581242733430373689522117955166867034794954641211777437046158153099795685196236126830242611869465644452586353654487038571187161314394184236321644449121782048268632942626726933768831124065221448171507769230289287511739157703519280439820971499720771268289049911644581051379609880319892615790760550336993686132149430457290162225318031898556571715658587053287248409160961638604063634741069671802316408894046406720306215145163613583494899435490296889709442554734934590924765473180173480772634460007139886249821044096283055941994464603088449381311393207919811612505036422207943090768884007474670662162172545800297662256167145915510400337454959314766997030791453285234123459157750920600855524945812726554150561192615451198131301723128529624069607206114799839385014051442942236602981631097270976108202611692289599753529624155498953701914820891295600959207548026894397068757760500271436840595539024403532896198117849687327725015568925377287476736675415255419122617931313139455599536295100311350786137822722441782995423373668940342213720770194710742434662484366147278093446772550054778665092192894721596881393592793832304393748832567787287111230577682084397316819938524290571793572731417177490860642962999911712524408896092287250648343285813696165640787220091226289542460542723496387300947821089159980684150486315312628358285158180604110619044107950529141081534147890527660591047172868337117728731032705485269568341786971080972302786446253513041862877831353586406682176057052520511297007197526419494771242500829605084859238862207718339656460092042426558212624178252098896421753168057533975436577556685028860009583425823548520705575974171726014663713815470765299159651093449657491933786510071833173283491396904246623799283520497323741387569214907950957325425078998525861344245160850860772166868426734296550050484591857191750953291822407063523046884688748685183196100399140054666658443825457938154576266779831330182918202366430318102206798524831062090879503910717591393538953047409826900048251832384508535814898296453650090675087714415962351140147217355739857517612900258303313896611501161810578219396593628987525756975216380809580311707696608336227501265827403474041938045819151776990382469270480186911259331815995061675789197748179292814218895276207372631009951764071462782204272032027920988835799569349542227503310456673601265585945844218994571941157056934626959289912109268533260406036825837855858577113025072463989067317672871047813849883659453453051915639353260054306361690014037655715775850584331999221444468753204452127366338564906995754185723413437656851405752703031160104353948810079619456411182141787270683971636679479540593741706201597060257403973189209500006762447791101412058049137677703403974340988456351201647757156140033594188625708583957964643180364687440981172040289310439432071770911234260557205173165768236604019631879453570811972184591594587804782926393824161686405069670185829611696869186693802260975366507091907072540640841300180989968815066537306379932605347903775919644558466531230956792109409602008125451696322428029030529743852230627007559942357563219326168154295637110783981665014237606723399217348458159971009766813520827639743443540837801044572817930973409285373550614570580324436601312208519088310748456068264494679435323322811307364872836123681524271827948249217606767137245112372664129806348088568018077713095655446878462278881922538544697790983274216142818465856409204950197732555641666152889796199696455336216828516149343060805527010834162459845456242618811326543739985085147124816158571320912413295277606939177490393352267704823490292078048160659950787716883075965865953390420507660377064015225240422191300667209932052675761193651886953236837883143789124523897064456717870273273323357202384173525701754686330323120931017368998311905019734461492438059682297804954243567658368565374924483593756192586522780488908896455923630237953918491941579686772582297142520379896184254681324496590748271480140919533065443990671768589893254519252832305594110989489622850756169761807886276684959435060358239832489489278860196591883115743125134346915932662811369875509957657200323095086549992653980149436289350109381811177631265483894057721641579389337536462962890379917861273277376914721841942528500692169551915408124740089668364917131360281414374413757501528502272626659973241180013426140637647525463024760463753028754781661278298733429443673325370206769099299453231371646522172212949646731340239421744760229812842318558132722718681556134929320562965564061133827692129990507218662435171123738798986475510711003793773611971537318995344384242892983766847252079082343430142168016203793165808525389073470431126975932709837552749550194509428091942933737377693243426427777341929488113327176357272235397119047347853782207812325297160014261111965352752394580214876998241393668761947319952260255544416012928797476452636882332649052470646296126094808859044819309378458853013962921045716857002473706796875735785241508339138174577338423234717768931310055931224819903202886008549732555453188639327296525964858684890328045992223622428264583080265271720936115584280169791046440503229643191225234832638316239749915097070173873866900167299760972307896969163689983019513199087353320877489295142746002576169267237454766760095212400234520383270460016644185870524544261016573127212362875398556319977296515338072692160006016067404354057664915472194390681163467136631804030825063534913527884193287568913650670038631641241190615314623592609667662090769805352371179361120767472551290688609718887408342298299432917624203489935875114875890542746491244618293681222254753156872693347509169643185881994158662097100597506560546947351584716082293641797934779500367187612306742596369623826451574802351765457676605174853410757479935312937036729909783257449711485160197406984208478680251603506713937636442596414618049823558452137954411845059637792557057550296150768913913545111703098291418298332373258646377900483611954108517206619942640849066951912150710666599924694073430029324200541790692926452322535220983712922488846600467890374007779761460614602879244182239673922551465593951691990977541401037824871512094129387136796285109763074209894782145597833330474639898933459240128560583442107851760862667899266782028385819081309405676975525231882691290263508805359711182185106515119457714689720441435623630240399168290309044540716577971877551991139064424457689409891554587276034218814103480752845557121764368006239219580332243881127051692146497991800997750803510588410227642530525170496922708092578901266544134750930581299582643356866754253791446746469275102387327127080170354151359201629330262493712336002557928299406154717008186064922586306061043509465972822107858374061106763208012408261225246596510263927711901403633666379006538287135398770678244679446141565870096722751235240185801322066343004139771607818282421116958424092826405158190887311478089350165257399263911775440402268706906192853940773716640173361290771405196437352623151528399891323071419259714885042593233809335309061118615518601385824223938001983205013878236955389249084956809664191869174339622991543347236631173023511644319434406378584383555613590824290403445666938152547798074046700095688488698748275950792889775072029643852488486018556840152461690602599013075580638138090359888889226595279892562236167998631848391820102916032750647049817810366259085618690277671798379830238503773724492642905271321198114434797304325722264242795002192485907903391236027168163131470328987885210198988202422212628142813075161214006855172694363270813517437745326451444080240041018776995297528101145383748558637203600844664544202400757253983463524858553545398144519455974289231949399596084300137737892945403591880879830933650017880280010240587055338805642705723958043567918063764688005184134947143497972176049760541192256738381339819717135785325933606481541067247510747644133900957542649759705066643893804019926195291744983833615167931475026813665737545306904893531742937416749142913403493724572981413533027032770411710872201087566619126462783610789175963773347620208962264483201595523343549954282445310673789188744631354293659477863999023799343186038472440772566551314184266689173583602285867386533784955324186443173597628745032290984972661278077888475002286493281297643312286283095753209319595810654314670943746872133630705784261975458095494898749784330126177960382003391061645982824042089231832949478817219292155509054320871067285487798930232899646816556177672899777281592215193420071203339131149349316831149710573391053593572411599879043053259668145827064566683043779540197133610301827644694544629802116078705261748199793990113788568642715921840920907721872439656950979135547278409871054147615591062565018440978751930533997893794984375688962563698810756387882951249905850981508994646558525816229992261335178161202250602334975876546080933863066263626949303987890226748513040253602595221450062284380728037359802071477378863770957176220019939077102246801616407347402111641747973855028828237855820704278032388377840890592200548616999417185057123445847553591728119962022661172149251103334167850957763669568866241209314605110129027838411255066432227771254324133991641702497672446188973290310320205734328988937261205684657071613634051179226238038833091716688136462970173761171606643401004125089812657729561231756522525152940540358234256615814143453507068848453090930275685512662226975308809550392241137110523488806628128280300137135241077812484533966502213473022056658800167145644055879281105732082913805642006135440868818892004954380768875994792740987497480368698193888412702643276025337374591538185466947685292128649987322438814151534941012186003606976281957367317585933560797825563262974917614913189536388729059825948028671886016461506918027246432053102428785241452390506817331403487166892199391573315112845698709960756624844431276614992129566772313805215351062107583944841981887160017202943599408266853545897502222110922307019476208511663642067646442106723902165784077464698394722381853537953059656074854252361920974111313983948276439657899749196513379110465011212845182004314962254108264838868606342561699592527570239393945249483708139862756484739384405005422370966454528195774737736212714951825140509058897289235673743136403523143880205224256271533104429088957367850972214973511553063080205915237101690554580047340665589655093168512258203078809149620487374303185563854738583608556255807642006242469927202100444808691073675095546908501693452705341428220742517275139748281494994206531327775319469877281000092598209809942950355974338826562699694030665637076533381002750327152597375778531925101240624996422370908713772063967524673291546193045037465011406125735813069073128097410368078467511933700406903977924905457722749746056072735404809429785310106183647891948701877223909306779004201450670554916333880990965484039997255278254550630593925152027343772422925772826825988111441756332964628219949196359819970407663819291968808524132000943578516468655183315779631249305226258288940965639726177753994594282678713305319581377318915398661925431214162982511942323297148130879829127653988507492228345793484547711634357830068419028986673070232225213748506259526254729531343728157475838633758127578736699923499342208168931076749584740011926721712580098725816285490378296512014245083019133637635477242150022019117292718132785374484250954034267490375169484912082763062037599106062121893483763942068826183608190253925720549043332467768438068352104642898609313092248346037061661982703403424164922993072904185836985902267659398851640950787743318229131640408641341557444680167788031729704540420281302247744598301782940645005422959946126879519409035955243914171118307749889647628706654472842979420309294591402141785582382197071534282712444589593789392737307770515912460628378783696963316252588966879918356232139611772209454879357157142543967681333945965011424314431182752914929651180293976351249011551916886451259726968542143706810273237171146202106434833920576765311150360725461278542882050268295914708958522216458203020126415919381112276341676704183639747387101029346851604346460809851015108009251732006231681794331832873815328532066360118548240782753660067262652546968413395429242991219268034899647522896446122392379864129181837202204144137519304146179452172936642466367320495442185174923450897098387951743205916580224065786599347845630572978217010607390779010837395721146174210504106786809217918428023225931482538648875751733031286380891731690041217541719232939301077471998352232232282878333899937749029531012585921975206703177249970563017022549820268831654440856101338587924572448771698074333338734036205220072766862990315325061106070093654015074286579334623830672897662842207130374764937678379217577710673589364740508709772003184155231684700557131224054998111721999513105125424991100991034057827515748320728662915115786644721612108724018400682212397829163545473646708126022674682548862198406925925779841004393980025450633868927725863101476990125006688847928944889579446567421897240656923022328572634555475915462805319652644458078217393166070896934209169459558291315615996542698564436845879615243337641264456678689737180086434517760342734106598217805117105551215707834835441851468454924503707727903544952489925485141525162082994048718539697544728741826622968237253590044080941231269568240978825352271923941062524460327359068180568814218827310220627408207801127567168152385587675071091307088405693474754394276908382193850648747162734772284587900833467713764245117459940818984978512156877464261023475592660844815499061233126259439582931679485876909894419389137377647276583697539195417517402444483449734493362925333552698819687841389085655402474885415831812933283727293362420186223702114160505389746439988206465742719441770722957177030825205750054493417154362554691713475120841887269346638235665523925539507119528948445726380207257292475776720731255400919229017134899866618185118555125125223896953181406887405771233628869576597869340204882436236621567457406306563569795987946266769005767409405097269054327617153825004792746526944554434364459417127752667168543026802399668604316046857908629368250126601391091636912758337115607356140258800927389528054667068238055164273106800603898170701519093048991529182199280090246817556075648778725128407122498690002305791132070879935795756512678935581000473202421075303190262986730832432654884102040932475047279680674935347031005158718670114150876194381967693483655787673835761557785802591533266846041523512635844398644453162491005919695491959742498887921456037916056542675856880629996499556181649116312923548359610366393580619380826625411231692270702278426123075795455802123518894576508686989733544216472173503795849725351837792982939745175272205186130243770558904505780756514979229890428119765276308308926396406875651806134537544444789758217979808285572523782172484380985283640049123428873193496452751238768121079284103441040806835501192839265247637429489427836006809715449183061665346287023278257445416966610955001188689652549892822948030267111730925922308636846480238413989014478869494077953680044329427859714484272042877068202800874482741334148842035397610388799095637193954556702048985972580421363645653560220342544612143063661404404718720735123394548569412095459682652912847077077035798304316036417968896667412023057829911578818988001594376733386776777363226474854382547770877395421646937199513797081369087237164937020979418805213773360665923434536822080825301727764848881055895777570646399113459056396115142317013893130512176378486743169247984311473640910276169115937240677351217717520793411133492778168313238728307896874160561090427087992992626591894067641336802871891601603157971349963091098741223197610353814590549251435329803347976567247842175496061516476781296770869431270466213726037860330006875452719591672686796842835561180845318384254350818179337978704937039521305327356402322032524270123516061231737296826823514430099478888311496984781284268480359932776685570726437197165695714096509367928171171760127453549127874204787410640318823899969044253141080314817027016224245670196921536361248683976621698610935090467248833437537302016418356094004317300472327356710264438284610189686611750826864686452955551242955996664194862902795503278529147049643086858538331092528998724795193767994555739650724417124407499713528616059018737150358775418515081161005541936681231362727102711198026717268033816847250257913631312503575919870030382894399382439138601555104555106870797953365628551361524211566564166931005806110632864677535686448441277457069466146334710033694178142992043470582981700367453094178196816874972873208201316257319569840480972499908292858058684179799239929098086719416806506051949428067210704606587216001801039212581873073623268856819822183569938568649718190816339179863799693032226791743953775231209222842024935400766872672519219009203710040128169666146421833751036571967176777997067168520970789790990868547876080056415796802354774644285227401786656486606362280003683958153558049774406575266649487762896370838501945283743763568389305204514008717231990931151350418572957100467952648065252318322300371879580842956397640973514064415611307369756581388412676795787303810520874135865742128721913418264673128630936881209006194875812942973378195673393392155877060879976053056115347582441356129661366161156266646522913972269002109890296700495506231132151170897305314458549746993057902958126344552691286836458475808332444448030248800813751634256240306547224707723807184189350836170857493404202261244143379646349773656390770142398881302342236072302177650056789681769191520724942362781937258823000591100939438145726432975531894683177945339963075218672638989764937374803056373277785564017249055999482960733851696490763436572961867025902325491612400264185078108987683666718477500778337664304188464792564201678004648363455894315421027807638924530269810336306795973748995950738484443600737726151648691479344553804632316202658832741103279727918499818077588771495425846624332678485671986924277121816584340607420361504898435177361026532744156343370747365383110761360147125532920804025004489046511181704679880789543822930798137488846212094960308553839468244084538102626306467749780873058268405008200854334847517592351591710521173374418354159963652099429951628981723734334944258658028051761224275634597811382133598913518660893830455207419287011586263887247212674425920286169192960948854288149807106366553417895011288688946239413160490541751911933549554731850834079966263448725499603642279481303414654048348768317338084460259994943761886924383379351186200178150826189314701681826446308063890407890554999469805891520819263444195387929763642487717202972404687261730125012318897117516843952882819418611804376585158228273088770841874067796841649454928849997320266018962387437042426448532807006661267279769610965937298147851172750743265828973579961412002240888236534664214387549842774809551634944441046561532434859924118218761709760552594359315011141652571832862400447538639966406088254706108222162651790242871082220870326165282072508766339445059161533678809276622942711124289836481282089642266320064370562832138406494532062098333920561841949170089960683772992174159027282249019772449641761166265971000404519183841894402441582457483529702614634115711895312337051774817804039449743711984633585067317820625541472253305666450851406358670559845954044592421419200329468367540615765042063574135752327868142157270311004850500838026918198748035626698704825713290022751359935694223826553848407045056677284352300331625917445417462017856094999912271398626967224032763296964687446058925168072433898688426189787581340358547711595019046445928999335724409909492933136309893063039618475851282375230797836763923822717311715694158304660754095917137029454530088767759636303622627389112703918478598671132467217098811599320985357555699742807861296070108632745644261272891025178156902341154064541158173060089765275222072852614834486550998326184442955609266617539449985675372585391679645649609674429479179835861922261248664977107348069355052791387969151911177736725130426240882883202457311216324547319992545899175877445418241224003226352363799316193427291483110270793039471920467231099760977359794359863172505191237670455876650506575242724532480801509773700511887948829551326820334417175906949955169984032907021999776724529282045079536553655095794058597201737066198759028500121831994803380662550135045034254597916966145892757721829506941409685413511993153427588564319779371794681948360562047496804951461737747006112035129586054203800725466430298275466289859394986994931486694903654772086799994453048639295048228363025175692898216545114681294651762999503005001233553880886209528264722378986226284411001349225556924524402682596748573222270981518368907377515319715618794184410845119951588054301173011896750537375870024725370747568229959765897317736841962595631526697954468915098567996526456853254888949989238195008974587817200054508618779820085635651713450733390893222407353463466498542712070128327871165485116675594046465405426732924584580805122367916680541221960161296994352825491187738872349084064915845892351522950809106801649604201707087299061153953075006459730391916170864851530740094390999903655351344580707080150423152953110474888350414811914063095880234672932486874641081251594112326339367771933338740562021750750704184673779030735408690230410319958906728467573871020265182006149182713295000920603132427522275945315384326298759818908391402414484714674109327230045221838795834717405296795632716494298594693537443260423737962721070623873734823825077800221328447920120180005572184184770784248287722244749314835533332776172693302807877075574939998161559880958497934970359336030318481799686026919140964851088742045660771566244235506023401176501635441793635496698114212801029301355105405477459808094603257054784458202217943875440244687769999804492436258400788098737841466400132646895661841987461684712155216500567139516027321082563012804418137900535870862472897930549648609938049704707539819057593613728056898568213098509188126916779560096052963532526641018014849866918914431053746182790368729108121098529220958779139833128222550796549773757327908173772688865822541391569848373330024794263256566535019402802671651287997842649676841958069963822903213903054308814420354906692852243675275396256662512944321230207295022585920785269037095320033383870458932666064009117980723800746657168500174905141995689581070342043258676858514333104738882845338962615589491827951370835084387792386884390276258604017292410305373805135242435988992508868403128129456168852896608273442518202208398486190297724683745884318668597904436281606634247330865489866425610091462123263252168014226107677000196036778115939595114661838273009464242904420794242637195216548703408591883036420726635408265994960706640739461340192303687325200596066694521679211219747693817476138014201231145362767917160626651120569902778115961618144120566274069889239361485617113217341639454386942034776672858611343183247956290414675415511938830394192209820866438701025200558153582088225113769922137740002790585266666933149003598824251766903605990339800081918460595332910992542779008155629893809185074454197430283769949400949039662498930403511484307610882154968555363954437885032456727966204879570509660198817473421052473863103336268002791261449387690176095102668305289031577633317750241832380371934261268662745554329030158100977661221962367384442360409143320001137337006933657201221185853671735091221075149631933962106750029968651129676290735334877934157893357519189882669373781544375901156323082611345836659691391394241001888055692668413665429562035420433147445418484844080162872294970005580042845857787334927345993240663376528230692110014286082009479184600704832965472879435899257828193516074185350774853033936796426742392662857267954988070680500581824104305933036085397747080230839693299435043498353718940903475108597429507432981168227782722881767841609178674857089886616311017662629256172976172851703022990346297290425202496627409958177665300298975112240860511616953314527115757986174305333536486168395767585186077896377413738300501090082739410820374163780909689244217439706525879972205197565857844558854797353114799271819442204652813965047158643566852434962203822963466723628131391662889733832832409920136949661487307374780323628947496951146618897974353519306903062688743688019505783920694201758153710422014664774415716871377628542614065314381221789159866317537970237161637626703415387487705066385788629502494244176350281346444059764881257750914650181885257681829086324883777341827863764731495434498804929355148775972387254801603043920256292089550738722167414786168094788049094421218259209568661762762428870447365553425797285679746823798757651742815832675592277049413027538356420240815872030695917336732359367998497872355012122783566728856941075732609874872978670693954858577640802969963935361204704889709655587174759724699960888193373223949130533173900168698881848733974643345385794862519166947145913839813855490908731425877038230443514383318688269293434521795926810226076764940579687074365870702743174648124377262427426925306263500044390774977529994347914814762986070814767991729123137279329653640869853201185584606641600881017294150780771700343890296840187267657094386260409406517085152697679918903306945852335576713443782532595282274375273489586631925326326772775053349024968420021904143762112422765477906755344692635633035315826812186534229741300378530060364226309716628851852885429264548371289133133265984875971395215042594736437134321328937888693396341107863945233583000727437879332408564756593557161632929190429184224672149293177747316847167533210061016229255094394105984264857699933895728937041544667521345819739007851097831042101612743017864472262509204096006103661652785737083171517850451315415112658864364542183201963317323253257636059948378039255495045256493326927875196754692374703698492635935337816766985582640909223356846228815411333996475818576032698003577644796102683331599720847856647312437806160271274328050946681484572820476044979662306254958463725169996131907993477433476767721085907220195676357092266082764401542109885066737193787628749378479304004917847878870149503467730527988502345665481875444861539996520152997966293955872874481557300895088817328972886673333683427893272383419201650158273122763945201205139656935516163893455493342890575938233191443535060027895233901423027158638571224600493184974316076844263407546424944556975236448826414936678791202947714020437147540232654770294846937085417426522649387599269761015605979473807984286937633507224922472727681884607081756569285407064751265427257508630331163521989604948006865196493963391437945650771313029281631010565747518768765245962462355575762419873905822730996528872930065661184532800384297188338649860860828713244391200939506317306135057099091168080073846328675966323749897857119636643167646200618990643820935297514746857500094029509750155747872246286661018697508489881096554959417372998466564417042701580293647801967288757415400062074450977517413874604816425121330807880300793535500812070467600074690250109694994049502742085686367428213332228789793610388406056301156115258920157131465928091197582167976830908988651524509743504849815323682508986287834755876518763379730783768588331699387791071655456232550530729619621762265538909793919629577943783454610644914575858718157343381334750431369115363565758264677553185400132471313641217851037537254394712611675118971867430602870100476367400154197669863589521280706654665508532704550681213051769840769524643169550484013875587796317273424608025380691313661368852355083057251431202834158684512236717321485503681974527504652868838163346034612596642217843872492280704815785475256504773711882714671802283945680757601979217244749846615184332025583506918723921828995836124475804851089100525501698907967670377615230655129581576226461343167512698524793276946720348636276218101723858632515005863650429637649532640639104859866691098188754109782598823435412019568022225109596688436642563099107831710160102839096524572432619944649128969308004602667607862602736720453484580770642729636669380725875414196496177748271594429609953189608260932138691356996137016184868013067300712545033488215830711330353843424793274532755395014181192621775933495369787299051639046521166374649480063943872009061305376926212856346176224785014172937881338286854361657023167144713431441637381895232741799853090567217526272510036642069796164392552140112578825836530660560085414673605421421193613816852327678023949240833676074061689421161806059157496528426935461732495036931325657434955744750286067480570751370982487510671795953638670518711914273398125574980965585827076566860843264091749325891519334662337033293993431235593959310091829324695602788127147193186684085744611211843987791054203462663269991625644973000530238887556538366007356210558410569367326905948461694103512187402584585216525081665155768954679443051191848626068872869666008662173810813842328943643977669379265506993490508760511028372698163864424404958448120188757037533318612793517139659718040660444785352504321196154341720470684623251070155291940073044797979692781736581016625440500388824473466625835728206031233783237346009198547290920974603267528254408226152947813948772984114555337306736696588121225472817229903420238545744565705937483832715512568512156762606174240250884080008948008616253171741506036537383511242668538516830659135893120534830868574973384949315430108362218747651738667579082432112429555060730429876430968173246686661373756434216535203643021446088390059671349982099071643096766123448898798849803934545481957781852003815177271609826045177605594691254738276606740265918471012476332171982981802023867911001399395112061855577420564657979030401706494185095247195133424302500120834528695835613204568477023496991431194319537404146981635359916959446941158208993476208176507604792177976556605023798726786926344255375416201578758022694269326072402334416136330864086982284279553796368754243110549007397860200154369352092625456421744094491416095337827113917589884657804539359646046337371226120598422674984955561133500548521112679731132299614455656811114843135007338326654128378173551859776256746183683676346165039993163411816757013479794096338687217765033144263329485672075771522604873889674864036451115858281305979640036176706460127147372640657847595324700485957168941497309786607921470287265043852530913950374925053171136935121343307532463229603725528330629818568918978701548809717831273832313927384546928698623821379681194048832861604560056387536568444821426586286260911790123039390218642636495676811954074294221937771928329456402042383690006615431476126385575807225094432943485775532785236493947825532813900783122223213400813282058447043822912768261298379514874906501819574431202493121414845845371815157161051936645268427593566167247787444704888353697619393412882349572450194944018509519522156671155127467629040256923860741755438903425768439629336373809490073753471043446178701733332348909374463678711606903256128647294138378747081250719769137339874328276956378383351272289174690150255211947886503753027035805943573054331979777485279899616104267809570528031127119300258594300418364749152004141309726816051582978564703262217616706637095395208965819875580714248092645258851929434693781271590077170022141212679165696268182467886581717782598263540790764724694481901647847779137452038192078975774233549655664857761387145433830562450833459313586672825785111087054195344736644824902887835152340688532604526771509363298706123838050886608989401363874731876455435362094385181031269830146652335038739084964412892444202019886249587140132672653264916558919461645087096083593223462122291615456661046900156427866918394872242499547634557204966975672684588353635601664730766889884355876014933072552495781710558321985653687424644344550588170844905382160935481178205461921910991782283975733591483579961502715039162824916409703004480025877049057750561356824168646960428843589360385524556916985706618598143470796867493394211226839648344654067384115963284186727028336229441051783025235022745491342638233161422961188484556890969462795980673894937484500317901141838027394934222020406116011354615824552174243659194799639614165925183491975052029615946689968431546628728270370787985737990868961992738615472960331967647714715863330626963212181879086990619600326929431359702655454250711555898310905011382480097481269533148738921240208010940215370475681509462176379176456469095757765122331007989797119043017089894719865982028168534416072424014056422360496143549619010685451878527311447151864801825386616216422794947461429697900638363468925090132467796254192869087761343058335807240439627612995887433727858981311172987331523030501223635198528674418125812040929345782145531787078412110436868001522083493297321887048529099550002620860510641095478472862648751614938445874720815656007528850507634155265010183518200094562405520401364702407231614681261008374998412774535527087743544164957724839191457029208962042431505848528790565169895452177174570349357834267320449950073164235879756007555679729904604696484676357536175829683511725430097242579663652839692161952243328194302899961130187720584928511818685773755570963102538946793120496812054902334804239172707163991053281824809540928696601439049589170830714343346614819140462875976038942811238362962066269150890116439319876483145424717433743910014843784575282302158705940607885110247391765362696063648500171852728408785098362689056384219099087983308541740653201455364000258545208872055967569489059219098923217443911408112158936086497890515119979593352140302787007132427146605121910949919379855704492680263565024397081392989468417028271121681317500555424906060863860004447009812061729142944091896988759718295791254514904936254201978053961121920700986205615645466884503983471018203316672234271372350342906749090983002080884009705563654068766685024752561310267273540668411813166241282425964241078936650408869090581036681412067001927710867331485236704048771874378458253748595693912863958628228639704268894951601991863556853873353911163367497105120315108053046241844275565818724962158825760911624573185121235821456258458171475536658328131311729315341034329077863851116036824878224675652025733926999527390979592741054800670117888467835037039055501326429039015675918530189939197353420566039045441927508651861772006655130725535742019571013084238675334909230045988645634194417157945784743301092402485788808073528611918619251165500862388457450435112856011775492556929941800551875604823200908013624468165951028895194863052660325766175903785662578683495454223622550778148974381931031488985771138491110575911784704805750388865614178670581439523218511644713569190567813881865607086250811383504061592185308384193239384696925776462590815111473330289916917284487923137118355512072876515784820446229543260782294628272059937493631904847599814696529028559844944719353073607870938199389790144471345588440967316528880602009802197861076427647559882999365530810552970902034607330699409438090788586489714506827967886496643997483536004982255773755326059235490759922752443765767083394921519344739840189570007865280846484413669567413747681692967643512826346750004240459169983321259650345285807428802729391827453717489398141265311411179100664535666867177857306729923380028520132578392374140011038897435068787330960129654414170486930997888077242118537308993963982854886922312203144191268502953772766014444464048075169043166029475758778427385630406769316717440862927270615928450249835361558649180417512295832990943030462602738286017930173021466457429034915159770606876409232230426223877492759565948838897544539615995153183137384942837545419947902474447423272821927465163340717065277707158391392781498162588517064032072637971220846783749944527950610916499056309825219829027746950375206089432832825729454013078265107719168560364026889556693040758569497057625173566210185008707916603223570626011687571970871769135434097389700143343976302589742204968533914998188172773957740289885746327865401415856848636689558639393549885799310254876095986203912244792675315671891677670702633527488377953382823819820952498329819949052823951815712976329512778523103188889830024448815445433907999102511714237182439120670957348634784276932857714507023489563523769592308512599501224887585334315222778936023608777951439866956776965766002939178403376472001115085542278832470854046662444443739361503626737968573081594791406912931465414187174749176702348741971439998197355486192429453107704885698824670211802623083738331860434031473202169978783344713631418729679715679739502043581241216321730670431644406578645172996525724280272392700334554820334081060364184251574011998882990930218945943187951138777480749167057486675639280804940865225063895104398575190302868603001877984041370091191231448452666769250177492782214761225461572005339269456511162412170681410966254271593837252001404631121100024149950681098355917064538106191194229957355127028334826812509819716554207453680478730489179438788491061773770524747714273641967219442118391626052317373168282754487489627759729700807707736878690502619537823264727387516340938480422569320033344020582828060663884901521706729520010236918183993359364689924779024845797397976374490430579814552908549381097241695360878460678060107301596052165234588152832201335088854401042069949873328948939336914571640094030652000012383802601203693248262280965364850650143772815120794584159324332879374219503595302167525589188994523781436010409934729555910771472452345875450304497672681080320110158513694782529012991801118861572156082040110770653626538263030514284358977439379587227304674422020013099724284800744102938270528917477019292199287217368984427730859656691505643888573225242420569093099753624008660544626183780793196269696400161681563884812100690386095672226084114126734846094590596561157475938690982348331354584108929835278077062054753361931195044091452392029053433618126333834674937311277856847389150876532252522249415274942614724763844215977462135346381606144512941676918813036053144283498788850507992321064602444293516268656639809750553873851162947608659436283016385062997302761129755474326572700265719077938855686319620737806657315102087970906451811160619798586948163611320875212531742575917057840313909904684998646177466520928926699694320712934614118181660309849722527008176038652771697705917762067250850175749320498040157436634285693324706667176760451329787089463673941847021236752577888708668367344595514718856684143437253587111289978971494816943049552436447592567583163448204949683079680386450211722360739483957802290511270861361309901846764309208496946166539161522078888387382824310628343903339265236205090704499339220792705142712863932035171669970064523372109014604613391700968701597609650477396925167803119266863262003889710165223076137138796817955733495729356899565265712175968314954060364796911193426949211245798116973401249484419095832744219575812270713041523914314684763604952941737759267509272260606915486767684208551136748098534326179384336302808709097312911847346285899740395895688006242595831869873826524491409656538704915521283675574064079751490517455899776137290037707911973195259765476341168531426448040068391999382596790943040609965009962467753587474258055048261432151091598663671966294480642112243322269096511593716792070649517430221377067648036786628186596033602508067548672163149576781652107110480400179116584859102099542706480660972968601732465701854256432992560291630815228833962359607716501516225112241532163862213283597795651755777801155437145850113948356948441175819641905267331823810363678931217089269172867412418940939184260737736492467044914839321420783799916301194092508597598336985575017212369436578949148021471209875401476616610102881474051646483493758429704164236674676176298801679030990929635023680951357763628881700690361162336744596205270094323491409358704883315272399300632096949993479316193839035285711885761771145950659137703084681820025539275194690365260527993080880531363591732713818378645303694524827414846189873556365845726134614484603114798076224364916544540911912873578265551885174543768695428944267295355817279053291604005566075602791305356637012515141404168650729214879223815725876063821728266636116066340791065085596449359380911915032043710869617432782025438676930098328054071253446315086003967514393505707429240887358140236285873441544944039512231767503551023343453865074425123527235449774638416829687067563077030146656131496018942173368785611119410752938377761981587013221519542904199549650844413225982003349802934798698916793573677184570658266005696831443354454251450635226937108488148056698858301969400528001616989955181119841822618236864499350061988654369004556570328592576623347805423316035746827354192051495546057905451658917731898492055617560223471782979215050306889374530421057462101727757383366809818262227327708017067547113156893618457917835794483563528657155854064111570143986498731957238595581523968801753819179669278818059144803672143120068217991798856654958774175679521374933695141974004412275678728531056726928033342027201396146326102721989510537002452747584143130570253046873352536215445927369010451594428006863128102394750617925790368808850162269733989046997957449442531243341682414700996467577768857499517059938661676777496668977463830686007238681966925247906251371446760729631138279753567893619533523434318217815956720959890797126488443358265762967941054510568644289297846183106351197249863535871763660934323347728377715044725381320847030073601185054417684209225348191714702396773085357537576661485285874261923077805885401812850969481208941798937740756615475248962082992364205270737972964479001234491777533887257171167709406987649838356600077266519047506861867424658979455458580944741760303373914733707982652528411013239078851079451153956000241286902271178171802798531416628340710131703530783912401822918454386642759303183132711612775072220326734489001969434372271548025289078045226408823121320985366906338650620642326092528622102817391489573681196556179945116973094700424049471762755154375518040432237586750223368085343705550061113993409898622049718144974868365620728550320223230917124960234451925779567925396360409298595266690257259073120143275140919649652714518363607376969294940860091594540083845569186274259875214533337645313798991156364476687933955155917856541992210799212189997712768921306484002298452341243577297862209320326174064692433950107983173018215278434236737349376167878168603851772563881847831260975681641610658341997100213605924807487470613821691726158456505689785463095791571464804047191341749463479262257510814156299600620331305293085543495392939315265500801003714792929591380644296006955033323346914987228208771421949475286074267485281610769733295671741845991563728981826764652407995529297738935724704886393305097922574721742808983889710144197600218654679705340544563139927967228080756736623323997272082377746298737227024029357454351647625090557127181157257578382119417954911744634867269347475150315081825732710526281516625277240146759674570109252131842528707725516108505817312090681082770347047591198494933036503043726252944428123184281454923872775622108614125798425822153588379370199883907003945229728236788213503013603838858607663106693211652095975280338059189814715002893684286534971484509325072361753239945544817717587894570493861087505026838235593510198355297649620222273556952926164599048948408598079994681893840876301948656408361161997176247787910836698096734483430480692359479596123784044467864277969644151923816399129044903617935312959673515154357943811315791932571664285726804586011672494159623022321895997057757708508840517756428365615328423304283848469207057730690530237304406181734485964866765968775753053712064383158032854607268377387447776208485857531851197855800793627417816433892216035272533189037075543342704317375503460734160598975143239782944984813055051208453139376728686955336704500820369470673675450296152657111961418378223767721434105110431161561058805178992940730609964913974657062137115379914226867160787477819557663890058843337046409106039323929916993600293793603382628064392155752767154390545672006330989161531834469760565569574765943495022118032574692725415212436375718915026697270736326263220584203748762251186315199570013779994524886535706058033107536316376958589894879195945417248444428353899118611764496217183918031517596442156272602333812017098952663828376328925271869044781942782412966139157088189953202538729824668542714302876942725075151247198757665911394167351344579881997219011420204565614922808520190413579326890590927964678795433957684167763828048028614989021663031375488656449984017776879938718028347765803076803694115573793509221910482829443115635904340814184211800264453731502539816796186970456022132205684231362391606090936130770400679161630851067828395823896231987655628208349289596556590296858345307134237708422533374199897621899373139588050186139270237858110017586635502461729808244883570846993867465315693665506657525780448937888119510655178353026209242328972004762614206337939010975135076943816803744601423132180481941902335152488905967729751947325588595324869966568242174580469899785954584424605686605936898381901315282405141539313916789796850078223541697961700638975765753868013217666405844778117319382992364038074377505711531130539674800664920841922647714524769186351161054923425438179791678807264074486989875502441881548303057247209861239403058527886152332267837802397402700706463371150254885825182160871949166681653587499242354703875407243937813882370626158833830922066778827876847040075246939013040191241291505216038355833599644094461738062811147276787860271975469371669528554632746645629956256105295869492668212680049647755792012144739866553737272174524027433763928876254345690093812633510664912412605988068013634726197731212533407432352194096286142369596517270337876175647628051840009544812635241793480138048865737565025439779915704885226855344814916992112455163863543672895488593804805126980215829450257284910372177339181899018961857694755482146619141440024740176778254543572054024945530134015477302858891446863047946401286123472265589971060353885289373498737327097799816262370787177326815846635938171457507096994412704994032467711663584322658661925860986870081054866126634031990733233606716559083145644269748807349279873023437222306435899984132614114317568332866892344514226319797870820689728609779796907183076888078389527593489099921671682938164295907675841401130488807728597299718389711857923662850436822007529781809921161035041889628711014492764374019314961526914511436675686246080179855513989588919666850452316271959129749562209697514531572218984363508397923143568531927898020040471604225594382030111677001957268880697935528436878749691951480184093198869224693050585679459305295855946006359600459650728239178838531461096652943746341883523362382245838811542656354770810650337766815772348581858256688969117704936424622258014410906592808555704029551889808107073059665315264590031048296018503130295348763571469162051695017060815755090178742545938529477945500456830944138298214381936166593417321452997788144843042555425817098904645643845882778050088559111753989596530218174279790409665596235317873862715498244771628855296248558996359165370180469317704004654791748197025671227551846788864684945460547864392553246092672081660154688690037197596283137779428567566381944765514962998367275827550899480850168516211193868593679336982398656881908895729290137974522884348552116518791347139566092451642104925400448488909833000270553046208024141711812643892592580296989371599428318413912529475742684669965076993747592324613881244095454375571267469019394799785407402920928359717915172609844032652393907745955654903017505911836997644554734750065334832212278925044942590190353047184178176654576152688839448445514124381493193258364417863339980309224730445705816899961381486018259554981946937533771109826711354877570020570401210976992057279318098170704744831884525953293678866859892897479923255693948948125647224224105822329952984352598470247420981466959836112528343069391770631980928589402992420997570708067051028870754122339805886441011621676152185668582733889713619800213221596067132485954530152018115120657229799701936702728801584043829822172396311250956801651463918020080316243001217074208063085108710613346960063713032241216575517079703423128542875337466206935988561145668510432160399584358057005277771751184075543321842942628714208266170148189494544628067355798534859857213581088223990452684158761450154281510456001896694522326921849858344916014595548610691825059686557465521265381680761192423868385758159604399537722161309954186833299716534723337117944473307629006765071071418798588835838645665099748565857810680986222655605421589514782302120711415007549741000455236538986669689673033386110658434960708591045680772941565120139222827042341114702892524647154986225215604185631807454380483802051596802461666464644835334411739321298450017184209158728431858349833400290885229616652665447725473110847624797089004547076164423364228498791622232642348924721508097892584637767780086902010621934565717820834373709244912803565318243233854993182899387125745244521978426110589130898828600631158564858040163928889668751885678847228013687097677640999897225695275202771145201555722829584085472484920821706462426211922994560062456957301791458443158938632367044155455843591664496614844250815357249438853815850537231436664656256639450718247718274453368888540495441712126897006622109279699924893224648974223435782458904082556558216929351107482680685278943540855730772090004268189534925746429714842077017274391815254388004672568673414481848107922144007660165411284886579556765448183586858491324710437418611930845080720344231863899017130431817939097350833172787205056290877563232060876089200001689161601611753806147143457273546089878327859815324536659948028660891299909785616692215300322356761090726700065639481808805602514779779235127105442912933084886770512122138550183164993097968812540811175080853823313047215142007468484631549234764959618129740630688034601542578361744660043449031798871815512371555807575369030380897405361586969746322691175024913887501622490462837943626825672822022552326106516503728691496584243789852671852405980682132996972699739156335081817774087654082089675665493463786083819508458254054382279993850741674322575341304059496004126338421134369274673249853055869620095820875062126383563324288416060920373081328103443639215444240550231096974915147577158674815097539944853605457143512662386434668909385332565337052568516142258290075204265097689849079696497575993237431369911640194243002126277098945201127718072355049216632430209458341047627058035226117073250964012065675150501618737505235881311583833078984231406493809653828692471843025379790841688427823666418689853855833714085624909509652961578557423245474801157099915765807788402371922843819247240733384308825861258441610566123891276651070400147159863470048340048914906314423059679246591678325467256406480869514638470351264533656366091312420439811716589699383653564305338872871178705899102289898307191093137110455752928827530751266041710023703503543841427589114829671939182649669830296554858672741056056304683065854006973573607786766568360357593937424869998623791950106728229995863509000331054076172823866192469360515721996750915342225839794142348083668727863135233425859198164658890880488019984150725183080226157516245888943104010956514352719053279810618556301969966772092080153572837277794419670235883041742450141501617809240225605342059771537647168151067730115619800960643526021086871636320402873797886016683411282353148754299698745956222862474010119708687360618949575374007711164285731614703070460780551973524988208267689336848299968974596210847620568360457989773553945139063308364149465837522605435985607649621602769700616763106418904138771459453452217396940028182815891535323842324288497473987923985032167219272080066401328013419966120491731582949512084868053083570507861273601017152653901339043151015910407741719132551388812580103809304145774808284266694360961160715404537072656735755577054570836018241130191712221469312654630794879206206019996154682770790553435752655712154792531414924332993837234291242892297858417397015720349176410222559137444641019318408395676558912568192156684308672855402658580437791475098799533283628400251953498654677343022627708596554656320575701327890203722115802224262368110362959999765108229276463716839130191370635923795993071284113108755557715443728797800277319038123104390447646702153816521783157997127817758273519870928290255083961126093516012087230060517414012714050700183177329235078302396080679214214351536716104613791800489899525590654896567072387405248430455241092423166223736422166861430349227503644686716429146141474825335952055287408695773818449315879244458399951007792452010999051600516976106898989017396768324416876368327763502540930892315786904523432627921764943645592613987211053339000452348908104955112749070056289332188785910093055066020543829331929321375334005775284738879781880653109359680984808614919267503458023470702018235919505731276192754032012657773445827496401784898102997718889508663253208898945364129732767114096031482002462257875108786255277015270457625533632312901341075752746510797546265146654833352376006388669573283171945374432945084497947544630152208720092853726360867965149143146536294061260619840801979179225846111709190180043436970010816782187982870687054796348420977330271276653042769613274218622677847688157087954197035182105480980863081307843513136700075367862694346202120293870280955613670149231753724802381836676963252471466519498283767539278683742058523201112493532672674041480901190833606050333665305823008261618736685014744262388511103119298857844501295091233821942889752192361707721548241411790328585591316386795395041284137070656050651153820131592356791266368710857840286839638927690300427527741887761620362782072783147509109376221033003518719494583783052852769066712757087164318797726216811971879047363072307043313779092297217803058732503745284551877412334971415692177616074067939280509992839133556140425728035695653112263933504610158860235832347071444899189148749477950469991873166655393336609138976720377366048451939489901716328839704438165359617028661434935538296629839397762158445572190525269840374847950192531609168237333048024175879883050690782093126850546579755163083848382372139486238887288646372281345711659378435196870745943121697780935254163886147559814892516785148644704404524783304681833861065086202694805748476160641936410342688265986144896485437535375172715457450843492685545399837205750587468348760671375194438609346846468395221722448294370980250670837174999179571413536353317937034062039521703713966321777006209443319890002152114397795678360103678900043308357402123643510600164075581379417403071987655821547421893835701989049341980619922066979311706126851989339879382827282199238531198403267458689063295352957804412699029504877384548985653003760590098234220838114520305046628223506070472897811839770257825594325406676462578762734410528878716745400890142192376171846422154981147900467156599466032579897560688481330546820079705787569988495954937075535443579288765770967280848742998521389698549499212104019354430790158803389431869925231971380786633063172749091283954075642520597557909623433175623487553542690592601727603376961691162129729758033679664855407215689717601233296885917024534634564320979519298815165734688544514821757033905562767377247231865885032237990585299123348623784144467471306314768903664134122272903076764877923609573406620538186997377995219215000216926187587170384702983922119318223078509644347473783794032026252620474356381924655907806487724718033163596330344710226288817324163134136673631663044723186354998618274746585009501384675693431664115819782784177933087069220881761468444440969481085199780077039003856369821618572145445447767319407919571883217487623969392496104424255721222731381765389161236204915895516920198112523583362496963913653340210316420936665004388255997383066313048939491627212146138878546643292441789405679919681773282974498520514982047053850169739889483522444903188361069567135456427631140579840197131338930473126850610225117095433752145025920080124502292272569459904729574331365286619728944344226026213977134066991635356934030502684775993711461740412047891003761210004675691669256437175974960577034398557952247965513336812003118607934271401496649046234341752431556025591168511788412298276352210374500242029741675364864434443064269684947431805745498026652521310103299882038681982904647310849918358938177157739454491933498888728044485356103794199585659922414180120315576433532610864090013490646454569329133069094186289349430662917035255859325071022603962710308763529677316611890049322212514451351891587413645253074749086983132690455847931513418350797385145846772186207309786104176665720928813913032925189936676015334102967027834132436027449715102807928819649040072043683978602397880629391115604721241978820450339684623217339545050347196189135619035328356252777599592855103133202698082057906674727745094765544877570071466771592722221374883839436205548709781750539191481424986618847806413316934177799881388983804635634113915686941805326718491747780225861472289896907517698014002481501132040500636850941666651287025291876643791995909464389083112568827505115303229081451538695570784254004642427464224301323039919186497763848316200000937232741518071174581187240977474449911853035232999658194084310585790583376017355580743440550031036777057704695353901773407496813091993795841803744093362940401184896743566030142305215966617209339686156898359814729595994570728201540336177977379133799141264563473895788682639363266276168227433945995230117895072443647083948766956243662164930056022581871680939904694490422228380723419090869001356892816603911499979238946159257127271928740119951037695545786425721580433719012818733914491945000292026014754111752043911155106527822189650938273476736627113661462825336404726163456123879881003665887927754278039172088913267133990577818467782820386734544977820511217879405754957348790845124348286605503974221680341411284303967945027867028595676282203283494863829680171955057781652971331360569201160203367367506795502828409072441406745027009169094835627108397808544990376220893885614187431162195923625388175752335264828618652165980114760957026550353413522614159403097505453746243334545469879599498912562995558513054899523041546157515709081682847208742845117953891417183347156404045610128883367193819102450065526474743437239183767612780937783794179686756117933445127302105404026127601885422360191596456549656829801795412388930192844473206047747637489749621516245585541369780609913222368412925837131711753547255910729291962101134225718995279814843580830049280700397656168595420131532096440691748760383125989824390075031287596344716157870806283991632261826485258228194225185555845054478149294596718082153840541500770566194720032785386750833473833471715396919458113422468646837389409110414164032956028196577851034906045688179934922463215496379015380351158814641185601000335216295365158771232785122845420678092366477071366190772005595036714378236410890969066619173378611465343274941908158409308838712173738356177038757335023494436053564938342580121259898477718090559533807233409399120888328521558477771563023324309430087900843392856242033631961762986100294073364801503972464620885315982935694613412230688501646154334045704309249663888031928558549153905573570741015014035033587227459208921599242981164962839590616476670057083937878512506078361333086169231500231972693965545913456969914481450600351744876811646620354512630191195318968697727661560221728848251278378816261906363685753490075477470828538550950824831810671754826832589655662629747641729016087771661810420087818858468331550910463729124588057082311758782557720265338365391867092868768900028122373148792251509410605945722090183322065549014569274651182502715599251197186213891520390141849758406579810359364460995320164760535447361953366721675205404669091597981156673616262991041308817027768435254260250179373193971303095016256139327994066992062706520984526949799661095861775397694599498849093086788418300082620321991385785198711391842136734536859903991461323944356713275939191151039828526537906419114709988002994942677534483588981073066767437549427869787698214226048880469911292674368120724152886873618352350272192665183685326419759093663167323111323233416790137899175873685339578165111828620100441006459957955341952780681867062766631102983642899037055813383518752844486859544786703086175191819524090473060029962421315633442713667725546574152741505190807234776240051188094400577650347352872910259808150615321961742901042951669119486381889909701454549414516412020527382591962248480468859021240364338878971478043286788366510834636930918387474083253161378617904767119955470868100728164089897099951087566191359575537132288374338476621379309791828382349557176950025156592564672747256482060639579044826267173498819802703757019284919705691498830715758075301550733544382279448835165864304262724234762666384748975372919004242148743364420830422888936878655319582112612207287453752264656107072980826407095694559023987619241121403875570383890453752089267971716841748369168871080069799850141306090567802067005498224692554179091178196800989404471541657761554534796735475553491773057012254342198100525056007854531781432024284690731282549395759957444698546001812747004165749974123122555374099671849583454073029402440885188459985722444466648868876152981085799677340750180946563885965775564022541520608154170972508749321316369192215712034431342568029049981047812096886764634619428561162181671606520577423430328872041784365551841207331688519165562174319799602719243873350781915042394044816973002134560202556550589927525756396422716140513545832042903942766736165166205153004596511268988075825213117641469138679991104928978802462677682010035151979005409338436025032803839188335692447136352991679840014507055943881737755308892115852180597827422028412979295073464630144277182551654638997545672282733108559038192942542492680087066224947909413633870537232114046378675965518680486084334994999396370803281707002736470872846884149386207570951706187680832512044734621843950459838243534499045151685915352880235005592173798206787061794634112418144564504007955608330991843689731970493978957971942269738049447206723339108858105528963138112150251498988693261616589362218389805043864906486866422556355926247609029308617931872889695422935001293857199748508121267342108583484947359167381982651667967853466482360006426716360802982519547346131055913797022536675980952482422812774703505501781799289303182914485188406600975553656693905665965477151662856976068887261899188204590996734295459447106903233671531354586377612012217888460371388103588314173989248685447797970835100101448537022107368795659838903992423225099063669498146546202175648351400549955386038087865287252299287952378262697889293743890976262681153872998811390408662021165281232320540471275078585954799655077017681773870495472783960704318756864934319247910284355748848348495246204670991934624090195270140803862495670513381321381600756242821643487119127894266668194617912910884124830577211569237808395274288766752654798526543825361217365324769720927349003170263692277421535433871094348512036508013755757521810602223262917699866464948812427734331551853961184543149635899915181943477816603214209067013816227260217143380921826042318188954013733008642318190577530086882526540335116962915849414199431962542958008922614302549074754794512518571312247721601559189179648400231501795393784092814426194690544180126739928003744535090619680403515806996031944407016188923464159418381726864313610954828212443255009241562588097320516426434457076647961071396293323039764985030294609354172608986490467525217798561552873099095075770749636364725435755457888145217105016525189770976388434380186445032080426531374867062126229352374388777796458886769412171319442146259878191754264447772057620265101406740125398067364626517177127074847558470693009792089497761181007838638256022304541269222714338737610157655316874615954470542630178770381198162300741980420465805566004848750794153023085511828881189851644355973008411651515628929040768888107923032878761159780302043920722647958473895013993867326670127214504550158726288898566488404019208011474465918495705784978110493899849263878588178223087723226044670801129418824791395077429910935917758063627489027838492492822099740819128014844083806870608240814764436530681469914396963007512814339722631527043846975116712090780035607606054758893580744384380642886295179652809668753869495819304055725613057623852914037677922758985018208307251414748598790300941471146921218579539682622215559130317785831511376605704942705114812927661850842890765043450138799243338455275010964185624481693278552805856670351492966867712757677666924920895573608090442365759352196627388656112607684962601286396691471283685814300558387531034174736589236809307934031948427376455279587279458536626072058966344045163604108599267454003548349977947578852397286966747912683579266636314435502843234289121247968760737713508877825383124619900983588200888187759442162116092485911678045591260634029208767283571287396145871999602662039198734600872268162025259343221696365718737085166519796428764073996043863450655415312130695148003182238855392063581014615194687753892486575875580603469695208183040690570035889726212675594165798271700408567748239784790120246013083750191542199000250280731178524739592019578861879879469936073449684646337086174914067563262588452390946094617231461885445242315117787710489483549257273463652179596802684555628635191863187627786012203932494827238370344320446241432306932335667558270304981946056746753902070966266966847852764740599173173265578812168267804314159242435386041998896936202550582763741557655315129361090353111418368711634444468732667293143516613693046192027910904522395001032133409626307264485105079913874440315902781146212543444129686268238145794209570597699961340789841924769295603479938716717293023949142205505407244290043410349965601947947923712806798213922888484054528306573514552928403101772883440007645667588808367704785262428164471841919403706856754507236630047993414830993586543678965172474395755939239059984205527894431234888886270751487361754266558498948176933892026243855183621657499152447866561756274549010269565715461722280424076802339484384796643325702657086293099186740753034920818848942706391550575975005553660204643648433405188401848690587429208005290099026526924503111058028928628226469685371135149840726741656520351058339841884178664426554527378109807080770370779419971294522492548461754447411356391282550956380609473869880317793635165847839460425356754496705191961147967874852197156459538721634512756127617488771407287433898899218594719000366020167237670859966263460679474177894408174752158514268685356564990125648322139966661069235871392390847602072869964411915564862831309544921722050129369897653479931983319921693113325293773291406039713744654657587370563883799213346131592867409499836825292713737771275851247844071875782502444020925783531234255525899300562232535808600802685441067292715082312068560213335323599426701444347693141082623430258054083789256871026748990836731757424122102647665149714111564781376627149182783289677245460848979292762763956808966412343408439467045141165683447796369621005076757347582037698403604242049527084152478522594494527843539693737191079603786560089747657260151162536462193118337943514429673257822330456249923419994457902406816482315733494969107417356345177236837733638068409896250273223073208859351909769748701127635112350540435413437908122087853491589025588465822605534256303223867703153446449767019593244945617234166875895731674587482122996164786304776683770892946658101928031828465108367642176267919225701756737933169542508024625697712312629319860461547001275795300643299271605906092280119543418341560793994820988755201397528397998169175582295965795800218952220747053249667494887276290278442097425200314368129267608517141021200580360262718504472730908596696769547466987809308192617688415056816123529509570788280888958641608412614364909099262490206414678651900095026679238446535143360110795594522651112074183626597070675434999037525014695303104624461216292136779105528423774204685997915040134545638680016782047749057320987658780456924546358358811499039737894591175731473736416731950310364342214033818791320935897188181815707542667948963603566572762227798978527105886761420381061934210805009220170981509123310389843922358187809340402008437280899115546169189931255839170948532211317934901293007530808116156133062903525781700317154065813044057336483692922529481343229131805663734250778119046896360691747403307536392758623106423765674096661759127959226676027024826634863872594009819360844889693073176978956079655377353124666573178642419104912918807638761574115316731005063758139237329720300682873800778620231699927768881176675561645573145799582399398470372996762859888461742132012468768818435871615570285283239074416474931889936153640326384688120479594003060796412237508889235853675214394340627277872183882539103146410905417638947673555421885813132941602972150029528928449996691207536299305156274217045476207123729372257114893874699144733895015404404949868827527275287009772860131027323563681451347874747649932455875128704397287271943467600646499895333463442053591028926034202377607095563666731048458616842205337977462679248515655362486813915996299205299398136964685461514649284198330687681003359944954209007875457722327381768594489960957099043054067919846918448878534796991476210309326403994315414973663489442586018298056660703296843518415914153770836876469841616800406014228351191028421471717092958103090679932213002580741039976248659739064046603271236863992328673028895511003961075635023481502085855098745016762143488666744231290327157998212088984882482494444747001473786010826101383655550322247285177703755659904551610993861123985837041362545220530504282026734705042941034500641171051149516368957922537077010162126224179398321762146618001460435832950939343608044017835928816932733810771054414090576258049361789750462942552397726025743548715261503254871095499979444974557675521142140144507679149426969275708573477974583863012826214741133247673088918235498971721300398299372483299341527650584123177319609017357225615736724892932772237841619802411710979564012993397608676853600826622733748095177322282802807185182674772601510159991737912530179483316202483819454922094621732202202204764322243177193684244996543857500103362464868153463383556747953878497345310728119316347121129530174218940850421779925472639755130026442968866693177452464987447291006132808201973705825396016993924419211428781368934854380066864224630385351849995115694169582029147951677062203914695496716910445476675717098643292502473468731136579097345681857424943123713890421669450271114675916711824856694757794732586046022745871076447078604049696105745898085561161555122993418009869148453214705741010792590771918237594171201804700205366043990619800260022142579780992803408916949831737331117747070225851880553898648467801167513962927505696657615896604697748135291953194459927680982397233595089749507932385770508272455656509968751268967090837573610273146205601337545379644686354300758804884662311678218002562103212797996390277149044367873682077400145526576260368927606734025828226188336674299154913725615782288122845853486006570294846788998360976134688719660642257116916116320451877494213507660114277305356371511693706422719844662355403372873644229782574960922867033326598725598978979773473069040651232554875009387392255920724995116662587862780426136912036494106912015409973696352711488269136850484851691141309708704080582209323492481957108505784643788376552655243541346034500492658950462942557771784154515212718362596179882034845647842896589652062014084214083497280154947433047778872209971110002337146240024887491795204124257288847049366532172741558692788496222416004401078753681909880830813196689988492841118629741731799475796074072158021789239599856104470903267218173174826233806313455313815307558999810830541329687830833255578450031409898561275395842780458341996433155224899994001624283156370994595435924850797881720852672316339102485515707442953043775265762564800567387740954684043216743584412529776508217665022663353162176213687940862361584961492699794205763884648967371569823653789894595575101728345888335619060285856773772476693238814546253180943349574654548800527837689665614785680780344149786621569021312203139288616213511040912434300102392897044593403050021421334521229048507901501177900107307979198252424430208909385578205033232661166933092377097382571480720412980896323205092616205574628981576872027958506232966606374584015770402774813447450321870379810981393857983315279301320516975901979189361893487307875088155330170184556651030737555277554822023518433305667741093810878037811833422639075849026283080910339758078205085184347064060733370092466143976610602945788766464498893574329021383851428721547895040979517206284017083490086068225498079405185394139734991731863699745840795238247321041953607654513015346579098938571951969128302031030627170526519758931942196228991903582124822728346915089308765419022347892273274784449288451416204465819688347912553217903845768763461063443259297443301909261890478339820748461547190361872622666841066830285934184750688920819904464227458112145524532282141087029483856277569389562335024736294047980952453486226729206055885263750197435024125472691758410148028268551629525828201976342001107274185721057432045903698824197563251119280437753052731140797348216927573205505549019810154175513029536607195775432155984246509237144003776412069604979119663290360197392272967724704849235618741262483578631782064637638988219961214375865087050407979440511221807140095229764571927711873063933680691656158322959710513792193252393537036320490745303116206002902643924598207727855810568840317876827617333386235002275661363846738332325617736840055310265770662610890543553456435126526072831763604103198311127098622721050037902361913466026384906235036805714247280424968958757769956202332988688274580129717979277645756492867481182673696964169520248832116594223061877862462267007361257604269400259997222583375697455038240723028963641711153637333723784235756312117305981919938738252197025090970236610708317852809244713455788505922673041563191008789459706716979405070436428666111445671648643524365229031211101509194125549180730327518017582580010450133517290614413902734006021492732442164955019644559936394342219141709726275677233324829120912788545312530142700511327298227391796652796872882062057098862109317501331529094867175906527176265495315469185366795489840891338648294811386242333045742793582626971366809157566667887799989550607228446834450164036509281814175984126717799129222648760725063931806277973047472733953201508903950799222384603917572658182933069459894784270191570809984250379090424964881059843312563538666525058420375366846637508549366364025735056579812115995777139512242170959239665835612659102629144660185787450337765804804940293046689120891802077794732332009843493943639409445384263621038508920635120328370742391963119074848491503960998730041743235264631923903784795127853274290041516883721606107652016178034671215921987533564696090852336555156256832160373336346915065298211724877491699997892445053564807563714445838997815275239732057828515236881068331761438502941010776012696855863211897106619214298521542282771398457413499823478024213376264935933763388519731584309387523423677539009162143850639911490639763577193824091561593438564774645115231136495861153654390692419746956661512114214107587068416266741189374090852483740334500974218692636094438612102864035234479897816167203237489707010487682294240458772470216770431772008792069762662346356575165208906065835014063936040340209604032085810501485269376796216035441550924296107013999259094074861769455053031411382690185843641568268200449970425743795337533684301527905770323830359798070239307422329008819531880415042913128149045143048581076042188162970236125278882215966826442753796625182595021400269788880581401643272656220603027918199800534134491147786541597605203202599978364666211826044070009169696607160502874643638579851231798593912367367318328572507286334979369998055806023427224987932175548709614741361086305875145396942696140350841265885814831026554083272202030562529896928446703108814604325639288836547356546037040770398785332496756699254062009068854777466852323001700697738410208900834979228609738310430179588477065935504242249279102581757560106983818330301578743322534057723634795840690461783384015389174128481786082968067452002106793364482052826723152164661652274010838148165005013348572095617786337455668173836500715630829343921429309937398004170034263486467962381731571703813880576636763805548382703201820474940353751456746103124431228923533867554506869615667760461178721986180350589576424847067063825832813155226253163094441589038691242282339131251094004707060583323976132820936772588085305442954353126761592995898745143923768705899628022201679898811950882198077217459201128208570217684533689838494446028842436970178475478746279174086786349056865128412342870040762119884276877494755447908104713560343807368597695286248364912893050515221578570543836158087155039409842709596961373035290448688459759243075591689417461546792344956168999890329469183408474701711415715651288407486836943338252277018387885891101093990986285270301257835311701489939236006649415504605723575812333019464433262806977915602386880363401420380389741794537082272946589595442388345956726904409686078469300951491121439313696544811131296631351194357590599775214318582314436540904020349918236374168716964093125617843819230147653666657276065050186936059482032696529216637190373801403240879301035310049792032509129169449850556833459480187537417124990487096045279520248914111068826717760077277638666041325367665555607151634744511825520796656737782003087202359757696520968631277170767854335908335316996304437449133009909134644694035588502303641143733286642608417985453277164869217275902756185596285282857217419408598058098806707816453007275277695687788993781100730533066512184174406875731695263017074895629587720985184106877380789698843535911435977884601533277172519501533975114499911259324324452266050717328077376777005959955929817327651321803065801293838127030041945234586096049403620810663158639770562406368821741262762577049665675695207456604887205906412964346179791494286055040676402296556928367467511808373556023303613684683858731854480268643437985560038089800986298704925991146109302619377686265014805099383674238133205535329515852185283163349156264780606718180587404233862353810551931174959294778204150636255380010376077320598609942211687577626902279845294748125889194827812716186458664383419346681319345542516241618710378184635900814015527672872337260312859052815201796130744068380489472021550469321794030414968805139269467436950786078532591722495497783211690851826864039715151240655503503349857820748844634642203703381259909489811125878588072571190502322502557668352060014854879834854335665055882953966561620975845034356470321050301221121017368720321302638354741930386035673092253376197724166179428253161883196763784118483677183517395477488982669503966364335978303398753142042581292878322631275457656817949356451370484571070642278820159360668628255518953563467793729649668230723173790343142610608728551286476733901788178744625615489449694463888927831369933110680670646154723232192241356892200954870323956686214782609152268660821904336306659041953612335104987218766855469754139433026307574919719308206553062723891582668416571962439891100266354852682473582136915340300332367674262639128555932976859858416822381808587020773229060996211131925592518961905805034983386373449610276561236036723321341813745896693787570654506238261844664991146891081591721474460628473002881857968643882899595914746451616637250189863582584238270718673733156240042147835414556421803303241024090822723357420220382146702127956239058511255861392986064175255540798846580027140616282935628875041768935442565854277302027140483712991725526162562672573697071872472769493816262856957837511871803051963941884665278994255794931207331171848623039424140641460253275717952492551193632776030946844709803969096062833113459565886512080601981081069304367960990478293160350760773836262741836875694960081988598291961737382597486925765203486158626694958145710814473663672097787206299789329081515487566998465704135525374872859275748606261082929549521854646065095242449826245341345034451509545414922045522086169821777238453083422602958476310050048882509057638112422848713259081175666570671689208772817651351257007492243433885404924301029533893723062857586005396467794905903797189426607564715360408693174277804777083550311435472836810090638064609382231394589937494581353962054121257758725466508521334947631298533115051380538001066976779696644260429291673854960572135423347426108511711628152811768297631493131395785775745713317511338566260189000084527743451925254637516048116511353097544831870819933198521219094933633112067277623116704264269962730584708027158111687110893469462882468286174093846695402655328399002069354371780176875111099782729178811580530413160500851965605989345063014957917595755009063590857165281191963565072931250201139604009598663400693489485454232031410572650141331013505378444442269921554854691171170231395329699329810316620732224749839384114860444986093648460611911458763908821027897383345197560760071266879218834446096989801162349652967020369365996022195009902157911450007675492072070840510103998339970343048034935415398189351196670646836599951855138027706006749635216690637083650633533371499926927792469913380698784475604373297319028215086669258098419487958084756917823253632027554848552754925668530411758286436506017236030746117286207467598967501548711870905498392619953792978748703025551843338254056460264268069810507419878409157517417771410826915533638407776251400046584881310377803255306223106019600969554580727464796547540450411367729067458011180297021296314682912381301593186283347024433371245504986867737322111653054614399510938322255435865805217746532791365276863475413727617100562974725201983696186410122534258989911278906514400366315414176300423244225244342337425900511697988482915463731376869046175228295402023994481649716543611355510020419822403838061663967686757667378713443138788751607163165077844067524956799100591646456134741817536701227839367681224912034384158917922596111208055331586665069031716814296282137220804866355004397266424076971613316795098777622471497155066115221555929738635097597913174458064401988921280785098487003553719883180345807279624939573986703552055559036883119376920957494821728904313971881348994223905188276915968209651144254107904536949267675138956623371700428585512494135315155957210327501016339570933497492063496653633735292065497565252226610140168132720788771309284102134990306396273502669834804894225113596124758624705643519223690979393194205864415645736861175651347933389328034520108355431714962199340136221093545059990396481878370006801328098041484498697089218956618633167625470791506253940893343253975718595892814014878822279760979884911853655846755115617621731471709967631914221301251208025101561541122824151248885264022068975486940519594915333980991977811893141580662970299360851613526807207861441865043268305409966186703313738086353636326394178285351571533511759970217713300830486823832128046956513137442142172828715425915384382772414112689259776636294421700587763273755741374051623725469326482123795821500889413035681722057955898752131570431823740339216733549456409377886904843789677087118227813708285982443394260230305048583487514621533406904027805107127561055764016644041598014954105291959847981520244095531327815491073610759467801510782350050240489345707815967229555866980532112931825289191784061784627162468315046567293139601482669543411382441868158067858931224706843944276145941334954132352703799917519855921036246879775679369441965773631101347008656454191620785016243041483967022269864938835187595929889516313052479972143462147899119110015060302429539957026537628768564264822156484093800456878446516400413891741068641234404119696305445241387396858150411585441158600540610919783542418565386609058034414418930930985510473693586801900361653338178833546711877712729240066787386746962808430401450620126808707570545076602920808906784496340209256337483019442213366317215429332084674339143631486701181915846003589834847584492290689450534951313805450595093809345645982356953631671286613635601390617709195010879110612293826720714560532341730404911823876750670970322400233580797845372034574475585999889446922736467192428300197379260772002401693348745243568801068535893154499101131530407856067381360719355216589126017394887755463383488758418104669623699760028829744240296000485612248908846159512249244212243068867502129206994561261207334784822436214587782669504190517780799878890443892657512706571834056606438623126039357196733672622774680094019968649019940424512465886357849832211987439031288164182417689719495956904576633285807279496514352769131121276420205054489852797592821741969770209592783166608025554129647181743301027133999160328417907011856749476922633513764886080553055761017628667895939382542253786707994548110897990973960511975648107146265824898915182113960429086135818209231706169016437476030486772567295276708533662224701691513657571481701590159171005001471152749998490582816998673982818903584407912468692735511553710503585444356959080328468613524193260384837371308557609662513642827571993811444665742735626691468234529941889724826653952069900473412865208169383199710711758365286046753541383187599903483441208761389624154841069352320971467626899906630056578082294014459089672333752935293184439862960442194294519785395038094116140588658137487630193652518079772918866871172241503213571407440813377044356065102232693393811455816878543707130081192114606465697643163952203825857824523608448508842811160805155272650403670439768447144606815044490603491656349359821860286700395175852749683725126854721185507680294085305546610238602995956505635193893265008555882153090083530387632163859502321270019799766536515008376216189278562008353376322213925151200513920595275661688900039570420484322730684447162389139489895035173494101564232664438599193741773692121833492209972322438740174931300155816321449001868212739876252335397679235547236068060426393149884787373532295211508641325719307211983334130558646385675835522361653144480244632460598359945356598319182696443927107459127249684977971474312117195405425033565137550627948188879927301880316463985792038121008242375971315473668821489616969452882502451187219157465413396730956083630853315251242784135566507035109379177726508446926904156043845083370132204702847231994288235984725693835717478908371596058853170245478787461789826246629660452281870603596876629256901953499070921188354678936509908159401177418180238302684550842410152676002212405850856930494409893426341071179534825234227683312510385950442668444497231858891478993959453760760354768158569367006818106965196673145241213618833157818334444821130221846611497230761574601391390473540546641009873874530085215361259909593822630525122368293398209931956666673481349365263662806043702691048455451811371285340319003506763217542852768729585546204815206920076746722952312893019569412360266092605236921837513150449721440851161183951253360799373170043713755915873628034599878735754555847463500910050443440589793914214236229881004582176887479406220739583358918246842132099503394836428425478495512618025349636027658070534874230658604230267868149767526485017347760744585168818801460724665676034799075428412975100105468886216836002902785856269591459652589834514527024270186506314545824031379251072749696850124841267276336180044646698615502760796265559091681515229914502820042165157065404665628847371331936532531261419544139160383053925998727268613441290502195862531029787024196375004897038795627376237259310033508456882296259283152761876557195744369313723715161423933913059440041970800510403249112481458739417422105641937434495437940395211098761002627127825913025187938612457459829990225950510582402665778628041500164165971383399367062135852682756501630423755800881686036829934002437089012598545998464091175590447516741416117041397591146668707527859497416385600911640185551808760223027958009704945407115780691025122738465938059256909208377818368195454884580137736506946536391613598538566572507482972052620656390872289976286089412547035557327355556531729926906518672269405443132493180111038159316172469847921679590399711492590867569912611231126552722923712088830065414918452292339088046443114598488518445609076920550472659281287045389235166076062089930246913579989487530270173036927985819800467052357811673281471512428555939399759797355901526186691327754768379081890544705858883561523391944010873875094474751879969562266097521882652633381788063520638794168624270895999067443995235798378497859995788634628382398711450388554517942294853119973213257064871290981896843519604677337342672365071054284914721904711265915834283658302943475682865524404446306571795477632011173392386071751025533361879475376406739606116351514712306724332784750451505069914148792757093736516866680454056676004016022521918114013637066538005761515301255172784768423946878368283008370960802722447382921788475507269487409463688519847124239782866133477066787142656564896185291852698852167413597608835068652823283608106279324151343930164894983789100400636131002135698457818818479600742535237558482348817309366523188250153631761404025883589703285473226420940153491585436738166955000787308874516492339045346980124643405626357286256147663469934008167358944232573632736819099061771185350471258840724130739029836271586336696951181586825889038003167524321711999105032853976793586435040349606181235249853275125798392873549523532317404209128370790583874735790728891786355565813110023626804876757383266302089859999822050587093742189770649143403259009877750791098333535609350001914102776732229234452641626429695525934997813932611656469697300346351392586266501477912783532451813682931258164486775153230353911699757623237513210359794302471376882379274975127247660703939924185206256580110296078456821244546594549790953902888209329353223011388199172209054627594774292286764208461282794358724543356540701167815645062772692978252187322471211708758929437266862796756902045883820089968452713598669897330319335023638863836536101243325209195122166761093623394755241194507749277580068314449720410483089353687154829994691430012920323415240281854149787367979483073128854251178059894953948797631998573285949615594785176285376664463166737235558125453189850441676550773731199258807764330816010240725545405786125097220229217537904820019121492983880461539602715820087255793165036059775228189391835600684772298389100665973016466386323099193643951669416369489510543249034897101140869126422117157638806598492864015355145632027965838705090110912576846596742648282089088822680153768497867806814580413837810989371045763977410014208157744581285522137795132665732825036079142765589402876847613563964851968792714120548180814801372698022239993876469973077535351628300336704712085846170132516636256525967752796885301835583554891293540421973326767855954181661149537255777059732065630209896246192482057952527065937176983240872029805258188530589254045599361625446999631779410523397626606122851509012333550498237119782509334361235028939778551991922346049342775393166383507918394677826515671665030530080142396974027724955162379176387879556445610272903779511306060258032414278083258920584007773089919795186966036748571991445856488975556617539911641430344848847357270597352575284283590221922867995060142598379819311553972756293533903087963923118019218850445688356597952835578226920093720700692777432420082482109687554605098478847570450056802394393169247501121649133627928529801636072577175077865901541016805048649031602540944304010587944296999046030912346242324004454901029927185122762478082184147238088707782890107177278421737904464370456160556170265398869571969801848041911307828872540660625257803304028780528338653766554142814726577195744177355575451778814151945067077428173499236525361972534481926581657373904620257901093911596052993989527174476615365630724208614004604464935223440183348353178696511026974929906593234523601925311278555200066110718357309942587944969463803727365340912362772027191713335062151830257572256134906473626565668957516377766124269796966494500156918599339433562480907285200259713638376049353778354628994918247782778635779724365904455185918483034688130152315404876225714997206724261682203363681138082697908672090454453532017235213759282038683528771371096845505802021990987375552328051576487495499150896548232730509093578168541233867101309507055118934537009153237756311986965608291159304267192938762749879528866509075752294170979993235522160957651222419096571565946559097238952161042871028265844420031673660707069043010484781557239528806649553717049990462091566926901557641645039432054745315464370294954113197807291374408069288237477032669268208491781330695285217637939772968861955613151394832547360880716512620468214178443146839844095560530540475718611767434583994520226433509555987342342898068799471930856997220862048944287845702498275574729321707166850747239327109499080929454205133696131441551939546336272224780766956347164322383312122995206855450305392750350150610137403998539305621684387316438183696799985735579658427219984316548905948230870416044841674670515110369960409842081194641475047364853977860145558433254364196468645479014986225163301061159853726739819072552287038677926375816151487026270957471585707593541459596617438844614352329987253814205546051633758509254538170768414814267859539493311161370355921822538665448813202585169243445589642276768121423722893434648196228054250883223303179838395288062696100910886826809932853992074238826750866973745849546257922896208648577206388041339448915953488437169514392593361081605770760171790964820289603814318215151536347183051637339368240710245789842862971278106428993713367045996881079289998695196533510686501265615221501903019492510206974486952329892300707210873272461415921011741514425564734876548228345018267284238382335517590394860993342188033683073011082128043852005406766842037574333277694401046531977775357665269814113487853872264498053664577979304722475343010661303022529728845430910420665717768185790000413503994341797626658668754367549335926819977442571236963279690791337746802421636833200036613258503566095890769620459616083997674799123732049378334074943491818572634197922202472707317732131422752490108130445841345408361242340640838002214553363203752143435878088654951627245976306232671566215439926279172721971085158915836109839076209604741235126712678198255788316958438657461446618538988964844430947169548455061148828810042207870573050814440882016299064036849918491471830994859195505678028783370270446615225230392782869284742978345707419575609940397356493324029682190467014664092087192103462550943139925242727352219033064083136378599526813783115313202860223423577790145916213035324104407198153558545906722471337023303605573092082544602234439301525713421788744442731179052021575475840733335234556620172054420308961831863022955341377116815053842743536598257202098177272199682552142620097444154906560806106534891525443326138047090337701332632571796723073787805569420639436791334844739724134665663597461016603544796006739991274768447469467396047732501765524658487541102189358024893504320896713722249255008168372744235413790560292336214036491151088916807741210809784523065147173865679000349900694039682239926585294423461666477635140241379070306197020969913877223079656362808490959188125999759987642822463593296927979962413864827526008089575691336752182639228717728884456577706951319542500779527429055850164228989845504993079655010462297735818787460431654157854122600004261575453732977769920220385588825625331061887026009880877900329581638371070790100125034225975393081997607080313236848450052140355459965171285252402990708320256077863532049853344474444986693279408772734696286124755128166710371700096670113265688433417893426071142186981306312348507039690469272061228419361824543411564014948117280695053980632766364388358339557701168555108164461560084313762265940755277161781781740371527756205593716334219753298953135329486688925952707558107257436948897847067199676424429530579740025055282564075436171232423812176707173209738863283190346002190181400631786736507989674912137678176415240514400847083690065631012222039490477566888942681431117573945172823347600891069420165976314367826675571311608398474287716088044365033899937260293460123447023983874124488719991363125529195509839136233566983134301280978563460778110696929140000775762395885228164764828785519663738216418287612757776759742384230281434636539866572650326217978772314952301254564954786982160589130040448292185947507746814089733991691953266911310889335749790772483115927860615285560916350586547988513467587446585608836021829692573135174056944491551102304136628944688537669804530631550812404954384106963240196383704352060814669800289023714277860752422837371868755919115906621143400373379907333681241678097325879155812385781977120962815395743402186344002613463624162225288400527748234634316504048812007415937457926756888022038599625506184864083094647521366646869812640025061266802830030493245305164401131111961721213144454505529902585389920459251321782719202863256118094331840577940129104918793384731848885424744965085500662383238097475000623711660521338126886030734065299179271735001443751207186216096378653874178440365369647041417777860964726165573705567119016659181062932149554527989825080112930358895832314782837121606164055939198762719922496509957632802455794115818823149625573772177694889406169900528459673512258222581101039594689719384741183572215500632004556067462215716548893959288421785276446008121227588683369239167041184560989796002299775387009390557789149790125172925820556629207157399400075332518034282827559321406742440667723308109205047578194780324412077153430938535160112788107595366429555908051090366799398732803120639205932004600802110583238408324365005297337346273239499145915665640785811484641172232214267979700999508697448471796621393173912696857476774514442903570352743177280879322037975364038714662585643075420385738635481873793109654991901360178805720752622344948882478987298991061692678570815274600588418542336536300293942443142831799973077670126707799390181246541117569486291251121210514395118991187747209627389476797803308855312511028656165819587817384260950967005011153221023477048026106629863705243323052889817674458216592638742630395877109632086121516967270084692549485994001742562212127069050808808408940921259397766212268382839232682612251322093913302475158097576160294269346769061221779694138741904595537959929036453481510897739548800703976613366680694864287869970464086584692020032037400296398531005029353772542332891334300631936365524918354197164108424168268304445242460830346754198149243223888049312683471651204556352585054471097498227088079517911436063575537081625869203245835397006924226512510928461747241796872079824695632966792512819057813010416126502895554301609135478587244877378459272071714244909691694465673688398952632178371773711130142632394783651356616797690092506546642583424601256100799247389810156842764432055290209880946245229904115490902957508385319680248069577245773850218925051973800860023506016743564242868951482917363650253179008512309976154547971912820757762482264907191404451818827471975848125232566921955348415473293932097679595934305923317493436866194941904963640739042643840418249907064563348521358678702310456472099441600380742874596584117702980326441595173305328336919407258227973458073109837765450517804894386603452366673199866645501717468662588992995337744178142900900356723659956231729466606720273127597624019513877676678732163921665537520306335344832760348899282509003087423147764462315755325383237026293926306043015308059381419526966251684407752729521577742537538317693662148349783111473623838788480711114184352585199581229880744597619086007253246572823591029509274624392041125296286599991162006149762543290275864002174152873553047701125140836361053732716681549865986246435070514192500523866715524279853215022840703833350809064485261991927360660557605785016065541788445802673520772837749291095269967081446659244448404929480323826386053384638111677720523625272931640658688092706523076396458006770728703569829456610845527445493040230599933633140613344042097857967355333688404617147977440447424783599451480753785522692667776166584840607307194373196540506787234652505340376400489031770529273511143794802742318837191942515076543987717816596197211389366608545095238236684560190975686509042809990472129264184001003101801342122094131840615724425413233710632282904932487897718002097186870433496399553000667248308523493271727374900059720429596252134910523998578265251299406806717087359014559707022820553361401048166505942244408940669603040575507712839559398365789530105301497161228145508439752493274054050990834573087301976005900432695961159085118583712967532085324746043731244868698861274379404336636712587763238772140895960168538269248489557625320825000686001449419553764371838777407252856953433496581090883536857785910035189718711624243892127174971137124902572312323919103160552489189911235161303605695250608113171735888694005215675337327657454792359780337191411700296068710379992886617459845704171795376995038915544169125508847850585275349097661511791248372529909351827166224320184964947760795969567601896082249415896540826162486026388317585965885280657627503347965642757185807038509611185740111544797733279886473177351466449512508025791204664804953476590613181488242288484935327209537336455785747055892264207450319721679032272361904253229766571466783459366121297494198570512322208944348428126540439560270336259350953233293887022590895843282480273451196164671352514930136521358640567504362033515537547609580592335817932727428277319674666351121451052066523087705999275259668566646463053965756165264978867365571099986841391956748205677806326321077162249035917917123045848159250808734431474681352724359337174021514882527828281118615956384183290843954113839057171775778534729472936255271735700125410831690846944750262927459950884040909276636772378105687249985586511522916191325303415226657852050652427784818510401593952725079595120595334448728257051929542536622489553204860581761668870171829076725427586696757626949789499326000174295600047590676857156475036999598630783786662589755781846822280557748703021735413055850319834458466995009472386408171624483295100760968673141135888734558301445579707241419280567562315280056012035532495274056244375864177444945453722513972138862569835879276687763328711732790291848109520548313749454976694665010916228885616506974724476566016309803302974955620273959657970200420310904502928525638154985522425706949105079916633987311665358075994901645495887612734099513726610542078645746104593514826616247230422207321478017522246385209360479218829805291873096957432961953675117888285237798937309406280072478020661736748022236911036754097306063739969439118678287618754892698636518516272517685258785811526400947653432065211688354994276374693987815837229618235630260148287611528225243428676200550579625667202035868092426354698186310489678352365323502415503373291788415503213495517042263181337769425084033341581914899904363636729926376723406098368499197250350829697721479663230147061773974429161406672889867177344547816062933975614671439525987163066858030918768936940162509089914774515228668806398296156329526502885848408383999347011901639007628889142813130201425882636151389663312955128809666376792093648753660670158216595474556670059415451438081798911016643248295566721615501191360317813694924997367778983419225896525203379878445208850353756756347329499926622686016540299875351762172412663849866872057027749985256274630005331216871932658607203160108613307333698684507613444307361879045862276700585185790795477264155656389701051247136758964354073788602994096506385026207812932153473214087210447940673708244293797349547634990241981443122123149679074322896415698145996522006003595734165712666706412257842209214193492479370304846411301282087066677705213638710427937030147083830809294544860842973169080311625918954963240570864416748076550660835867065224252216006028985040466369262016992625810464716572915887628167577605012212094054688420388593629462248465770477280304209885477371677496401226506242022540606894351673484256926369024971802131430218444629601882110644276024451949929980525492455888650555326792204007546980236814414184660145385542349528785015723337389919073843765022037020670550756220099691195719464469798375245629339606955679557847178605418617156809628475967518408760783008540946929317465372032805789928423487700095053561487027757923965900569357332027015035750128217876003977486450706939342512677766855484323223429126516544426997191310040443258376435628916389208673502721659423722276349870396192391688678195053559290388209739519220682771206557917169611244731668144689439488137814946676678282433650953311665957908438587036993098169284770674311909665310493280384691082797627732601713099442706858834263616403442992976878668704071882316935929928319393931339675715537921333392972186231509044622124253535748712699375412541587307231424450427507844848250283761071046999998721222975350448748314090966412754244164812052811753832888130188051270717367111643613608440999742609115408703575413529401108822527624499549576894602834190450256220736401724559221573944951020401618974950892407394599951881336765481713862919546623227712510664172136739924362724279451153328520673855854685448109415610134108005860658423797686736739089920402177657160941491436460266460338201164056296750857544546646868347401276044176271345547936994363482443068519375230702077978768065649976532500533182907183794415962501794179757735057146053295619837645294040095009249855395600057409828617240931259972225358116914311692747025062076100833196638635613613802731333255625739730497226894850253423477393916105718616506104372357976536054159438775155605844920766077008792910776560335969722333758252509468004281096635232698679896037364741051397569210219925270960992938988779431662407451175882525292535200275760271611543812773792924797729819494104554534368427781614045303306983967086174658454070322704704385945753649702030521259501978441792105351818215217032579381533408890492411041865847213771399993687762327620826242377467854121100502687116072585875810063896825746467488619639642934397915046968024597796620931022460272579742605756572202372141264698755337803892727930163440317430861007819474691962090340225720593299105826544497255481939436471345815121899159278823161009219194850049104299122633411512948983611533044414676204492131964759360169063560814455085832350700271111336282608139007181146804144478158864686641218789895120462654662997289567447791439876459144341367433152185446259035180668390054333752930926324656323624959406098383648325738058300797045309435945978372306393202658542396282875802165298847640321145169963314099479054465508722338853759073248919940989325651085134601604989122640185956593214296965098777911956053109042653821032428508162673359058050293372500560906920035045415794106981990063733397460547887374016649238111422897159677915930733226057717600972460041377533025873569568361705596628824746676169225613636951743567001943797202012939438524911283450230165254133483875047191592466127232666368271566287693953969525921451497700555926106863128050538614154263220805135489848804203898601895049849760633368822202919437613176869929688973713601604663603806342711062042541059853205443583459517881778513750633035895690851999645515723137277024430212291003516708426913706451494594864364661051696900505097621761353209044904611675712143732758221911097820949933750792275903357311454253902544069774827911742231724163894068128653612068753373547362190381534590173330551719033443367497225895344855597659667021475557324913643131695068840898632982143936112562354974210408950164187319187636039208344274440997274567730734713615350002930253221223495685987464121325635940943967220195524866796436273445154908860897506761925828417175812258943196467756600952226397961244318193385891944128830671016065870913199221188409872281808603610818666145798564754143125795895295808857220037741715796046044359201219114924741513943507749514825155299676791925350330905687728752183740223294836685385862054989035214283109184417232292376740728531819623391190328374872936223014991614653665286241490836887046788547184083087241780958338024217098850608920232363744909080620340863998719856381922935338814351782042502789324432237218681111702582822494126236928590768680233000048438987540388928871103742299172425848466925344893267924193816041205925221841390889104105019688930678425396094565980251363984184386779159162458744387013663941312251111118015706905564723367385886510915777819618334396779659573930410129432069482345668945670548350241723868574165479397296779198560697236807376881119254646998097692838487367455306596063589724641401000656320300039592224203328877411583223813292417150600321301326662793986899771038137139540899627945054056604349323572444910985038137509245108087538344820271054639257076546361607978460429983674349375618021805715266110692248644192626300135550812156901830838101368231605051477277707657558312124114998473454714620495498918785538015475382673294618382238487162079737381040756093123128190837528802331926951682047661369406475608489741742324052076672896609895013447783947123498107976977560658059169258960270360598080285066043455270728227732116790785671408711058447674050460891071039642459070762647976515178171941966070933805204893226355546421448795725786995577838191478800020182990094011649434950094180022137037076879533961120220690103949449832354900817092547221546568946846821206158918397051156517346168055723223085718832968870469584817307756558556038562036425081242400719557155239334416696159129276435888958140995013974155791184269288159343322802635462631958436897772132127900718551581694631096383872183302146462684290521569132809842940516752565933969067588257606928700453479618797444424795924482973497844140572147416852635954760390210124675324022341005597681188909243615943632896907114581829669941388855782233781835714744402504716185914566656104298328791253336382551347843388971436903005579865740744085734756820651289254584497169270409688677127688736942329253727433763270113993712422106590660962090307140197905512610429032381394608632103757735816384248340463827148213922545074078626191972768016596771684337618423182906675819106748311283451139837193241214943427081600745510989065928070390401503708551948028499002749017462467715813711996655545760788379716942697266988083323013406619762854080236019599488556839486601383861583721561968785371938446032745421737166269359193422129331346621265847628191560996523309343825230479715297355352221996497805702649727580611740669857207361221651963423827363392120506668626763517034675290241617353188169196129677719907767402895701193075749222261480116581104254843193039453840467556031557969314839955207209921876391896246259126064663449918465391879952445474472156857384256461443335067794318439480406975599819867339808093299552226557677897654870622615101986389034852033937557983517396785139504343020365082030110512733354847529790272976227193347336364177439191106428779101339572921803974981551561078201335096209741707699975558249443022857815970499428171924278719913623915895151755843851131027053856159967353303808660147846384472130099282552232596435703246905663226595397795306564594605582169239550481389143501630097619761292666821750562343925944363890045467319622507953097821191106316083849703936874875389740150078868128156754161716250181507038197883873746849702912118581605514741110940351951029701150860678918380773029889120602050398213123069690546854375030515749490383790216122097657326071016815577331953325359784883259861602971748071294699142018065240261468350623023174272395099739137529220240108751890577243696511520944573868193952476201841569560217758921908345548617712366819755116300212216393099519391153985681270888613206423786526862645936877542039303590674997689470772043249223442797476642001984391321880026462464348388958366708022805192381698511454485519799584118446107253297586035029006023852773521194836005278917117009385204200850092801935732410182352924340202269116683887283889076069937184062282958450404709841961358350779243522608279681692638544276415770254272260801241807582178642537055704459660928188803706400725453427817561571868603174738489907377678228508875545320080851790393881843690602078459316892021134596336733906589720028507976618077929413187356017394656292434671904422365624612802591608824256710446651143256060743959564303898882462845515036000126723381732409994314574005759570518612348815497185784423370606723058292755259921267885309393307210105778709203483616905057087798017288803979038039575393833888720652538604644437860111896337573009589556644296466688733176210583861696225411522998318046793871327730619601553837115867626643726639997242474472516978933566874405431162459918717912970046816166115829268097740642996344803270362273966950078861864638826480680242552341694182889404937656466295023564079772797884683390369964437027299722390093880863359889718338940484323461592935723696779745835936287012965277537833257622032457816962332009596401941633531548589877868174234901114213083580127709863721024237771775569537736056371858202899207524312982298391387873908890414903651806227658632490863373803917449506410365324796405620130599430859623254358705072674882448860157090835282299411356693462694704194925482825728036959707580314987934287239942145911200605754921703360053972436896750462161440124690748272309809944388928613713660629472335186733540549099084601475214578592828127050274130444534094665013387678182823406146182368228357375371259043948692649905575176646817282230500564682482432179453074937359181171411381961741201079458674081501853978542023880642385062120759305855874266273749074383344181586269957018820250274962179630312566280307374538543688830935417025695505343981404613151509041959150868331513001641046977559526184885425188261756586869226153940322002353329073023180678139055356803090788895075268308834344525408374275084517119406253981774035779254201411106169131530813906380626799912110923805648850539271437842793940151595194450303314089195157876437527661022581353415853993310866442729364589086455672369140905505133697770581239243646850780516269935103808039566442048834532198236039828702909753262555067047864636966318341658222648701284125900663429675446305804953817923682318650175207439641574593649611437181384101193720512783269801230991734510774012713862016745717502236482246762389466410380344123018013195652218289077833648554436907024678266065720199265593353284638011526405976301585046497022910016568326627495999788277427167276615596605589125446893643277299123735232181243705668905249946211522260016135076603049611052007340262352844138559992171802425119608570551289986075616757828106608885871084931308421073919773034853984437352159643927339296913117148665333268606864556006241392933083390902957155800438482087183012043956835765423019350000596741079782250822419335447705634358229338089751288160165983385229277142345383176373346402925885177362454435167548518383464204350037791242839753203568535311967050113654472977730847151756074186145869048009220414179278044857459497609162847837401904523964597406268729060032936399051274772978140393994160454955376475339685243485854627949493930358042605079083792693143771871955709112882734518877704047587506982333950103042567130697353268634753969401267721717918676416250906584272366285576675130634466111334734162602755291387439581126927570038651224873586206319926765268358150616567604228171862988315361362190012349080464136456026306143267866167698443446739557721508086346791702612290241796348537157787617035912702644794812142734508411894227965875422308173079871843768311735445232718626680164062149310206239610612213135664177828691695045478431227956873846062006741103272381620364190556595123902527168062813791479253973059823530266255176778188115514601346214057457043343567401218321321811383108721735539496966306689310962113617455221993660206004200065700316074663838983297538446343946720967947715314706901204557465251991440622918690025673885353542892327479458428420163766194914221157152936693221031887660949138333090359865707100339863956225655245967883238861026446984599026733855950183121323277973464118720856292403272621747385639229903055765308230449904072412328355778885851566537019128517679556418195062920050107835675974942234489320273480080539723566703760930904339115157012939824338394624754530783255290695898360219415301191882287140446775049040298556221562888736479533520186241327366132905952535482951500767318641406915875560540667539565164279249374421464326048128770799418489640247020604027375032756943891257666838891343586919602219187162612042482215028788501369125329740395306435765138182641785610529472471430006621098512971544604399111353803950278596106587090572922929938799757376803195196979507535200064388875707539035954137355914499848123865625586156263102797740356877094263567634701226946744262120783356293339539861602080710701425625735729726565605206153876062217424863430784073370122887724443678653494868493999569118717224685824782972575501058952565083698925381840296362804025978135691113970190571137117613419608354853840615811987028257322603039717993573057178294605966422558810979949082512832690478066231574165349288108926783731435101235702149307926433997465994689764092873334160489981556535750040655010865890451328157461612228584443003258490642799932280879368608578505960778488343321372479855302213681503750623539941388561652857865501226021357111136763315188979489032363169545671151785949398665529998346881662951016839406457289784248718259319946434720874853250642643014537318161071879254122830286166688839355245465813267372811036988971290796062253140814750105784046146662795910176673105627497997535505814292453628825531395378311787321850721342690316016844596771591853959199134620331210996317544011493832241904157374956338445554788815485430145793556344669897409886132360777078299825864865690146471079484511576276207467794127822806142572076991105547186577967743459360456742715964211221147799462108063970811460990049256275275121613288325302072107702438280637264012184617423632421528430108239133714425716898081843722076973542879054186673275680717022041805473956715389417612427964205395696758873460067389052481467631275803535175008940445477967177104877011138758687040403788433465246696005644265517667409381208194714481594075353962898228641146603129193324061866173812704376904190952611935753198802432965953778945808023513091047608158193710578791624202636782140870626072167539656586501057792971904333069567246182656202914021955602705965671079531758486909998537326194898541285875241843619330889381938977220380670505796761020992374738024064410026012795624204807773252735470391859015300890392472930468274833019420373911877159754266510423993813504451059935029452098558644071230944785796230954699554652388409161508260895938918133049536999238123008704503466087757668805927056981480052092604039410338611628678555459594315683747772219842876310989363883156681943069851023983335314529173854490239757897402787823301502296199374275022723078276334247281741032124812603644025738178784106523707093590000541480374110978751914393023483446703003214477665140798302111868574200622089818378349890022621314352683072660608427695112678779134457792545584383823920426326043522316064238566540229161454755782317986691450794789126390005202900099798060158925014066153045156079642743953228287647810610055460158897213342500401967289348464623907001455069570131123372649634884919492148840052253515918941798805783223600356974088221509377114000373713052007633950166310258664520405207043947429266163229385904189743078352396328077401431320703601330441932806398390822263820221435349224408175970850917793475879010385998540396092880377585444274583274440582934061851599988530804838321426324911021726991873899574831869814064248441966872932360246455377930022055987938965257902936215936499182477352916435239538292023639631765086579279006611332281120367033128149095826515182037274466570536801105047016558900443305493023538081013208880561161828333788664556476662455879373688661916288163969552206874582498688419779836028681526600382369418386479443982106794489193175062781199906065275393029584615397236813593513026722531082879087962659942123507506057066088570980250820570483355024446759973713406631176175873803106119466969898037758872449942802066930598609478461500363985560558110575859281861166881543580600115970697725181006834633148775852673330057265193034510712570374840197594621695760857384335496976265530524100597576721375076733611538914065503924703459292578934057785809468433245534180272100452774630208478688315374328730390348920393024745088361821231006520153269335085537191504851521056735754176803802437423430644296392581290388758615037514013630379838219287738945006430240923359967646409387619803047556820486693266544152826680498476521346942688709127573919675264482625676206835396005401285468933704342512382391904966422867937571204984178236715739643038515000585909366871181547514269368931693099962929211320894563690323139307525177012006429463227686094785434190898245665002470306249535795358612390699773296299929358481839689390637848817400766538124974300795644319124271073770964710323010488295154408439613231577070154271610008611944576818953999304417330857782561178925582239703354352289105041978096130137831773979969414498709790405609371353160609387856953165097913431965092105324315089712824794173544941405689638977023130201064385326604508111994384230144590596977940338586771641428646368646845139620042437855580635757851819083993521571038244435420559787276587314945209473984204894230137953024675569186832482207893776297118431799107464581232115433156518284741588086215395746731712938385033321434973230771532271544523893879208684847392519985382061565262506951479010695632048304813468417894443029758459879639796809117071191302817274086349799885105448197087541756247704462235836273347969502189125967909371196623083904849917433882189881576295010941087316576971963543729842061411967313570144035849614938811528787288606060355466648117696860039222016350966839220380260957011693393987714206936279509280588182593276234487765859453977268084463047057504030582338404221087206281349028449048557438269860469038386568573146078604003657121875617201999280228180366031527299193114141490168633593104549728937770678596948042864753836571744122110256630116217279627451055010770231752312884128862492195409543538792027251052054042372814137841346250786202676149684658968268000444928378617981780437253803742956577798343068388167694827168096179500060066142926839564969344417459677482018258365439579432214659182532445161997372848250995191899605146055060552014398024510699537285618784224167826090900157974654693488509084507597950916061420998855921837078887403408010508823942025581398381868690090660946209015745571224233018922154525573663290808118677733405427403214019288756291870739735112976688981079687185413944956476738771078597733824835409626944418429359354957407344652557995663223111100983750740486351077024853393794048610975968407026397308156467138143026037091818428885461642210534762788465051219937301035173730740086388083617294737810755598347668640078469971367793926928113386338215787769349049986438964942952534942819613968626246344873261551892671995133839017859824418152976943836435312306767461189157208673396036074503054157652008594794052326030066660866979557121131720454516861515719827305746090350794077676899134484434747944302645997289094944395005968930678165457773332039307364966175458111370652064664565873712632667367105173298513514502844239079728479890400602375815846562548650874984429259687382364089348653922342454546127527122661131785105977646543852946910403264024911318058976706811979304950751905398921833203377340031334957879461216340350499128533509483314992869834112745480144321322318851760905223874236268779899062215182307915592041154076863768741586070959235565100157143702597128809291762652822271274838024059666802913996026263905055569500473478278910563145874824321890601116713322432895529534884121879297306495811168940935607968512451832725449626611233664904279785802496178787897749568426599594935935986973439125475909425478709176174304827329498559445156530229335140145367019259424762154471483163008962340508847907709254273214406400663264351172628259425733600658484587692265721780865720920915801897369657430650256837973963696955125441737173862512790536485693322602364326412341670908189298129909626843711728811697891276036885865919665405100417900932965524887327555110054644813416611363025237539110505153147534477769703864800796806970782366858794290211084687619329217618551091895598449047692993981895829691404588985943642544484409800136798192361913242414091992086122581596426515610305776603920120528678663255865946612631596944110676426830157498849377239268047325258082778988847661001146245355552965596356951059422162660694113263920942200058822213933739692781829803567226208275606188330574150595257964941187534031380758127445158204207056421087015187091539223270753998953222001975774225558023039433033309209665195943619727435590302476123776295111330796123098891612368707840109016643769440547636778965108499014280904898932951276851969429081658467425549439663241500798339108057149775815834596289255479468924617876807744772986425442584446529296732191963503558231705695358355022460812951047370212056986081912735991783138551224487677958662060708129992566992878937573450539753513425987084208936612850739259669174132662408761280711423065999094640665850834911243428839123544550160191594140057063180951222497739229948789799293138001510410934299266383034731788998887883034802848961766751079083575571137659009575404162843682976739101291521918648099251872682597852815297991144507842604129610747208060112870123753003521240648513512624212707595539998116950223618768421643345805206272103215730751135523041248565607009161709986236379261212250022711515935874573527952592775541459251879720931259873048479271277338766844372692031268316766272890283042366849261612450277128272245172199512405812725203641848780673831934696409338823645962969087119499104539064371052097986496113772716761539378930043284364345375396033977871026623141988755151405157481005559467291796223610204591843921538990283641106342332565223747459448498908123524389606809031793340157857927001119052832399496131248132471821897630475295807886000503901619976338940603109459537735030090006728950589730724739137430987655598518152149443133995531580475129393542651257809472613025105929502983402044078753798445158719597109956821823722937415784817670219140269286333173332555486539940426975818138026411322765839697888053328656019031253245863475428893754484714384320412871742237896665186925114149717974190405198622620699638291920030273550840218386318721055729360630049264386665886235642711877439100001081256097983630490274174037510113276901401916496277660195862379689507237059367104304583406575195799416328301030684597980669033494249819123681551917991138520775724866174713313693477571756654632340180234331313500665251507414753213890575157162840287355597172423589693670887020744841495261089704116661047453249713348373175980851374373181495076161841177975507298669739051314778681923931348613364711995406187005791275817287361226920161482058971259736824959599240018864692917330295630286996356112913566306488500963048201575147933098156237891759653248042736755267768041968400227833727542138785157050356513482980636566448082014299408533523986147701998243868690213607410879851176721075062780682558303026356547189379560453355377764388351804106916539494962739737197789483723140342565082228134185056418888005582911495218112183602543418470670464559933956570165917448242133234102419439885771006316604534479351917153987332683129615355162346210155698217954911280881737126691439162118965420451253118441832103063387767515688533025373929375165837061451655203349567474628877093486514820717563128133907043633850967674223368823604664602729389365585922712468561437825063717917761470875524752312692789030177699913993520588101066431273368987748233205881944990444811397308520825732903863963435171051722989442601306959862439223994370173184025459696945449587333529693643991933426350405357240091617979706456396958666969220844015198364789708569590019295942589961350419410288081577727445234489391271952079849497266607128642546589377229862453723824704711125522729967047754513229355701517289810586339895151888440128836504851328962872411551984893387344976127907839323361984474176935733734820495177824439026394532899196702510996609003304158527507165781088423107694914817575265535530923937813685703319534510078972295650580543705831577376407343063503743566777598236687185865131977843388140480036070918236137621257747517406403884733515001188908869047410417816623622916142354746524208851162846876740451659520158508777304385672782354723016354350751247372777340208438093287995435551198509881666788904126382943683346086025772212456309172874956715385510157291368295810322042073796893420834275707397501931950591751787898084030012895917603900041594841360496372579139737317530602665957295713782395975878023615440440919312991131341908002496234703929291457313493170052524056720850688284985171740504253535587377192004484837099435684621877922670367398923071664478309459906972841282059788145698930139611812775230476700650968010296931204628730140761388486931468462456003826069518973094919464969827624982092804677327483968129078154440198268302700537839893828974021952785586195934232355293328901604865912986742787268681408728282862213951338809032224011836515583524043104333820530487998322750150806875691936079004625638184416197034605168311924109268636162798406251281078441492883903813983094992219822784863609105842697348997527598855781399741442583613779433380151134608119384314617381079241062533602083729575769378262738916519863627405687144207532595813506054552454360706870234170295986225614871394466145212037098882060603645070098102363485480173512345121019932652918410894209269925191285106157983322519019714359613755530814805717986216551347912134467384469326342001670006686952398125805535533550699937835951113325958927330964602307258553104775506892022186509377353539065007731949959064021195779706491208439201855844673166655503287582764350013426102026161234497418062431001403000017460318310989299185495009709488005555094214183372631902474985652522804391714789050359689541854102298622406263566716688155668950968386050718099077551451178801562849557770891688761301084646270795703640978403018488497139727369267158101199381450270895358850656513113030602343317589975035650831947089536848273094119831526747325905338395987455928363630780849416768551760352880972271142390447264732518339407862489648913319115806623108978752551632492806132513483759354522954127555088944959154771850005693273981302103926766604728612773438474371360945217580907045585015034182775176951463859627338987098241047813393174347421399230222126755542925142782617169489438614995758127561587321227780588763948487066015878438997480388026741771896682530049302899629813283729693816050477597933077363296742459806069601835972374251043643912687337969168547447686310132295986126893599455727267421676685209754444341449445322726804885133562973647672634816056928633518116101976580480231652604481654848280496839532802505681448487010952446600742183806749969242084191719680095673460122263530707083272439760870964623813811771586927766132991889932066038018521843255738825457724815630915815389108652626842038684983992042203244267572035552526084540551825187940028155961741548436265135358504571627299606237577936858859011619222565743928325681876347358766565084189962396589520920905233208998416931611081789637274790140004722651623061212355964267655496203457172292726423744762901386669916235756185276108265337492244085979366102353115961155063850949101620647654478089648579254557702247781862222909771120801828238107161605975364229975940614753970353099209441801845964361429869390673558959009347898530249487138571749910255611606486886404839059336156696250025905406470873069317319585918894787962277578049127095159586259348704817352279676052093892551504434883225422609672529018956472837036004980494266431103027873496011878512661306973786913849502252183601998557035496176532126620317781855121246146248660445682325497610430107825226525208749727087928390467231106978452000258113239411179755208626017504310540095227393774834949388720347679149416828812211003295192087292563103441253074988852925737201275148651325986968578377481445432075724950733744741789329873516572240354497411496259787741859252099863817979782447282166097755948844879082438838347045372276621747834126574473787420206337109064770585796064839056201806429445491135157702326531682514670831619160035533336464374243299319619981220432557626242486623125972051317471783715353806621721812099036154577140602450134447332740706894349698074376877179514514473354700285037146686753437735979404898676387602989560540021723813999241374783508382186612458468313919956511158919101565217051699591309198942559047069377002716514671698169218882862060117146148857468245000921499016569487057185348276885993707887195256850884236079543658818279284228336958520577666283458575409000991589943593071761798585959851291988446206971604859034537810934908570346252498044708621803584062847305235939835606797909412157402108592119313983278303513836430696493151758956254812819064134236623362063582537703754152214730296931915378096622305205162521751568840066594398468749067401947883446185899557043221869481473223583811168931194704922801352869957650916173476591576806235244080753432539650007953543485163083600780150791397433767021624413100432700054635708987893687627790392332670512679519114174129705591786398308442173076848766655414330945919293973337253988856291887443224748293296016599947179157310965850820222900727790558120919411666584149586933809272659344294286932716060615713436484961352502736366699513508308212344338606337863438013877514057988410560415164535310302433073565736116352677437378867020335532347374348512275568085919533826515495754004784283096921514169627140221043458019838183129807227219543359367082145868856667307035291501875075689032668092470445871920365510405176959284316966234190008199803040565596455958171381433122970324521753743904662619557418854575299070342952650018453794276704912090753176293368702097167766177144628872385343363929889059731191624352211797842134263902591681796249617255807009754488346932265446162348680077015888750618265251043724379673540500169183786385103388041123935215493298604920761816153506672426467367448864638605420540296304491882732865205474952578047055752774152433119122217328124708659695652272258228254964272748425980815355841919231484899296938372426755962777400184393034859969080152949974970806231572802156204306399220471606468190908371986909767222534152375750351084377372185857701333067370119920637531111113400857581408092120759582264811711143669726134798601092337017440379830497832407176626858471567364433244828565116312947953521094062602586036181604255744474817479510636448551234401796573853067358199393720052329868814605570228172747154647458366573730054225413057509469093317937825565524594896562826744341980133005806444544206176802911190264955473577483583935541019609346736091693047122093211535954005896932662492313993494898360097423622776178121013280100362727452419453042891451762062026114307695428518924803105573526340263541891331699598746999787024760733503191509880342681319494449794389201925233516294050983143312291634389102226103790862144194829192798987260166058124592484970848310717466579278763450360520273090844556666111672333308877084636277563434053740459013070537868566178155354325650351982704924434035688794415393451932438782578669223711090446344731003343478762309429849976025744434678711328531637333740052198438203469950304378590440031845204482064563650366476617251969934082302916967924206541138489873335082766502635523821689318498156269363049389222220071699479405298029378353207487657768454846928172141163203574094681158494507035442136674945296818990454017293624862659412881245411003151817619488750747628422396527312063382456879251342727657709216364452636065569142630986428083848599216608967109470741113149262811916144142965959440987806117987198945180272943860033443025847944421548191858667345635363716786485485158378645134154284849185117410562356247694382273230227718144313556553720666015381749974272468032854941884832849249954796453080708303355372691589683159373180769361258346536950522991316548239001071324873987453581372260859127046066740225839799132873336426742460720020577525701181913406223799760500088462140195888262176957120761852251584128182088970899456389137786178025346106303954345420562564418884518177239830598264107448169558315232607344134112022028495937400001448324763830248472300285537798004721449533815663478445471604767204459288382789706794369240126282885644905310759496618272132708668492896679789724058465661355103782439793702068274744855775772909473691593918679207329958736615848597097612170944650483746626304828141964487003660530075183706477252062240394919249149428966880196582399938539638791616201778343852054420960027704404168251275800510958024365617805949696872434284162803760823324872972604389361263480694386310282846568057331451418285733927074280768503063548834816541236326644284008466516358188712221296659078848687102598623277121415262134594697332063381914338801134593985207864110766637249127645168729834668185148086126381362095420395065489590934834259074177649497724902063672676150435324027894465866078101662087979234463303391069655686846901724275843010547672843436177606716627670644690074806948917767070332740082124864591798110401439570655452652491455747465039435379543702922533733044136325217333427371638788399326736089645626362713897075641028261245470509828577847015735276957658475849993406697627823042498552324584118868871683172808002094138709944563465946320116691027516857532115292207153464060023898998990322257261067240820257266702907434653902390660228158418328566280493915183413368264578219546766420395495822351279807922881776693567941180004873181687510432121268403948121496747117335315817583630982150457443670555412462311801405749778958946455303885864732970609489109316157422075054187225722465431261120567252152473369528849567029731099115341822426619563747730142137243230243171511477888244613650851123067865596956796144138785508248851622747123567081722015664278557600749528539335856219424833010470236972340548375716483005027383987822288430303973341414113756768848055436428977973459785809257659810073945136149115305154004276866663949218263010487794378425577920022847937401172621264012498370852476093258587536631784814664003699857614505930172180297272545288941028335384290900718815193932924958439104762011269404233211626993235113808714503012860879369323304353154572149438959671794131945866121848589627052840650306424030643030273227173201737533650746942098413907333531530887487450682464857976210500333687506411343356122198356833685985915169763552317517460060871669600368052934124005257698710996982260707459563393953034144812229509904450462029116132199032946733132945021302160799119440365583177780179045490776781787590836130977460110237889332062099787086367835738776019597700066420264655076703785724633490175540882000165317595278093532739345970612013094816415622473228352226503692740274236124640050855465161289885016169682347039389284779644325191296633956301240435682452966789303814171070797583798910014240674391874590544893342584087841334536978072844109085646397362328669170415795910137073909643322458758515262928527535531951300764139168662093551264663192064804873864666053680041862418427682899211643981736554232485020044315601887090831820512489652433801451078113477611153813103523207089589835098699929501631292389316415584698013150780537710386915208950203469167207882835489269023105587605208376911093852073496398137796294900723960828543332740297058486978408169114586223803901136005823707909076884542681754007676344056330526402478104780953501812741210161247968932591144251565771202990040844656910830315155626518114985780456747118322967123660135099540709163024353500678202071008594598830931496775302128583878038013955132669848076156679979379951914952940908511899107981243838794699368539129334572162270594873925159830632448454809957045760657596106994855898330685979268092562754786546983386962852375106390614628696133844521034832244792953801033772964534918127665851208086971017443296673944887140221214217611125087191120666389572798410887929439975157158346689925108987551899437660516355312887410305195076403365595865704728575474417926940697314226734364040343164418392470559465910598179418541309467055050115148299755882446711714885974948957944221172249547014805256109918934708369234450213644536586407492545494821660743316039570028036406652170800820346069997059563528175609093969931096661357182476392986686229692503094943033803616549424713907833930719138615615412824460338300792373405372172756379503075530293849334740865427759504936865575070438835871441421225127976788078231385022610985187539335263366213281192106742913807171836705141127412828692352530343644426120131381530844156916821226353360597089085277802730733875393743578129641793484669769280717984391215435469209301871012053676037151504319674030312597262881015931626230885335779192556494188589407850588446406919314004425516356347499194234591824608718755794084418042267691654518373826126299137005032853353371241842828692847106025989954645665788045940032337843804221132082113200788746916402340929645505572081246405089964520907700081107450268351539144531429325923780544167430390878364281773795690874177191837569873437360252245876365986302295035016488544532967692192372694464143319188316992234275881978388336056244488643688526411820069741360087578198710520905271080051502275412964276834643459909205849447625383614132097809475579811795659648227397066095845215593677639480573178837627390278970245464580481598174866356937388805840538221684289799899874501783401747672243029428504546578100235255223767188957083674503935880559282988805166213793070927020290661090846304091748860147113185261280539656604044821528974185628607666581641640097687968131493493232297124379277178741727168002064067204529234387276542486382682914044565352304245638471413468850302352357563066464716915398274660356323590795395757680460418307346748033656157126817142230094001421098585831521084131368545762200269933009248080108866855759512196992799262403755414989113379205042830257181324315472059481262694568478704729610921422748265898987814625139694329876555879237479821444385926269108896869232354980272853439995029607821672769327027728231351704987698722132632377770808277308954849563909505548508678174168562034407568144256617323932508097542688708675249270584635273593639280699501533687408871483847743564748640705418603873497689206003589381799455773573063971030115806765912313731235964356607042436435730725309008008024230497086855582107783588488462625789679130892429334961996236107296279327179022256626273752945753525169978045531764468771492028761736495932690932832778494978140129360766697670463781873321751532191161735478536850955918012148743385048053670314819975346482443445861873654373122539366099460907140525337641015035277963700652484886656084319610503661636012592830411476192235159687111300933252589392056711864514317411222439346842901041238723834446821141326970969288997907934654873909691873441507851756101684711309781830178858695596831895208281777162285561117008380147849099571940208999673614146390696774640223057238271620931628097663029775181105288625182858019867449335684815824825486945909298330596002298164385775141350849865384578805373064163086874660459919372043275913819410891023638296260826328354157291508238840708081726566090393965455910217023394882777734002861973082711621365582554014714311634949337889070377388761561389099738401229558756775775724162209649656108528363919889968478085599486093506897286769300158621393510139211536177890162071419187516775032317900202778964563093576525698049855047714467258813815539141930415910081250391609820888185664926912915221138795470653340493852821162596271910578445138489401306242256569662697501327061858365864250297734166147058317258139346103377971834042377484879611306151777550669884385268685459184489305528954065295772317805782125288346256898698346024024587452201545252960636951667000752741367279281379758520307787444461483995129863781894570573249640708735651975186964453339176067451561981714973012902259520282007858067143804728246412801357349180409443014871504597352804862664545605901974151196565418503812850215051281633281779026308457007349834864840460221337882522445120357609139811248282823495602241031254146680806549968552561604758290235716727048480349861176168937457232340014252477677156898151196717091975645716926358882072883303249985207313455994796717038417630040811089148171575483772994316898090733515468451584980403587139292932914117456895324026925660456745122894460011658809642471136197010158324586065296333205281185118092338708078324039566142714840142048062741173634338845295975580078818099709592162133266742005087534532918750266313575567945178671478111754994142394268322279197971052652394323901867073780385822091961030713363047003648521144698192707488808875130524101218238446193700689191349388838784153402199087159007796061275388158057892300589915249558717811536207828184844118414968478079321073712859083354221344893198652113880614347724589380670915634868997361732810025120017212177099930463044691170290492304683505611236408232575712200628498833995709708009664979494095696115136340987963676675886286651415013414850521225053213836884078248801476604193075668207408917055387947094123440720096388763018843684886336818019888633421857912874553968151967514986075243041121183000389124874393952203265490402927043622246316954106702296586370988644316264488783059424689743475199252247015979556288873966268081702085860728275010375447308662692540411256526059704880621880696335501916418591961279645077115873689456085549834557829481532714214706743625125108608787359369734490152457372181224502757851651873906410542424669996356965914342821680289138619704064255577721560555983126113533475186124761147111530476227326860909374167974299009180829845868647029103979995592971902590718008936947299786932328239844569475337718739912792172456924011186675562574099106798066890481766371476613890623653564477699984705470140385967568096615668098407163155037852578968117417352623411530141482073878364018652855354727687564680783876184117964096516449726440202501515107189990783619942967703805295766193685311314556335777018850701225933213107603086686362985219089418072976006180068202366389125092091542646864877178053489791092576878050075708722319049058650680165559334372486470159916974816346386692707639771927307051452406818220546749403599359473245826293037966735166575236905851598388174241211196523328704595875751476983705281741997437431780274119612144547309340176120423545884948059571595699420652082552701272685994510666913919093358511599032992420474248538312716331993426953063520049633763903006601771138113799656122566814134729801749672714075655292849440930515237364527900092166761615059276700816762989626498164065141870698664889122010323407780602108175444535494167244026772515151201278125801183179123443000502591239436222184615539665340852544829142136596448573822563136530641510820366773865648480580316182607960501126454297963714950942653336718865310123373220564320722281246553112453565629070226689974999726226070993801780318755804901417501001418138569101013398063746517504164195885075306729016248333205629302507443858211379617762470419373679573382777085415537978320631826766356184887440330953297082731347730146421268845057193972329224329535164121760527920240510591769241158799462176776759055198066656509228923085962611029844395301939431364480698207667823395823819466021162414032234369369103972043835578286243557647230364342003849621719857306371132235260280549306500740013016316146330522135815015413144477838814018880728780875266856992683287937932721079600092406348091688413361733969936855113165317376772823996831995131040901629789683018160331030470128705124101547691158626401840243194569458018583271444956445481846131002718584828795308101639843048901711446997502726213407125955734036877274149374592591376731190491708132271993816758612631431406379567835060652909783524650398445860992245552558258663303110657479914105344011892102470826405105459962817014390664831663177217944600490942999411847390125672050348683385834768317708126465690608900028843079520008722195696252966819134565815949139808831527759243341800634005684439292649334905464975203470117033832843229363773753843810361295166470969029790354128690964939894885631400289241698434845924834368116473749940151650810296085122689367291095222347543958619678831869459254324753368244907929457662141831347657915198467312071491713664238788645765378312745185034286169380565315117849769602077165254167499008759283383256674736084134424969522185772570812229733757530975980595398035245460888162390447614806399742761348228520039327698436499917080527030498809054524445615828978160021242259977540219163763672413119807037891889730606771648088202562832863381317817758057334772779218177266906817254606053229319629887249873319833581114531806986593159775760976919090866879488786918228885100730337258411610392478881019354554635420426710037588166191283905810062661909722827620924553655899841630758652463813284736855540013328006377949844013476201178718065145953951026189489855630101021373739014900088439420988374600584047210837204741766956218643240831384183486689848226163048891760044813689654946690306722588052886843199165180191942372463576183559700206125338636154275005207067073694775912276078766906982119069056623370728364378212337076481484741701512716652699034699392271416656055727135795631942876585286218889588802677149417244898715277500334553337861056154240807793199649315118788520294052972196785858717844561523836209272619718545311367426301565094629037062467323588347860336888141547634749205153406171480446999027450504388340010918430722646059044206849154484157863408430822153477770205378244429063415981541513830447886049953859404661264668724262025687248621040979215989073836805198666511521014080988391461114284352847958622925884427060321876481880247038492547893189778229822377972741472036378946132480541179523725044794626204049152015567797602675848399177580950570210522700262772646259299851168906418983523372495748520189954522039081007328303347447899405834533579214725325579838678645932312041369057097558107297617654580903748672451823525781729641757226277699346754632556816151337174601395083199871952236153348260656354867432408043757540268609733641330194683205750911418037037473863249340326812453389565727435383910724336731976737694216649826987506330397067296757376709368278225630148116378349369259810962849855536298260210678511384243334739765281647421702385559263265324760218858978104248249062717174570623280368687790855026031722602385657652098094306241365981175233007059489196114946159371750535993527857594140348977978627109229568195916979450474917229134766811012266491745754781047733747879468930422339370202273424616349487664448652788192338081581896537677066148330265532911473687585756450027410900075365799059707522155903276637011595944400178077050005376975364807657798042928474330441608084382738538265078010088252752358804237328521731388304370855993655782262757189218417740731393383873672196190275222047956430802765243135268727868004187881943103542516365332033317506773981389048205180108530794282213402137003651173305515668132075343291570981056024906410201892159736817824624785924318672680576235688302510624178760032563266085536002970273660413147845241431291883711613638264565583898121337693786928441620548864353121909781392288669127238740081156462079274267248204987711419278902242320210086814925872818588733042745147109776281452490373314006259707403378581840368663865486387351888615888521616705184042630130872101608154482028254481333814418576350790752352016317446449462279010370979972540782752103939071568502044448096747593764914963022791646897018925969936286088429631391540776831209911406452367518702291293721160123019522944671913554461231923759730219789796768099120584743328526140642566585321913131838425293660882188643519579647908139316765646043468465578409352159829691527663989113854281672295440246235791260838841269576820712558673915273682061953872018847006757306947960304769063465284410766681595444302219608556094934625971184640791592394826918889987978846479949403654472738100351084530840330997424998403317070584603323092365845219770012678241308740238157496493733902339145299337587060494622788063315836871329015986616941388478110210688832814493262944922228188359019889478174041413012200576114671355750351015986525104506186694317199673806661670126044009947626480586012267646919808683236813945588561731528451894460782271243769772399473390648312547897215241376350564662628412438331416847623487160532236062283483202210465258441515496717803356692870709315866014019234454865085212623068383755586406448413398982036132003451957470543056271450190909477699330191276347200394621752544019078435487417743930783732679173347360906074205839574576133081801472069244351062782028621521561359642275345973952332764741993129491914020665506311073402831378433650387059624776971180250027084799451263343241240768227921991887226491422803269802318878260254276783588042124955832345048031360097614130367475953477352976187275196981753433783643708505216312708608203068899423846034730927678609214291023525222202224113417971317983906601341138774016638292994971938398227353185914651189274196043957814135803274432279112021086047170199045739612972764552553132463287222781242678418020760845865736829344662032663395134928585935760430927757908077814984168172478600147446016755809652402350846388091858037427992357843953739849213535708580968774517751064918888673528194707483544841405939240230534141878948346813448983196054189444274388551525408489640275840663663631037931299505223860454533180199811383995055513748804918209397167453629529525614746802637010946060022850636274898504856691256442052570043891327160924779707952863368946670433061737167966186301000518414875484082275499470704593732281646765797862072529646821487322156135343285855992827620000266846792410635391841201568887386205861826016911066007697495444143895754797062187484467602079761443051013299659748112436461017022521539543490469142774423753030730208291831540185339362658837484887613697662822724684537139792544799368979503826906142147745368557176882910685731124040233581210099584651666772996247056372523764028223119692799140843822852536533304354929279509283641853940655153971956603278370186404303350094531400295116690953797239147425831904399381851408041976868254089248735147681457749851797662167762981074391102281872209490312933635734441573380876631673165361251414077912254731906643292605388672113736992221458155641832417029015020469566465216696195636852868252979169579520051746809951686395805186823589234042758591963435258524994956493869812509274991645787052834611635016698530580509404608983275632049835734537615405792879938463539725516311626949005778408720281890951501986542640623074256780865335500187930566935497742012158491134841679235363504863645155135826788706686692149693692090113223868301811138765704109220172401360691787955392370989531164938842333812911967383484130444929739752024007391312147352851999139554163194760872291872826240031429700235383667634031356344005294697690013702348138864580298175102443385921344053775243248911695797949077873971605323011408526728824745302052932822995114167350652674208420807442853365862357131750921072401139853877845700533491522046802156351577615784638044373014403839976645171718282587261813578487377692361036786442397166097552778714278940082704800387828206987092577027618872614375175729375040610336101418509119450805559965214351046934362838586909426574399830465815334667698242482122747446981231616300487512020219389824684233637185875985346754007721237721087615306874538022298044933515332540021311183838374358988812855531638529841005265326945922870750824334378520104934478669775829921663719172019487317817436744489345907734493260010849838655172580912965063757917722389056967183835675223835591671097105397708400870034656408409097018929229964162641323383092657570825338906578162602517139005499983767527943337508709019994654084281343106837740188790906348283556965990284074493488276198102332434985561877009207295210832406448887953926468523831081264582339346796544899221351420399449485100198581476890016967102888656632154349712144032601225746896796382231926131369814587570127955806884717150858112787941741452033713595421106618635012927173766881073206045027689652304176269138822191230522126388672539600175516770621538592131927775639377643614240555021300930876110827962185790619811223300091502852027596824070359205127221028085219222273839592732382209940293478943226828102189743530468511485872076939894407854510568621591909095568293084437656470347493194801920909344264559656540949722385957329092559741478919089670954015862952591969106460070177181309656320143258380059552259298462024264727833033592281709760972147185884318931573291343712425809029050025281363863897080346761679164419785907557109484725202310583972472347037850316392348661623662983931053203871802558744064508482757282901740488102530755947941378753084835848775096636364018751304564600450388252040716025614028267518429157887294131528560571419955787656263962243726249917250415359926463597631940297335080915383963602721073392806710479676202020436610391637252306036262997898906378040664545818508003795115840764287388699236062190935359821767144506090440381873387009147272105293231463856806291096396873164567537678166368846658586514874749208028438384718881282167203152297101147807812272804486724472001863355905379503190981739038093167633388524636430941318870066369636441450119188033207306321887212801060360404588843505520372067350304765167853258405125697974178261286878708610846944914876812420601543275879453898235680538285980412726229931579699627652504710133984812922354875442860704552496591499728682007153634447097702277923908142746849315845142049038961140183098372135443042620496773775974236692940025738878006158063057381430544516153022243965809725326808663181484618540648582302099472239662499829143462099297503456710043995584876892829923770110518978301177381762098078674165798637045509415831232731394642174001848167599923816816584650039450664776523437494644452002199255933076956223165057875214651219767574002357867545747609131417615896085155831494729104248401904260610989969809758336485795007755028465626368638354998549448962463331317796896955815767919131015304054943786573050729946303400397299528857457493981139407808888085508542102044079298203642786495571454178429607412061946363063494767993417891356988129777840173767169695782627535196978194655243190101117161794865308605032394626772776749466539903071757635096091466437267684254910628223793061276767723605352241395592734606732235531621050555991776963449796778542086177561719118832680312966496742713269881423406699346078591191121792173931548585547368719709395175007870749343796677901262030519468670280343147072268069386322324177722397926278528074128217389685983441123137152959363955910918972818184256119388975144450688277966594034454691679931156352595081239489287204697408640331851370969300874547963194179843079752300606765813618373837383151055093035206160662296158271897962266457378616666394587851160238546523881337681053104962191522130609878586321322313260108138955984146816594190019470434033607629287502910525755477269019089607156517000017234104410950759490113776194091767874173749391315051300956634279470085860124060870505434583409245072058978696170781548893189512263036008846420363400226320434882381680015303485220428152881418533108615964765807129028131820737169786976995583415258245534706429579197100999185063732498400991971157580410406749833094915016412254144901977531027463708667779657910651994038468503121258089769469003478139849030423716346971191260468200485761832632193167079997752901264478203218534593063728821892757319679301010221141791704384032701714611264852909113290089512734416596573946075478338300697418788491344398913966559024446388350129351327140464877230260844798861273882805659056901235449474985981706379435112834083307128959231224391735377474110542065545393000815869034593666481783497776247029372620216242737644853401862878561314761899537905296340511662243675596277169800061447747562783409361707038869104690305455173766387515483612567654571764771461235750927915901728849726004302251775067847856600228371645838968444839448173014763341385971587579809471524093598204872849567996987922900885601851497849597503869230929208588769503487645489066576034605642102673045833974391877640724066775162442786098553413069469758194834258316100875036131620084262768936934753994307752160446218250979614357882377901652195197670331359911725147334058903997827666872966682118229073822824905336910622101376989844458100865377392852785649257739257416949170749624611048726741769974371710561691643439536311309284392591501085931069363013607946783410413729696409069514808236750630384482572320304626515910669956697418040537869488913948599065190467510422028461117265773695470715998483278726078057722599410900635463448842949475238980549770484671172565335467229144323789968060472486317117350148768175717051087484992960162488098515766891251566023180504326072237114846043280860833781938764707238180435437335606130240613779989235941850135032994344080502006195138995314920203370672094292926931573322931518483822342721196195048423813381382489211117107158763784546729076505890391589584156401247388593177536904423355495916512611058849135412608951571671871009514291042291304335821782725337042715451725062026624460503332261598852388394667288740380312513160475175021383635783571072087903503561741253121378342044330849110337711665380437201407032135146896756549758222721652988051301463604033808953423528630554278524237470949899793408205984159656498168895226292207476514271126652959347319775161881747546937189241477817289638158816497703251956175118780836821586517947683862170807290468125038519399767546097323772912326971394401277553365224107196367553893687676849363484459591655955685669547852078441384532352945718374407846396694973080890796409193059044899144533997769524912761851722887230581201157656705559392312868231466522675485722736194803254335419226797080970901704698645858647810055369800706946368759856532225112710952509171091086343839408592643990830366880150836800895346910444558068433306538737474007710796120634533943244882815150689068406076350148560335523094155220113651089721773955139340877208098138358731733760656186159702467958133459885801633329930511007004321791354004479568658009309856904105045574251174547430259000674763881432227354038167342535553735928738736939485447733726193580191393447021432164147966417626407703197531102058592477172364623270750287495545901666891533155086084669905353210398439786892720217463109117483537497118805768678484460268247160424302488203182018826743925633034985934119263445859454835983305937544669558125498461462606078392705501856148295047229360196999965691142582802075172343406425454456805462388351621049570764137536877832567256229905623471038040813887797540778433586844989633419694779498714305266515224167714286835427469110417397553150028940457493055150491862579870726242153750958210165112064368706232345131818212042355694272827006977351024880891488974015963192469363387871260734829544159909290343618558092010048657223917390029652739817832817191627782804961077837178201284299554085615638960519840436670334759264374345984969424508458442446672441560732854689674705874772252304649194818824091041169789118063464279769159696013196034615469489266194215541081308541943209364577319220745924248741231025978313706543006129954090497170403449505097701329376572459862375562965607817045205755800861356961318750922129481916066329342026474196342170403439467563259897862810408285215595268170900757894282250121995265603772963376926131560994490606240642268595107760011917511844679488143185134085960556465637825491011477545012107529794299160813680686836769046800990116673988634583398268042693322720742274972587906466273143593829386934763089297564731405555122132803777928295491888048927191474589553646982754160626809348854105252705235607766154814329211728050046898081590223648788622894060803693738336991281564225800054702718636567448631580475964388564664341434078410464043821676523440301788682157144567734121679159492288617616420850778338445650273137997471355598134649590147421819786722865202340807141092844361680633278883654735360305835103764646264726765529967704673687680001375353078723182085199480261569504443776898519421825806555560535968878611923431786984676807926541343149275275592977084645819881072073358161875819210514445244256742578098208318256679596673231989902798553710417747804912954431026647044461554935201225246491979362935720640871812230256024174331536644319430750156410687642763286931810883627717685914000840474628013959491393518247150897100361233719597450934353880404452310837832578147144714814015862260523802521700597823459740032901454158993370814802011978664489498021981531224048846434324151178331995196213740415935733424952421817425498603337845475575015980346055680199516821662251872329098761630088295900259697654874067115188257447711393288464501032246509823362739921704097218854398899060858440242987375165190298621886927620510144471051357804404963955576697805953890384819831552503963504749597304117518938086998033609001863183911929121284667582084589453434417339554109663270196625771996375430425729198078071430175090032985666969213462038241209395881203781695712896856984294874516674075982573205094296313864667250596831414613832746088719819678416511437441708389609410681504707690753731397906957954928420371724333224222169760045076110396211015937921924734434289742435246505446239695580954978940024372290968706522847606311734489724939066247704165625040722149735797987303000119618479816904709378765443045658756571150256274142397999664012319118312002289641914333211976683609979059808040302992310738118848851384924967749500278823043820710916975480487928635389399309912128166481779409158984760589752100430690169940346083832819110607737116490614605268743481782579567326819876452894077155654740812117458955273676183556291271514547616598057460135528240242023833843850035375098030702945296276826020367688890579716355001899372094335950228582466017314896646430554564494509974417903036889204365895647249029850068650883262999320598130615073985014233246475391160463888272180929936484284300571582996370323836332546889867501034308370663767889140820637780880328031511944406075155704859433740020908964049838815164365788098363554356883546953799995953165932592882677777257832295580127420616777387717721681865512114025641934976166653402605525746116865908310015968673510524492294918392412113931816220747642438923814987111098921885385012659405883604055855516112000792621850185030114332513339607179414955631784123609259026383857071010899062429326742136099974274322788154245489297618852543680467530303548480768453899789522856393513031453036947925371165104669481839998335243258440229429029240815854576407874123601823287019840227791126398147272734723219266539751254838851063794430040309266622621175765815802947864115394880682972115039032716149495493879926523788920566388709964772949662236969598335192938998365176367122364297275471792190012432496951669995290932770686042218047239658476781809342017711312166972585495236456147338908667144519409311182038175959574279186530291285662173710500282500428735236012400439036914339940297487359505965725247141602097586089701874891211585128955481755500229599601933517834871561991298597279291892581192208753503330152220800523196749722088837431668738495468518226630656339259057328295845881100863791744566898876437005111497864470007945167956427797123867292345707763010263121287434205815240257162089101649880134973841322596326814748653299439204634087439797072022006889158545264323135248164756051627262750237967421767072223013185064288639174182161620503413431143692248496604706594595124222279841462060477770984350763828881410830782641672874058732010206160093822732006865152429989089727009239458192462413066330967612228979917718002912928956759813775435196301136076571049226117539205401654537895372038581538956854061305572386810570151654638683197491630120148519339300206800604611896553018700955626618985331932494025706414163630046671509566640278089836981718689384385246888536974597834519654446552674283740256982209837942026798932400736056777523736191170636072762886147779411126958966588036826140832937886788144585888584114774353556749192735367022519012372657790206451736601627088185292221559404815321798030426733615620860707620096329309013738593692140684294082665565951439838098243179873043231213682179857468519123364528514110872329494891677697293857615948260149342748393865351026076596898303040133837669187871670497408068062482678299512003276140249701032530411944579611807727339739383795446103840148463633505981374046030066417175433871562601255643516445280702375664028102107044474457942876324734437879220291956912023131525382743416761031190858680143250934446310547103565646626532929123719420883501704650679494956506051818038739280053572406380555970820450204813184776006535352338434459402763638393063566108627539286768791710972179733650698128039372628095546153036696366736712554700483748769115800050892316208892603776664106422000548700858121396832648491001511993518977016480392119552274229291826840371845446076683080997083401290329077488562938793812828296259153614419234614865702657683397074991294335479815484369385773238606343420293608387038502118778938076192567643551247792550011089609917802233490720920075753902127848143555026206592570007590889208148198156720169667101715127367996171469272607869681092509687558679998485391696295283825528156055709582173873766752466450802953322457122835368769745018932368077765273783489148069783540200979223148173315150706155811394875698286466891438331795302187335669031962927890448480169062627813762999105826712372398770615109739983657877962347151249527851372695425506142266901142925148387885299712064047324575139708695051845958438588625180617842472835364889883580446229812055126523538084866839349794999535143363125239370144981916392471718682961875412646299375019722454769063360562024728950344399245485961401797016249710656623124012060892539710553341928399577402306759882147236615354058663808669371646735689137522610724351324917286705215655444127721253053785093465895514444002163053863992367340143446350041847843157418223930230533662339619168200216039112422558540001856028675165583670739516398980002326939893528612709361849012756353368473091818057854569859450830394262412948970111233697607597710488514457575658629957271496361671744510983683577010950992103260912551551879766697056091669408184753857912306209320339669146099289416460697179740337630870527232824766741178850413184163231906873702423377359231531533123990650694461342725655058323553901652705352343547303467538869960202234152730021483986059306202827833510938464294226844585081238191611355279495647909869066097502177769563183782325423412603492541829909716503892821074855572149473540498178787867864970559360562360183783409762847023005845309787457920241844698389871605774335511415178854421792526633671035434380195895154711830712958114951649439096209964240205396637386849733521438977910038597833107805159154726432404636824958493427358477464268388457486794495889009794039121083340662963988513181602727214171847934814808452788460067347555835272828785279920596652205271936047805786904035800013434827359932966653107201101471466995658943128852315704087791628392416834262779615608286229983545237230769693376685547465234658825100969277092147489185765154447305332778698904930586850424840264601119887909857506448957445589289654836228013198053641830275312937163182142979306673454974296071419322900495769634230108838264945843334120568396798653978940958993618564510423130993503371887929161291143856374135018670472955837222986531893286656190919339245288809064447356216973775826433792051970277486898976839517000853525534438054911529547508836384843550333813837109253505485687966528808312922122441383998723611130776012795493700199378828884067139507935683709782385926169647308512433155806075909039287442550834950660706468897597895134752572806421043039819525659496319816523171976083401341052994515711966512218123808925002501162535968708627222098124138177299912126990836534616182803384968926517098099231918796491559788172822165189396379705411962671396572876932389687642319584563049793975965454336880219812341365886127335572375038295534956910259199872682764972695580402654932868890448470361552680501819397350254162520114717352872170297842682072284851856276682838231685984194374164989018789272215260907786427950189202352395283359875251655250375539451828494646223403078764726284021784986166044103429950824496268978890808910944510388038684218286240868873449874748739398379672310302163053041848200692323338597718110035986760733812435719380856336168897587582572952000402021292077048079494461693909704636069556801058996698725710065187277330175251681520410415388845080329061672916600546685256312220819777167728836607211123563754325903104297341056220859835172477719433575502086733067963576488079167315306493711580558338866051058698788667826909010036241318192919514269156579082317078875496091686320296810770930887166521930152307002096021122327722033350511980630995623102592494148224474223929775484096484750444393523797442529723338792839097972593433085722779273835915753565978513887911385912181254783624212198390807922574986315449228770627958282231127807866598316837586167975123524751434273181579204652488714986460194524851498009458517325805194023568759616575833490402748960498430060921066272608204909663691837435932923399200286530472907990323968144650625562445721098923326737444509872454875022903634075524913819223326459996136870648996232354325424184068932170323570640903401413663424290120922839932645672788739349342876577069647605309892466266530505216343247358894408677796782018392977088187638644109775614837374591316810872781907213628635947368029291870369078494196517900081699571999230558783950625140903823396820532166547323499826235810046181397007446184326334570786417937645336829591750535156816225162522543170155608281348017801795473059542128509434535366123548155001090616957610895911809332372826341414529890047516471184559393148383059762552719061318385850213977101254219276814728112354273136202903012339878817585400267036393042528647092215367473509566660473439758819029757632503546512345088331717325198300565642649045515119866709432516194944591974713349550053003864611915713535117393071452467848296630052288400023688976494205647923450114199361517541303491072707062051941975893339239086987018628026582398853384403108643061964835855140207868904176063198638991462321176522176639912699272869124991375316534364097201550920596415372426982830889655406176708736924253132313802842599058756232403560940487274584716545975927432259082225090212558742982802313687372112273134699935426535942115351524645705866059026032711954061455587461093610664761979243898095566393756015934937038040893332362972685694746908318533052777097507699571716837432159664948504116237682983123642852249419421043936328987619662414478866789212980325490861424185111142235715987128884933919268415881639399299848762967675342297542516347418769983158375526231681921135462983069891858320171914755192010672029898925198431919504827029064247380267064248022875281886515426867451195205378716871641312516195680471633615353001825219715732528067221994176945028236692032249662627784111063993942380957376139328459545305719040381337435838661869476978137536109438537068571451844513507302996969990787124189516262580176006282370510190377971244311352716576171651730871471110759985180909959431817308760084101985487810272140893649851113085762593297567591901509240920379247072063571208228249858260747190163326984191481723355123240826296649108381230018039686043723131852450289711012326488488529589350455582691369379789796111776290583010075135651080584755244983839635189684125302287488363671481555258085043955713439701645175702699780736589054808400658549758493933480924288005608264625406503220085555964380522252723321940442308556911851669724435089396297295558034177357462701552401500647059758652967812534311253579954377320273048239652332031372568931888126759214350932540310612120889950239205117627489391484017559560719313987443807571225972968997361906420261667252922369214234300115820311570890455432290337563488318247408034051972778655526919706799522685593409209774463977097264995368219612402101204765316008218247393590402057414762498292968025592737089612302374418337299979881343470352220463979450243761609301130932423448160949607181503157997033534075481685866233182818874834006600776909048812841675917084926665874778596089986431516306226189322049187846116554869834881411246504932573924872476220498395959869038497372402653988010710251993218531223165470061153751243801661238534289956312700487948462946731187180078795905745859952365625419078524933956708083724860374549693969962397403604719032571990447226311958077932276739901112607036666335674793650581796904752572465652040899141173904628122776795475542449294614884103469837281677786394994062125757447934472046078481694852242297346241361468626140406376599584302835638641006270279364231556695909587237235361816691500550433396552810919159351347132875656842491707275847492098732290708942239063733598854042595859078130568796282867172169607543344325435996783075752418739393559538337185858198428335585992556001830325935825372463507620613548848589656368383800739335448458726887242924191062223538253643100036443470725296610897427087547283743002464882485425450201128971045147908567172294087854823867078296829507038318409827044503763925963597814628100812761802836948930661152689787600025921328209962228638527689620118855395388925866480274265730012870412999976415046845943857274570180571851557281699775520491289763059398578527338211426968309311625601403500968478114026706981115334989802414816926498668987699467726226003909488554853526075378657615527902374070871153604407558596024115241420554248763159182697743971985662900872287906575678328974383522918669208180032713450639870256288594464578525601831942265259214022300643081181520498218181928821098256601283544152393556830252799020709753149709856862098867445435280650598798611271723871756116809656299141639180068084353922032774785058591053863919183967687377861226470662147034084273051040459927460238557597659111094569784471815042028192531975478354856143645886307540224300110099221187186376026540387071427193685185517171029258248688742785255677606278060828035670687435111897491762500031078283205225313835433167206375397146376492961581738549633721852731658794227209329335451929988713645646894850448681778003970355096286502912739607157588692887315618436359272498005081940880534094301938918304762272192173528597163111730527756000731007715499054925873025947382485675799759937878263500435083991129454177406528454899123135447716609809223925682473342369722901468890783707262261138947614143459494498531979555760134727331191096783318810028273494492425253862951758120173441622002389684700073213266113542180632172821316056066572425461764159628587163667874878179359672469880598410332606257620631678671133833678174030759290317312519347629657851230697036448448761754911639064336817426008250782524834854466330754220056151400517144439607658259093468788179189477031569615877104356153724209209217373888993283843216045321049895105744685191166698284274030425838956886669837266252212065299900462928635107578998169147237258501830350929611572574956897333183051157250969733870034319650433814636584409088900191695079858312526791996321948664815735516899401788410526456015223241626112529433093747245495460053279579591051362434837482179741407142783613167348159017729802355044783254778885609104954823593284183357341779110872020466040083779818754424610984860287834380821884674771894807969187923268286485534030187686283146490678061707086285917671863701184502204317494490786549057942323894101377930975896308152129403886032889216505737967269372815158746411939784989704658440224685553529065514720412022794583206017943497892363280167745805380027409176136482501238288941526091551269302592127456136136648807085703896831793629263606450870927695273771749236886085727946820230552543679363040233810262235627823992162652859867088701853200455947985578224863608325053067779319548253417799675247548054109515929928988445780478456292133131427489305819163710895020010298149010311827365134097947049919484845775457306506580841527971889798027792343851553106678637089748533599003313748496690525715385379551901614770567826553489688456060131396562314041076629239571232639961250229976103360446172105700484815942121991577327089408212245381322264673626044742461765584639323837987995495524121395801867528576647667843573677857870338048196142736008336307780555861622547866855330405566213638122457164239582460515139118300566055559568018230159974449536171495363609461152992380870793648743307533283335840242305546224947719812605655650416064922175948509045309009880190313483621840827878506395994282430799873076478648659682875772846355488902238836013622912331095506554422949631585374025050037564151805690866545120768095026884479433161783282310711881800666271092692386011464754381142267519921614651616557501703113324771444825425910766748298651198622153643421076665808229557278121118775648435941806076604419323573265687448310400076640980962467468858690182010727062467047316571935810763729709492607945779865869736763875244902214742642707575718795951489911140262499567400614011412561306749097357160267210887139202331935117468903533194956660472743290242674593441523406532603128533245202030863840788400845718219940815230266916103467568014040469526684065837721152345922178512483874767323544189979526654907699971674047766761784617495436713810580276825993983128682159620970389841302643972098941090273921155692759143996375882634426549252328176914019874254766623098165722610280159885113556768019333907324377325418651002512126980908014215097255602772465997336375256090427474496235557354162679551681819556533163695627645307324824331714610394576497518159085488172188791326512047411435168644487795682751904140429859912912079704234150837578339093926882380969727186064845552115487499390112795426737777786503150028356580174233922480398937767295780753605942486917979274766182983212801145418112766356261214115653808682562141399249868242350381043063343033052779740316323558857366471885286555945737026624812298827951638251088081461499282939215933049309039567558708423471464330830554651503380268884306681400079135255779273758094723291801384785312818898796185658430768732972269142652323302812357398361188263451690475939861912882258356977645998148110176480700996437146805794208750797969106015255998820706065222938746439010788576786973897177539182420918899559691801284535067524391462421062872384865927063738197547356518234049598094267273601111830253231194863470639317544000901664412521903386665824242739212625719580403406924131160933630942974405342813120936447608565390683371006420666100575796718882268522947781582311654546957303440218269068998053832038461422921281436086423398929851477753196580256702098587284066833891796006384682908389769025860957363593884701201397926163408791904846186638717492168637602596407468772424144080799879965556934896790894258329490180572123505902417222504629202441069759233317425479535930618218263058569479752819226402047931891863541364400362293403506376184644468941849674158649785757041263925325051928900231949457311080143966564144178440108813094075875700916551814194292055798372305399428209520857589403568458945561082374038362256330003579131848465380929804533474943842696187384433410127693191340281305150603349412323660961887513957532325605288033479359847419405148162566648630388798480693219751269878923082495323493393370379403285728633037934460330539027172017097869587031821473795913687010809373116017768548368448875013493781364573892306771817477811965361151229551367009279959312575855535929841645852131764001265879359930048584012993133851441187146035886450151421804904673773001693947566393101897499603067266386330284936609609471834095050577854810944947123912001939847582237682542494858517960130761115326969440668065813825595636713765854186395524477511970027260312867565231805594347425804021636213706551312043128385578579901435357165060148069397129483353416202818209424173095734313066907049777661760203990480365989523658451770039713510572570226702149802406865643184776475138216855922305907026609931496627792337203367559796626893134343231447200506048163908372147608553169655281147483157461981881633086629828102355945766747242625837205807417838970244252019958927887671525875971056509082611530981939551342275754117505637683535792719049431555743374587847624530283154421776740952337715196575367903900120979435675000138832910016873733647435229192163679863682137245139924850057637265431175489995877387661115674928549756962943873873768809937761014222276907743691288085422400897749527116748380970532481767587033524270671285887938613869225219278442053337501241357409571404611194775474037611463099087651185407558591247484142664565709963602660826009753489378210223301759983117338945702395956128715381433289162711435383715588131711196595410409997060297428882489401360187032509245545970366505092906620702095744463630118597766971696225342265321863281689341480122585596540731548674352384840378200998466021252195127924645199213825674589676125018331391166870745142991530661597315028436592950018719164687173303110603795416968355439096590890250943878088205879110561046302753348666904415129712913416819088098653275008754342579188921019102721638946052410509797721937448609637255271280291838541166041115818919580739438728772392731253121151594043910236745173963118540048023686825280264288560535501173014713382433387026255866156629815355315138745283028104080548693438705890533051774618136743313903026866221661519571170055586699334671166596727165424193547665034748071703860704315971563081515258968372755537958317958953831338630364499015870179232189767115963601561077932473728087836204548984988456599666867950428770508018291245794360372738292893246403294563340371497356494187211618103903417585321134451342292528948942786261662854084872086282063207415979271037217543733837937367754808877407650790016176699172485948730249998655845229845533564020617499967341511362373067313696810659606317797931531347689106951874785477583059699168436096987970669591247312610049935322638926143353880083188130108600501821373241244586978975537518097017412541157607481908303818127232443309235598737255863505552309455771834899297077629456232486641270725899765773198043226045067293018461016882650051970257767152340586579319123669536959098646703186957361241876913816003453525887915650508062889195297591454490611631977502039768465241752085730487620068388994775868290213235812755712072445973970694147831358041581424270507337638936668214355025852634569556649004166314423765054024019027519485053915654585010064910175766729892604682426483768365607949663219149208319972467120599134196665249074791806262560929563932565067391773479776137067204809995076178665271674989174855906328016806276897780063520942112561927813348487046597457379217306419242971734497865091962013168478626828401976001959055782112049605345113948194449626732308925168919456623202159311600064415788009443678095402328857630692786177163315596925154192645622110544797784573443742978849596128617713396782911937050968162860683817300819383471032848284075447856293072112893615950614923603176328325641624644536106047728206988359275683701334976525801220424543010814199246044971585635162082021942296951636513585959865751602136814865039315078291335671141240229759639603933673808709452334159983090157157110143342576084681391066752831843756734015093135681654994748615477534947969203116505484375315048672679509991321310684852441679579654383815889990448686023696316398135401297679282414358896574900795817509334262085590530149370075911332116292211826838444521780777808590997354962805032779793283095688206028394263766306432031722811287822789766310803460183511663272641216428312542377709709742385043026232027600995665295848636482733825227331547965494718589635903702330386286653288961755908465208208272049878014927404919626894016648331479320344431901311546082314679127425676297041043935905953935856136999530764140996859634018524617709927478190314201108224118181841417516459741428040729675697215766245786529579143553697338348691985706549671744179521978116152045253016340988659514639093224532485008571693357153754525160079276012755794065810470383737243632699559406922788863315801262258681060588379031935571117266076365460237708631762237047039873836134301231882104134461452824366288421818807171061463895308253572363336879899474322465803049792675218582825022457986395551051374095727633698568560569610379860930859834029076189185405878898316240152807939746614691272791700444581432145088200532545606194881383711816889680743996276059580811345871992700071404290968805158267913102524405287569507208936035823516460995866298085176675378891640000327788460353338153953290847616397358966926262639024480745613392264313676889387293823220983040569554143823958288786692867482973167349693458624905879213744505831154751684122363889685798436405694602841611352230775002363278868776276943690182959619321958438327544808447152114069876530742095666948273562842781615534695567145958505209293649669856396559069100507570943053412989036922814516229863972208457542624843779934350181154065352524738131001327831099830541878478579327472184948686287691888246331035103597907993625166173521201902114623634041822713122804863843285537627273798846901728883017123612353394199775642466257735007778546438403050654533722533449392425221872268841786948117051386207469457002151768132591546159621929779430354819694884729752399178736016547417804217311541079721432218052253194874230382149366049416464696232931897041531030065440742721527169782233732010145587981381764405037668309368754484210218758232270465666883907875384846128619312036023249049895107302206434238781152981433819917801150084893285913230601201477924463747293975796485335940399240060692220535049288609026592897988066900160081157021615897303222283527646781509698636326671723980470392159713409764953314390589683479326292456935160860206452928023016063785637248052239238532034178937906986701587124471390153632007148721858389525978222247933338064137438921274165072489247532783021960422992824168462273751623863081986066625395180690760018238812892945027087649210781645415329494867460151169679533183295727232483694643877717496486081427720064093686413524127181851285657286405261493737160627001269132736312567265500479731966691497272657461382353022279312635136217015724832946238397162907639427016120695962843633897365564152177025781990522094494950475717636698763252476180808224410718939106162052281609727248272294362112315010458223626279438105192401848349722195236058512871910154522076591087734979102393484237444946242161321214694272355399008924510972584189086743899913732303442263609718149638630259823607291854908251108231086011731900405981279486366579055420803053575993157730879128501501889963985492279561659909687773498019870575557823759022633453273334182571966630497753914705110508520199920252540861360089663410037617821565054664446346879127816030023260619377363010440155891839656352516465910161991247555836469122637241930246664616453540299084730862593089057639330972956965036095762376653570621049305563004364717586725638658054312361701879554542166501834776106910899781363608683623611367492594538762736162777408208827916056172399449064983345903643924760019306884841983883788988117187033514855533287592920991637384038071644417587988640651867582525853452802887451300888647130005155703013968829262151614724009707437957944751608859905027695157347800702129502026349618817670422071727203622040871448773334876908071835213787278777425579286252469739479354332906207025975263580446330066469200059387143206932735058878747215013274317024894531772713020680354950965250278873070267450555784012945485837155837400767207225386342570569838598890543957269459053741985237997364647891756991174058627662977120603910049670568236204695148434139431324758266230690503671506291878423751974736654693553724766064867054212970254621767128978545613775053084258934463404216372535251268198483630179901267745194527235797835469569718840875470892161006497674593918918602505264684001636346729588486630174851718120240440765133231640578392909305811064562843098884522273136332841955993002788825976552838675113605944208650723056966233900081303147275979921624316042449610540292089501394154044220053241195184749315342933358702240050178339458671187238331879041018972287317835202422468964779105474443646433987547761002473083582118805930701194631232926135316097186486441265858875613033877272229213289346467668935586350915552287947050391747450557912967497068760234110091650411668817286027253858428397926789139973115705713529311563705783278531061818708249927017850620061240406659190761810861618181317886525877709687345593977402867850602691084834485729129492641327139254251632035309161498837514744882390449001724116631620686887366396182884964951892767569770075218937822012502819987144950841298155768460350124076504231452440034297451994173404243372488414883442816268763227456694383828608693255437943903561064592872464935880637126967953247563556293196740947756747865392217544389866937377116466953133388320989648189063391976593039163278048122298917719689372735967523543166752552931838079927795529306293226554004163097000838569629584730784905974550579073684755821814200927362611385360242754724968339031559349669422365068136257363027530328360672060001711857725376986154917241408455370961366463525655646843831468193115009057212036345074403709432197588854060233826277997002578639747211486382571961309586750439062355470647813502343653184936199383334531707458447038581697166870828363531481838537468057741155611988638162270352387515505054253723932766371394012129771971687653052826252098228845421460158030308890778004025231230639974894413456337158985595719637986648382818465390158025228680429875535549431914451056821055605057767840933514961215291274641760722821633579678487200411680357455408096352296906363466824357635267663175320061605987778959727192493031102444318448309696073571273985442301100674311444730535942445718553372676611712947850548482628910865415042622720326738190578611180492448705045798631447997367411788350231694642038804339500599571005552666740123323848562209826987188294368644618789772459495671051493376995088359578681797508408606430688341387777637273006977586646719582667625963944947115612755103994250916498563020055816785904948894839378712174545693171854223854261406457979593106413662343792354968853797655189675217493103401131509141830810162095733813033526702441314475175212920379499999236887879422186501710886505002383694368955115319975122462949370178957581513057575291561568399509191198131818634483297329068270143600445952481812401990934599055716962866562475515750375554630785295780577960036263032865211769838792681922498637477547562316060311444415903826313150209448142347208403083833942812691162076854178317724949361185663499248411592590859441932593324484646092548525693181011166086829801723148616848203693126620839645020223118962692303823590622342906702304035130244987461522853136004996038298795249141981244669980734914901482131330644133812839394100878391685700065848485137772381333809257806333049307124885428204667756890495310081684428797906852243183761644829756697309300496001450305776148472021101391800742356393919215865181224461661393319608918546619336005224986151050597312688812855883097056368535510270110643658871461519847947216083407688357792648300919452582183778049917165452578621282449624052066031641955816058929115818436844823823406771461713750006776615977517902694886886599557177686986873160114176787140492349198312693051760361141513505550749506936254789224391675554422596832321100084476438699479037259726353373584939554933205202681064234374309836193929854476800554028244162003101955597966586072941520323348677614943084803825193563668381875651635409707520004017195911837318985110875684616390782307244801736829078394309591103225164037149841838701873752892600087117979564071124475199607102749060140914962857811240604358818476712574628069359864760757469200685947104625700987915474515165407613335909851754645980401182195829100575133492898627532579376663427967437748203576333414444016858410362110935388236743330922072207139022542601201905954348354869679073595424828511258443937682970175062014169405030592169751368864459647243819623407782204251963605679720419535179627546321140584995563954638245533055776661171707492639802020699689981974560739777095796641071437242181328861399313122741208550037006947204450567472799746348497116240572654544111587387984509724135295306211925701761667464510845303848995994416326309928719845654870314957129948422381621016709869658539340136937489157799006876157897064741886514672516790637875592502845495277094375393428091520286109367097018912744640924767420332475200449280560548955744085893023972764041229572965138266638372657132953417688719168460443839204783499373142880090635137571528797646589805900602157100854936427093614697504125640788133448032483264330618767933799802165155102477828807986054152185097198464250938039639028705874875019156600567247993280947795229763586316396103185400006132128532132091698021903669566707301387126216527254787007065626572530068223667474470870746319499626697011163795589711684822231024540576547045430449465675708039670320462705324371895462060695259042236392043679599298298218625303503692127287847669661313412128916009692138626981327993995220298126746311548986626839099065987090243945936098271705691381738332971028263337460082643429329866872936129039539475467116522125414985074942203132115542338437183730972464274617628759969244422257300098486655728990420471210649711778535145784463520791614294922402528358733685733581320504706779083015898124333282373413017080236170188074930540185136374499777651161843451043761758902215760889860029556601713490135959253008576813395552662027222292040008112421686304110718585762467623385060383375697301147997677290324731288005931663430764791823880350310002502320368394074630796771352791911523144303991440166903036401941469064654773632842158379932722126465165379466057399806958148124608760098915885039671546400382917853522846389237390297430763660828294094605604807892402926869393999335913790070667074794463669732865160222444207385534289939438110172498958793532863132685526374032040606235144315577782103404794612073488860265209531208915953920501388850752571942445534826994762986199971168019598719963009013741611256267690366373582860264371386510527119505140735835837521789201921840900204831897867938678408683842313658282872230264531632049225091084957823623483848231986613138582989264668456140867567783160404538518141817385401960162972312198926176663985201852313211383212705943181367812820892692560106623865151350673127123131716876437727513676041256297028661945974548426355385181015756540034146092412146491171746431722172674137289752233897834348229663283476888744675052974717665167232637947982049179233993615858233787525145120391184310673742951220159095224333914759223930603025300437018962710973349687728983411026840167252340317025311736132880838985198055198965446093854141412121888672977864396203779466478505563720383824197684503819008384394269808677783793854905962856370625052279959484245883126448338034594492868723603375526062418260208600669637795825383253234201295325317527822404637549977585390364220100539822901894794660222051173916500482040635025818855431218966835111616282258130239781434789699931572855698105252707164058038430587518387157780536420329926372881567485717098414435871008160888830904525040659246150593501493387689065245930289174609382427607078205641385150519718081675863561002821658002984999325852645503404237127341339851592494455634113583770963529910714127580236630625864748842805252863362299646955850305296971445111769703252364758274114079270609829478211112383956407896599405220461934067429743019143438299809575526483411058781435520196760807002488336991512401017166066521735317128863512829055650308915033923275659042252915591707955799882585112392933836694814252800543916757804549498136489857240573664632889565131443170734187486842899402430323906847039155182250823118472404149798348915897899897935353087897221888004091175298875835982699734270332483235925347223821616290138349527520839080585642806019408415113509874981338230900688774213573803862253742586356838853414590245535409245619107609565314317688084648975135258111691098313745292381382879457288993287258016417678839145758464201731384440324065521911116646451637174874765216623032759089172626321370735132810906530384615371442074541277470930886016533092989132407821898371633445711334889815811961481681998535683247691111384840406861197252748136771322273992535463072595166480870246669468693214540592098540099214293716372110634520435816325201765617244929652959006315528115577030859498143357946708543708129510817477484917166423167995073431520257367151024465105168892634354867257868333266289129733928668128953543516806986467584134500873442583802491994122849560555589422458157593151412929404388476562217022934812109850817003465510666941197037734751005282093793180206923348487332000007742355865171740384776580665371108280752571048666538368315657935852870725821063695685876326076752093067448756776007194652223172646857526139840592477617022438921188264703744852717162011242826027981349978185197863103985943387342729823949656402678670066074530903377677254982450733979711454270755864318932014866067465364615741333884663821948940671944431908929798556524709751991629966026620581426109026795455518203024155431913791099276149819083084630634858268441069673630237375698737412544386945520595442691778056382645018131129435244645354726929128556326410801986170473056179532122217565411236699591476600156951888245027391355125368338873815253120056015906839862978040006194771369258149054794437645398245414586268455799266433072426502354277023938932043879461932742071974229190510132329340706313452416045946366976443973295025681853093462577168617863496469884821208677484191170735140347414455749526590616747754957961393785578763654193037177814212784878502214798975290775693886100287207930247242160768323606210453178459360984765412260877323013986640389181691742053591503442800789403187846101123579281387736701633333084494028581394619205087485669800321562589883741036299381943306029783872741440445212405460177493108141755904617438346508879426956186435601937819816070598133773584896841907286689637343467518347089605035096648300479678069951038207892929483672868667936367732506093213729883888868093646877135441987889893667762839112158808981268781644347731370684343996302947413404302839866629976895011212739236402831520414546795496779379476299355147226622725739553335836020892867504863269037374870538218008759512548547365879472210756290721366762296612403096310723728565985745829314987887618730948065516656354380395793017840881448768498219700097880653070160255094223412731177944223794366846346644047672145530070113489185197943550514642552077145569097860117203149351772778206617490886128737738420174789019347919568786186903096522073488557382847552232373737871675400012533051049163459553472813027230678659107814023183318861236912232428812167092101120396170573546928742684858063579667373990622780861085446054257804900526560155472713268100062776666089249272056477753234698258529985235261688007167862897480561084329761694867623263090571291250031573225924746812991990513921526819829430123795404449316770338325095719264219675036310950866091487300971703159238835213372470062460455952314748878567570746190831534957831143760075885237840392044292794794426447675707453356717286719770328003623979075835648637236505588533269107038624191639391705646734149542506426503878725695104426774543584435408377051937895930953685661292436700721125830127266601050057806548653783629994458006438460691906775775016961425545199232476118821170619023914355365416556277796185905060518559626854170904144130213288262300379133306696472435215101427801103529857407267162107797702906396091409816673789557155980226023792686338079069251246774355572251677147053012593264089454792835887883417652663889740302565515210031219596881825019939524238265165259860956101903585134626026725342125069195503702318599541800185131405587088823681695921055578362489880078459487823203809643557887423868148615139133236968601710005307272051751514601064170290928720528576518126089081201691720454884044361699810205171083417956255868243658063075306854500583311631715859436404699218878049871492660145850425466576755987119342551316182378939690031531821849655523400375844523912694837244488874766132567076231618253063862657874699938221240189272401610641977799584569764304394603956965807469403016377285871162048721634753905399173992855432305620965842011057256486854666904407653948451284197502702760474974830670249834935791879266869163381860817990290842716591376045270125117104927042583356717178283884964717670793234131157448837707639223411830998982549220989161609156957588156902273674172367254185453470895326715923925252635774960577831174700787751410370757793018267472780707290669290462175057709017154533256595959102038432239486122370616438582098893050219440403714942115711538828889102955415993860827216910659522251402786200573060272629573412649953801724499342467835363008363050289152276820220982194973898951171891252613208993865779748922502797917749956630582178052401762382269790487474321225747169242739242440886154142416555988484564239169931050633731304468735943530935460517891478839691447046437424296450407048191878927882390840230061026292089679546874516551566668852248810938476542652406113739171531783458651991579300219009174793872913382736507298376530595656659523781298623098056111818655289342812224142750895828645369110009356941361178645267634612512738317846331451246425102156922075986786534921492674857505185091643714648039340977702905551233689347353722165686322913232221967782336109777908603235092931046248231733050374994315554184096148749888839005300443099244829388671635453686751544748547470538286572083603544698623938776067238595581478706407560750858361145034604581166115281286921728992894624608908993543998823139729721228841954408328029066896540598121770375261892748707432793614267568560287153999991401114129830458533968146948666107024869062992869244175590195456680786704650016352185385689773439820601272607730870478094659750842594816409203315481249052933211326912502081407174629821956024483256382943269423292966684683245387094700837557584771925132656120748524166398838562640174547434263267964068603688006029533687288594333569483986701985289708927863583145210300526027582783572313356124674581739199371037941108246224378223524219105672604986675760913388569056880427921394007684563034513822556125680329851565339854669966712276528183090716236248904767156190884047919669149266159722447935852552627944505565981217079439919367687460480212893559760443568520302467320446086392935453259458687208798074044399751175504979683841779395784711824891703112033359503778402725133566978172742071389022081560369950713107904137982620320523943301040776791847105258200235240231249849217498666999635912699532604357241191188636719584539399203975921936037766865671446739597190970412890247138897700468465023325515180047500808465109217207548905697622974704337048360511263651259289928198525088234399277251925957647991650300576242205576625491654287907005036039191158785686876252003009633781404624209771198011987531827585789654162041242321764783605383404398257935382416393605570255508900333625589812342629828592265553257369054310864763981059953697266295682624093909165358573912716805973170895790324828232226700221332577864072649876075509200893290266837109869571133318429945470813753465415238521939374656083629323782489834721887482915354959390668099383292176472730043109394137456468069901019965751618507540411055312090185687146331800430322744351065936767055910901772234856139556354812775715812974441880152382737675863699147049710636844587978194367757719337547885823073250698897684608689239167278124991415380936351489331173579559236427484660981036164075223888637556684852031281823064212398047226757467697064810987181376597837747079293161484035409627943373028407280818446009644860382922055501776041470637549437109074163747618770788554072697243450120022587926058413448458136262811281973230726061569541490515462054084603358968237216260061400020238668045952575279220825583419017673386300708527338681627543138669785218810043453990657218314274600249179053537735688015491905122730282657587774853218714971736938931070320642733737899088241254781447104356804103320236337638120009555006076908739838463531029048548928595613220200100978649205826927761954125362044015898917948405002336486931438722701540432927156309084049547206031260192345885713098742945287252361869314363856998339236280048984719267439376840330140737316083070420974343665276514235776850677796697553826295934561012352601145970658901847631894092575600250870267637500517509954623790321990883408711351679665413289181669406824481462549982396725063356146759884740113285872238113093223985472378232569169811528628580678789171569268745012491393180409290891221020525272062408318048376805234408315666933993199249191585424350290315560266782180220047822828698642760407065409058481430176713882812976813463683121580465195397389011565133751819278680134633192287523317140061681142435508422946498994014978385438810881456413991175239139734410037591102943535019455226191417328522472483423823080105575602306131358709196476476897799898169410125312073319483059197475218779957648679985455348875381602302051927041511004174599961341849455903479902859527710498386866648342753310591603633008607311802933801725693472091428145364126000943792808863413975897081089576886770410384442842104624698033321825867854495573865325608667712063987110237139072562381313293816352246519134565461266104555004844454801091426213303678097913395945993749448186325676260324136014026235656717010865017696793666509140139877102579330487850749270663872428140552935641531000181538472482514127355383571827601910419665642073825519794263101946692775107675367281703147141116661863418692985716158896056923421813795468613608324503569088922090527563512142380813774666939601083525225036865481634636464557893446930651582197763250349691383496279767079236685797713618140035779464172902931020463985812169063604112019400043293872978672863355422439591316542799182080313986008774330015658989695394865622940286059109080714705387848414102171376754313795376486105600557890853464636875152757872233437937477831808228313054802494130014571421679796489287273533056306953525960896465527934751899040241510723427442844397377470247296520342719887720783741865325049516859447742537078148889173781683361922316427191044803936332658299424839256163773628269277108142475995134413738173251781018052932210190494717182936140271472345729421382525803852755030250655474706141472677772248719036769085964274530167950103043985644501285843787224918466746285109345381466786349965285759402914146237443603226269788517506910435030465770609903857776273431878908315408076053787562812463889017895123532192654066425404871940560897675311087747943272177248434246271887099261382738781075574090639829273459856454134875073177782192609516531132615368565588315576781857484406203152279875377611926231787557622785029100657362274810811491113284017060470396353364082713401156927633758780370812710723856707310640471443027943484162321662544899087607288547148943193613178319874984200674793341772501930350511841203473715675026322549132163132195023021524645361107551157829871800459382939249677530361366693052470186584186931034408766481050143804406192198947892912986097018955446067254184474897215274918578740217908216526080670582791240627062840035752683242462994808608666025177180047757166346033742122157732888908289796103897048200167083011128564262119595312804627671702469506012118747274187858380456995254855775270527847968261469356557998903998887257011297517492672961400882721997492167198245247610379350839089279381487011944741937533723409502214990291457542156033033778355995180001621152637394064377943914229842170609859832834921697926870601237818729916242735930155576193254061665158310726709260049009401895832814273832436779179850769771611551691927849301857348091586802994523449290400214398046232699701343317097967658294764205947086320669053445057695628399883666871108336929488667245314775601788296508118668039787727948788716216338257265623066874121828101807352022589137440502308339051886095084032094114818503193654770435435554191832673033067085017895058935940185550958271113350419261396283591220818516667618630901739245502452320541635079731467877710302582018789236290000513088213816916763757818128722919503712518864780551012341230060446530386109745209046124382927398077810520014222738697958731619558213033789423772515694919761297878357526383915766751360450190701875167416118144572206510133195892853390416750764808901571212828120651328921593324343388744102030896983477233741316874848738555648046379424222842691130747370646279950216447057192924733459380601089844957520639340866836821778423190437572213572808864064535522772277102320397420282758263354000750381788933463721301056794902989805488060968353499637156604235752689805517352213424437298595939044840609420721435742894379530797336730594881231945955288571031600024974853079506382714713290362024948440376728370329198045087917826340656273804159055047473332796730627662205889027031147889641819848986269319393554054517933354149111586626964120886193640934869973570009142118827146635433541138583302823127685883063318239660921044513930859148929956972360405969219537591293325525274662878821829180261914808079434012909210302216612859440933245965809213802689291590156119961775799616564798752913550438551481903735910819035441328824050831702668671261212815958499554740460239428529174287020184023492026366352559746040178416106642592823907672493959836383798930058610828567685951521280653152462099401868955776833894809487089560979399634042844134195415341565778710629443960899156146552169612854107191522476084199961627750738411219682116990128464994987856738711762861640392765769697720793953371898219394624025386386625344012255394207845430849675847819523097407397683133292220956251846438338594041755940595378987367589693068404253810657770737524537787453159699693186954076416857139526531717709580703781192226364254465390509484863649771007549583765177113105018099469962423491331965714693705993409863580913539811892589451522633410739499352702264651261165070668664694994540043727442251462965813731059088873536694057034961957002029319283486325062478077640558112984102465865231304514269424974785658835964990373280676016730345129892819828781095500666915620403536993390743806633316698432793458162018763359060407005717043338427898482640719412656652878794084317904608559798401099629083541276474144343249269434908573861329756544557825840029822378556405954109154146575638892863455752879027437160073114375487566093882269200987901692974172627822543027119188519311022279585469978535201218210170905170857291307071674968136988270377394551285268315487558723489178585215483084958826301142471542900513104364783141813089125057725113669015097787343030816467789698919554577029821634946624534478365296970767962399018611974289733825031236349981594797878030103200077923078376474438343877142567888869677933814678996791102232492255954728899318182093799537500280078608788002894530412252966951889588422267373297533348213000306238247734457143426467697266298873052769642809785531380889644466489439170272313202677349023865218145958084822036195121339544925412197419387334386444342074970635363542794422892857568794092855164570763583355080685902529799362417799563234043273940528210559127127133569208647836079343930960479537040129041287723673858174231200786413058730592893077288258944817044560914311816511547221187321733454873598095806861945479442942380769911788650475992689843765255336466243033613987381881374476243029492495298196024215546102730838868241663780834090334426281949252784082584306170591427620003025224014366576960968041450348208163510218528846322302186669412239900755480226953673921750398961269954660525544577868768948114503514109423523636807584458450471219926143572510496201514465790399778524499205447830469968734634711592770899461884218871364181907930255023683623172471386647299269554845636955130222870584796903673909501930117319981535120472547692533589598957999678957620868335631747954644327116751297924794247182515231841747339072855814638068574587556616733891977035355147909415084751875089945444483019402667223872227780075305393706779023772456704111058534112330880714856503576055624997566335591917808877306448576490040249239044847549014150335493502408660342486876053069524806128977966185436735503500682875200185980183484779260823713756439717107648165886762586405227138833404175090164274623882872748096696722626765940279813735136696532502447499089636567257397102228129799905933635429423018128160352245487850547088949332559040156192086473387064511183477855941520920832987015880041441895716234932919764883820548486174408154171864377665208753872761045262070686450070428630044711484470724246968786535852457188715896648588707785800954789107922583334152985887435435607578706631321652963316841305169482996842623553037809236677901309350865976026133812908425627708087210851067176140325387965824476760099095928409121290679091684172036737519211569003724811740247173608495387404159952723279734669162605581964199887015119126179879694373220179891408608090699143028132605321566028452459985911649217616823023729022843065428793598551735755003332889689816452977244296351277788473362633264619610632996674380302257655612742711121909569321367331406817187806081912172894715293876212025428121832012592443661147418017681487915024455270796189888077307197060594027868865728775037787049334720342593379564811792849443722389620217672037986690951516840111119602008409806653172303474438586859995644312480933224298462330962615362038296898783957619034940390764169534823313445730600984351145771727697982624573218014649624739927407559162637744000091017646338586542236278174406759508834310007076987699996990101815646795110777705471924363346239798285896007284424136545389466286123788454208721547909379223179287918490212920662831725397376548715700929567485409067861007323957679563894974863525835276822785614928593166326999223750035272053812269838315326732584090339965729268243864133596329117943994746613294471144961690847206399470335963126436375580596345406695127075894185971871210329295029232990534961448816592729576048004905511167336834793183180196572628761902567432822577915968377522188318115650555640612142607433024689951914711945249893533218314477715616431823997470481962714216508594967596015055667269148047897268931847055957286679874704829145014176733292129473582049783857485004846453775689797482727372033224523803549937492476333984163193495624584927165234916937604717912218970118191136254775732734729620067813245708603211199604803912840549726650930594867361504163077439991841367873371397119130005065946128341556993607376664430085155984977516086149040133787977047725742924145738861183753908487307982653597130781193521000142126852437772140806819529984721960388619545849337459525997122803402088025868425165601457581278399036009956163404448139592478708266834265659073766256832897213758265627693752425779946741015859798453454961616033047840238284640406976803714387602336500880915742085116260840180170277579296838993034548010402861898639182715889086762321281088471756773118864172210023270609749649584123591139813887883716062470072969380330336678888042547970429288268660480692307462847813191255481969640532324617837496967104602111681695800950532916092101901325290128296305122116266884188326636120850496047308568550583041174996917074140813937119648538967012608966729754084111689185122582748888724588109010517664141640083418202374717710380014193331014874740232506248789197269596332411705000848941956727679138323042465410584584093101282771915899430995439387886835724875150344727751790804167854459406692675855711821373086310413112377358602870304875427864197442332447582607946679867763066854907505678623404290826314682920370987980516610211482549593874501885651942108562799560422880136317354951666049554751172971402774900136002748297226091659299224907652630168299168247038788921687663921274300914778755962472929332408788141321511356398828846062303747312653756717633645806495419568320794260684802306745808724608420524090159716371708526528728760536986272358873661278239310065352708176030881473125830549698253078689248202064369638355751590819546460394718740981447701467870920891374148019229254919099978969742818380927000097324382619799873139490893977442780916661071035509887558435658194214544983254204310061926880960507824909864282471001160096002843220321010843471442551275408510708632445852371007197754158054971148529926104937171586489366520184652838703800330325945715506821337067697949028449497894625602767678318926607125057453093643969050354875609302848225263116940397184755301734689810165784599004981444238181439618593813899568905915081051916069680603585708274486852636691098407678446665572736856454767663830110217993459380488430623543259430745058680178701304870311787743309482619851559968176257424697505075223693701788546181265372552006541594292855654705985709809464492484585055319904853776681307159375058527370244146098682010572109243736778486169818526403657311498650150966085173412528017495784434286395861377092367034961100088157948478824416149821628840391760430446200617138824475508086108481911994220648977244532600894502639881131968899640459766469641560466467890255575229132428697216710075816660024371240945728090628640696454068561047146360421564443294468193322288307369638606088464859944349303373614764832148562375012136994461521997655414236358098079910113124640639445220085415220494181950640402153724842926243940617980467748840436840213452218631505244433220134905840540536338644715370225767181989105601815668779466976216050289730437209196869707200805134562968699583662439694826355839107314900596109116017837033635981193691335937973815426549852934653449764811297864888664628624390186348329018314709899268643539421169092934474461868587699566113382127920366415546118825869413666368042276772407532962113887972354388957851634334506641886438429438350948091770554808712830996285448933535672661682140703173564302748189501174338693383941965071751689544702160142175209212738474128603968563999467847229331419440598450751784187150807301251154572621769593944419557195951267654387799860970621978159361253632642350167707012103076846188083870111847342631755040165587256097612180658611689427816744932196024392199649963794354746965972952717959161135107026155545373801198380584969186979853758499728121164308169346458056207981966152452353008847772568691344180666285752929617853442274330793597062667892141147279795945751877096963808423870029553753274745828505642485077062298247136849713980241251140708467120422319294969835016240881950363597282200416916119511168053492046065009157737112517334430118318618045741316965601131516290127628430861129455498759609720407331991816226925824546969643334987586612841125236951105074142025866731111741462699018784718814276035856927374267671593015437584134417116240242096295358462780522727541758842166120225174671557735827720884887953831372969059546037344233786726448003258392460568977196494959114461976451140812438475756133386105626253594908645669070369713454213416535536727973055531913805111260620203326821854913368265488798830964380288056389950801739896862737347873509142758552024893226110929972197285455918565989891588208725151007555781771428806736236050651341212446929199852543556972022098235658123669202502573949869119731766082962004513380894154863871042971025137301720533199793234563337749534895627326123709257265561674556659019657977577447327831139475666932266383688357415933457381680807174878148232011123501427446922491924869501217805344338394425588496073762416917304638742263845455101251346271007694847383313290722510678409318877354206513845061595284624487474825562175316940945270300182927708457107309009797632740933254390382018511194256007272817470841833122471564346864240412986357149754577393863580606575221182475974050710948305247072359005713095502322684929712041447906835155551717990734197524267360344852143337307151182254759144919298748433818596354891856437855421340765756788767691876236338166646969924582788955976707916266934524614642114449436770245378811932310548287201710009012190065004513216109336217149261416743221859259817118836370374920627609282507387067067145569221955692081618783280563667286529572823188803204001586727388103390291118058383682713462686627571884318045857576948938681560857752277667938409267982989759681136368123431955126042917104636768184369315629935482599835505424584151571130983842574639891905272609510147609552950108623814703802582135338293845641147286907821395724411282192029404208187733413406906952241535977465519395429317586339776715351251743451059247806519601486254849840709551988555828703627095387666477250798608059698164621060583065310358217885512384520554309216680675874152920267406622761351194712556960971970617762840987945172301068557281699463300124468083305968772013346662700718511334566980479385794447069762843182579070588935128251633467206699116868252956359354839519184798676517983564711260873624201816259801912603722876724732322475646137007473705020096120460080050314965357522372945822297182805149151799367462044118337513068974051493602875550813679553405199700476462051799685578781507929743965676384444522722165582322192563874229541669008451770096778879482611643979297783835817195057563985599393916985849548625418029786951594744371014455911470531193568605860510428639168285889304658633362004153537509618733777827680479849377280227286226155560570020543058474475032565856195546185850429265318075481407556530779438046864058680071976610126307882446352692160122802175195022300112957004216124862553934404563225455283367229005732304153886777201470123735656571224912620843604123475407097627727089198391662512273619003658750121685526921984492652953097571016175759211117248790770472650050801731036867816152643676506448322739597268824105528387793019857336789140631006130548296068586984922365410397922207212014460358386350551379554933573351730640700762031349115183842690742609669775979319842803878301692687913969760789163833428020024348726976659387495868671816261979793837286380206005353244993318826207882797410090380581841979995618902679499855002794911776950398369027138516104097649421440181901827773063795831076349153557173466786550666739812070831357387418052114860804694214528722853352787581016541483666258193504958215336273219786674267170225244736479289717768834265561079072508209608763508094217086001738262400572437668930348047617316131970207070786185040985593804016783359980143773993248879288501537746314628213911670157184269327943201448627718125435053541196696826965315821633657554258232334530720571018353050971524288536102877265721169287378702856530685721821600995655503215478338307744335380527111998289881475466488859887797183657062831596449665828777318404401769485978702799087898895968925594945570405751431094189772812877677963798170443472747858359766734746300479139243576749296338269453643900547746891373994880003279776204898746250598500046498857299028355759315296229861475843854950649156163104262719609451618945837370661103942324411999093910724615120951934981597319735250376094313036824908647838800874286724204441809738464307758554220766626302376323087000750290580825514062867289149359612270638830035881473423557907016481827770463290238568218713685516877373259522497666691153780678439570727782797778984603162138314309591330589916044715426946285597127811320606790590676998066867496203755169260303483608291975457628279644969466420867202055411342287755051374198817677759719037919105841301921996731503856656685726527129974945195319926865998409639601437446514954044068294172804282201077974498183909231100836111241865847001792670314541731866410316425379927358262666582308335357654847600585236694595608059874445612546540229488150377561053368950961328499908929341652431127819958650760518547904852309382564693298143735798200520140194416886035443714796449527192676783560966071232148571967116943458470557797813033277438751982094657957465829613680131198242495451690691301399899237528029303159185617932924223945978068980320502682185348119721251758672995763460515906234182907921307132832528669128973242006976170256277999013650298338618131484808270541557206743652787365617490699779411389529095356705943744093890719059625563857419977400822875900289578320191046692669307225293692893840402025986874961239039280692434897929142293967027560040517864150745281212822354718824808229982297784624418876460542847951354591267618765168107046817976980173404216533872975833398382859395413988921888391155093881568298453338490633887363244653157123178537223330680306651212910091097906647801353497049148097904064129882161417338557431002174062658132605075172878280315550136691670397323794068040472957809735207965544242313575040223183824884964403631803352941938400844062441038761659237249298902613364807868107138885897443820544772019892896290630389934403007794289543972034798729115640738486732277208222394991261047221841604783798787429449122491196004734437933760887940244547424311381005513820968822463415267662382225485096782019738896650989725837925112675431464538711746518546298507809603238768785029748378664610184496566900888621106780024343079445921707554845382357189905081556587983531377753350451461529172707576169443292289384508536835464364514291626417735975030429710173259852221225291285765723036805407351583782294270352370504891451090282910292175621092329653214736000754894119220258562964755826928250989897208176998527906834807347310714653786506648508253895747146361259755945650915859896802375922142723189630163205236752139628011625262976776782079415327875199412940948619904366932945059002379752937632332543881183332734565967469529765793148082661963728662778462391002301995945587176762244803881863529448498936445421439066798071848632424760805607424662752371084143655204904464553874033089291275873203857577976832575217604416662947716013197017540384803891869751063812877002653521623293567078060010396211066543110804679554071988223365252753477967220933112238128530162984277402558038961348254277308386796597124164265141276039469991314989569789887680038059228466862382110132286758639771393708288553872932988979975160454340850319474020295177614892591702144131292541274057836963340934338374840290516108298488405051228661796809745623824535393662862131004994518234138072514324846603270102287840091093902089391162115377035620634885148614569714780066992770434781215166748353123379914010746840068594000484405973236937975228631557214530977940965177568416754962948120653097935345984208593539522829618234446866371899448245810725224091213261410086322405368480252416213980715782337713145695168330759292307968966342024166923975810698111979108347329775240554401666857856489847850964668955214851239123110885707632152443837482282980300105111928192280007089215965349135894712483760437276910169481187322633016816222256191023726923586496427485155225013149169298769740803705117008270148994215139697945731038253043262364332304741570428844253356786869074552403949929810204804413608788451646754508673612995132733415017024256869903751992506945943673859852313965662394628076308221584924721464998023280560251961781686102068874536794740894542598635329247732610569821452147764002629653894012911985845695717577962870629644645164299465751336428899947893688176857764430102639551878664226828929891122842525669098465868257178770026009783268154170779139406752473933045484093146235287823138471666625166582580218926789883541186775407521502176093168365260649872406978730830908737119413934866439022333425557590536081605071601107306914215878568252141555001401842703566931184859692876890916484353367812088095547316057080800927391533543251626066939465209475971116272637636334603664256225590213505390610501546323431991650175463188268247317654444465491737452519125995447357673527291911095841817407283030546335629883318097616567644647799831149256291033274874022854089259664943052824932146259690856513653946421974939653662773481966231304177804164472240530865327695743588451937931971186778615360563708555111094930651079946041331737019456646513057650378028523866847483217658189537981243794599645944855831559158042620840604520953468148121509726506953861509547147683537316245378410097225255093330424219256916121810912699538531971067322218118166502123217778589603775326217061028171059476656850572694632222633664244586437976836284172937926474155649923871290041258816329291351951771968202197112678631797298366325770592793482975364074086669805162275501349122990913455453355430374760115742658423220418009677183846270899861994193616949602162222837741082253432049593337920031974504683824330184934280614830344185667585023938866535946140600781810865363479115874238586213444151034763716776785161384541047247828675578409720073753396613988133480769407335085879969010712295357945664243684611412199786548658207643167603071997919878553166363179300660603062473941470019527050037963089960905626509396632212594812635530198266215514013358695952677789065355825857883040875978723826913746682244588317985328898175655348855397938529697141350162413404707144710529138461114375825318746819776348568000822803477128658950796634129549301408537331013619738257554443191384254906674579437153299905135287137731633664775273587068840000954928343959703594376690423946522616826484731291681080921241235108496867637185568657205530568345937341420396455351381415122358260342527821376557959961362152453850737072294156905243527725740502497432205487535870229571933988467837859240831619620224530953934976636698836504496791577624365951360769137981012882514589832144314297921234332186933191754540307216672904927434833110133614576297755478222786035960881943481788307529834282732230547402307964712920535695045868255065582288758854052558829281587084490705480931299783450044761452184880722755530628910901130611129883057736572084552759432293475105344693643935004159871143624908018848952721114533323423778197235629456477350090116433370257762174872501575846616489547516172634764109637622155264901691286828004568454414212686851801138546760895496756631539415449370338394772828737837980816092310156787642660231747392896240548937636020758896802770720454840079012552617168796288439539984736551836733072958152885720288857872027736028985325985716570192663485437250896982496339042424770725132598993754249561153624136834735697814730357867197684616509410135973483908838197538785695685990833370527186828571212338870345472814303806504455317822815417807506895856382687922909613264495790281803305201947157233234033393941848516526567273257580464610859405437069774880403344326221631644153229416324020898787401792684221123697275634206311169244184863325601368106868868104382829962453776311506163884999393162301649225671251866227355496867154789276422149871356597454719081849102250370665577386243070970089869235312297552570206591963223307731051470760557829406450921508397006683496773041751082559909898306852250434278555582267205474930511787908601027834687114267934525206622146456179236099890767579751256050868065017754778254779176168981364807602039261967365590873090998067895528638576671818406019531155029987608479867522679203439756771158037784236026790408175596172319231806754611849241030525082530998046730079594817307165047284864123129290779725056319745434020764089491378594088407458430956451521712319392415367173628873152611332790760367086563409790410267550474364088521839641080729197004698689156322591694246188182831856528876168292311522058392193159783206725378613138644550753668450009469261248716113777344692154046385596440307693485218637889545418503946590825871671447917838468716205310924046964228811224435844410861540920045731432656264397673383399463570175451164928167240929514371767621850622521030317618039489758503043183056027149600894355443773845474394011590227784454775505046320025609460637650320793077912254595868082918079168474786769625785464887723848204063234867442354064040858361954020025395937731183945627100922028108472408442836470007480891885058084194082510403779750699809287435648476103510405858997728021814754868373030752965202903070640803393775679053996010557338263518142767388698564839670232454394131642806772618380060388098368917661575323105735284257667909803290892013490689597324219953438103599938166675025067400412607866372871708446354394991317497281326986028424899560360499535603030516330970107787982209158539345377281763594498287971555153444418568285501943583247338397377148089328174894476864365580780152095932879028369310052952233894885465719695124116991064527958360323988874884147114373813159803720579891713438628193185148295362901970007451455285649276371245042358077182237501951446942521557172497587444681628489661179774903002795136136533627478677868953688813288766390043392970431634158964531145422096366204250902070784812361554181342390024680664840374251487870892580333159130839418384474444096004611202034265122275073042263193182855702895487628696889067014729987803746377293576783862174951785666238152282487949153742227064093559004658878986616324768541949864110074915891632344388066976394094621811206631090859848408147110808608207195792755513459487895291502205229456762235314113465126309201272196182217086430204133532845336138367209616225946490796371576141223920355503817933536484780917152365503295144639305672169448379879894945404820833784416026440904588006962904450063677266467573572767517879288243138274973312022344522900749871458950433828580796545468919173867207053978431367644474294202618647488896198452751378689931559304609300463101880171056104526638786209381591942215567225907132392897998793005226996093558653576695998215182550846983533755315891056080838664270988823807686790526301577451382822181912557116785398492467907857144671088183339546770648586505777307431101061910659887341946260463189614106676022552525671884211970678225046080656921720374847582805166010886206928362622778438470747714036122243104860000893661897405750871790145859774907305480175292736132578099242352363605841631710872032646204743000341644806511463918240999079361095814811924476626086439524884848172949150346653815748896227588519457147163956782549000826011995170117148728788266772095275396560658917961160939069446671186524388998418508298342491465215756008710140040198546602365292929013564337284929789723935447124576365171799793717829762433551589889969826024311751869126240642992983082643082404322507469706595725567286542159011667759494859931436926145076735677157849391306632056697166747951723710913558145398271544748003704993378572783691774017939050823781071398378648205394512897566561809757622215635639149443149778266285901340913628325666707185622015736632165910751104976523466751163135898526194915418569142283614112904524293197636781404048127712515759399215891090470400302804070927583307948883977438131284373077603657351744167894070912095018812220552001064439021002242414829195968000954926934685225242466697748040059227334068655449148850661900231620327675628328519084933280709029629065295379947437829387359008515268652621764958134497638883713558856555427075218820105299947164584286217740556291715492551096739079115207016681683434069712283544226968108584609852555861593669688446190318626049690253728690987552822831238571857278642035095839368641254909872110895590111362467081936124041649673948693954471370097361779212793758023892490905000222192762299671376528109835314323092271536118440733503649414614247283153508418830675002855321803994836433248078004020448829349829192125812276798969862628382240415849594592025485659249592014166282904799163813189424655867587434090324645362691001492286590947911246999338245361069062007151971534902552782368494483825119764861273494994718572630173766433545302863443364550110831400119544513341077696687643510532125441855854434652498906707224085610422954937222282810621269590650401637221700891752703968535183997557713915432021385905699980720543000313394811826057827166505042607035620435404451831354945179505632751428033795144908582171491734488767056956225536938389426695090302844231602461608531400848443563696444058431191122482530938906851543125199792187671223076967988880752983318043077638592059845061878075173980154988045922689917974151332422773091323253141168153795867655934806311900759412740596119521218000763702274456824917604776497924142694107554139782778347394739970864120475904794313311391690973273144747513399107220980687702506508521726302836931933373871526450413611827359030052224809710547979856887359061922218580292132560227919826943708582135959896324777302413416134355343982149354189560226983960654414212039239233631782066126167958094961620820233965416770662811067415585513703611947003881120984192960285103306539177782940666301456536814995565598771641871448067159379965077771319746766727024899172122483236771661360875527536291590149546462240660176766081772207961751056310314973327984005393066942053287859350231089682773096233289750922905250449053656312206898712871434909330224618916281840499874920208588022703491215311805484041432597573872443944667550201576772027898164770281258336320745585966969779412627051544814221340614760933017167998295378303039573818070220241710974526632627680524797758459388000090165639036602219094362469737907219312609051585608940819992595954213807526536582398603854463369559633865176882786571185925893497015902917950017933637632004096500931972070313479367244148405885875910108466247639929568183165375042981356540024131654621572471329127724092807133898048557517615693275543101491406428321641586207189910214045673536683606140187142318959795451373540755547705222692558305116692005279096833721115294751375618799878017235350626326718408631239767894751951962604331032371508522915527036515279593779575598482181658119953464653078876062678941423991469472333997132105683686702517065051102446097887105330917341370685394563903421295300140735320568333989874744750114261385192608622005582174102681015933130481850444861321005924990413561111724371009121499344420803251397391866706215406663156612323465647609401597639677857163986415969785062332078132592825413186993970178037783572734505073150912434949862127216020014629014135687231852504953958020406626435076882138910653251902577417129933581493595162399153367572078645925294364741998061577379332265282699955554008145214187182221121301298708875329130776464425404317180570341318907956601814036257970314149644784619270615963044805854913780153135297458094575158850489646832494505852482417447043125000887584903674657449725184430418356167337563677136797055742121650591748897652288449640655591903236101447387303005647238866217248389471200574354864535246108519799043609067012502658179880988676367923395837049021549785210457560999996957137344922629823236465186115496179714959873910833230187185790549181113176826547551829957634794820966918146645786052933933549125742416780097035272983804963081465489033736551938278023040647527893059396002763864380599744134028444139412078575565671504934152349606224293370757665859829805546369829937199744189930852677699375419614742395610784017090735122933719580596362390811403207820219751382703971925012750590444856983827478508510857777280821777159240791628908916817622625700173427865813416580139162219478898691616035874820444565854924375692655245153816705107120706988391686443388174360407969931292555579431347717247540327296212266235841084819906644394972930951793284703035734070491239259270725636485714829909085288820467442765843593328203392653358719450797003033052496895124822422903461447254363009694894015793961681063743451344258452444743369757579944828248094581720448090045229999701399677450665441483628220575167930798685312140740669412366481378231920404034518100743517589086323190557725669562876876097223762392671242384037401941503580623576015195353603100210794137749298146725636950202091635848081559039309802922500764522745243470516981332081854924899775110129599318223932783073278122184022376215201505046581593506541564958378623977738370216677476540666466117051219154579399651898716850969532551952960718881052004549279191984899303743484763325873188359777744233263404423856170755508320260150692630944414603866035040792181026577137350688446402243960956951300765565709397922642703410355713743928138843609328238098957949129714721438344217969278144442555270863835496021613861319860898578734913767989523791334452457002913684933529087875126175191102348725574156204420056028483774876484654038624774731686850056913780769258520001040897747800037574136802806900309772664273511002073075669132583588187070908427447780384648768208326319866234880310162225486056932970990210617215749659235909738057122762149810194992153950308378290106006712194242243786433572770809600733990082749919524231703972530802718872848142215048374925983381430661978278920659381931078389330449700126023522580818532286157552711625828898012906707009921141110569928974157385768142247338748273558397930428691824302732843313508747906334665318590927366453499492323573218395116999746116188311410692658838386177934950288732054368244871420083252040293033688300960885007350299926647357739167891974989091705157560886786661063350559461089670202478986406624158756486453882075366606885466952084677323237462111452180418228838257169546620751036457840916049612426522465530694132310493539809469608224105824465423035514629562728454354761087497675928797145862337353326137650651240055743790898172725085114130030064549323488082657646309676523100550665570595959069383144070176583405213550875644038165768347627016808797337197951192811395046016978871737647100531898380129804967308852724156698904011265277581921094538131335498735339943766043026426669881805504919406782253557461585466054358131560432597088085759068515977744127470419279819148249615995138334897274617012181147598128593736698574477326717680071354091452147935801139100065811093546703933369467107753370521847271707561033442653229157792422102907563857267233168676089954595915698443033093781641783099238473172332337832864457589093647086515337086929795953050892473130400639941833614527087128822774418417043590371302930884232367726222049986810373174363672181486575491340487914559624058543923129120029137730032914031067435414601659764564050696990085480543260070156499432217839829934968444239060329782405138686214302879155912606310074200454790737352650952507285269404970475438823129826883976491808333339706410302431429569011223741774652085125205074125000172468961552453200081867982574680742877596400199107378517300951705186635002309080452579218984788170958096050187733267689069680545058355209583741561451457123243658329994173733216390756686879274994488648386175393077729667657573314509449433557468481293168519069972344965579250783958919993759113387873900896059601014159877186512139034826843590943756031374428983793768111793096563172009413929454019691162652253399278113196173427020746885053001485068605633316677199353701922842602171058272025756485267416139465864611500348608961800273102504931089545217919413236648434913667571546464573058367974213763042091072109456630376820396572901639352467885191083715739766982978353627567582006232555311882201988355007181634728836360817215707460126227445853884185630443509200239485346944875462864044864643039335596546732027880062646778281229053052360804828716806971272207869049010148684055879067620382100552678096035585714915900049911401513762034680606870698278943306365258986177895856811474353976361617891431115512393712042771190443197261025966611537161460859293046216005041379992030896028759204121858277672280563405352812586194791588721986370670101145770924784004798955526652192949987696519542744253012989408687265003592981778291530510971390620219615848000714554723321616964185518952665191185235105289980695371645512176311472012683458200594458535969113816817658735666318543907556425401403724460363316005023695092982943138438172019073365644459582884331860413866196692217987715167469259851469110397503205264794540114765298618590791115125629496392891008176751517928951206896297678350311508862368237463180091153707573521344507911214849571040825020473308592210411594008620146750685325810986033938437826642508934585458600583342745831569471436289857684833825890230493719347411618376141072369414287514020079923241683130954589157639060607636228093276885095249076354566328388001747717428820369735008443093245576670156009075840457725972924860600712150368233383828548033264192824262600750278416398196640325326231310291068812953554592013257948147512319332437002394140220437576986183852873397225355266443007681768535459437167053062390031652746975947901930336253721689327663730561546814174288916499266814032058157840860960230268855954030987980060485083392678629974595565493926767636380541085072169530776649461305314254818230625544906628197251788834517816740762698635291177385177456225100109249276440822921375822046250025352136309411991040089729772698728203580928728950983374526653164562904049095092412027968340262506956745257203915272953129428126994013471240314028210164236058664529168763403641894533859771772401325773199263981513977286678869575878083698337289072138752577617157091008240076820829869512180842352219709412538876019851332308186729056483110034092357385253769701471684625268895844824008546577328475599952156143228703632634443446241082367432604290630109664287455983724991993157018584173066843025227856409053264242639740942712166876982436957412792571348086906108849548803651583924896376176958791502755729754328845506415625112854598156148422820193371897485700239108389131715299047312400435350976923061175036486241590119446103755980446197963616598229297883197844903127154985403230558320299846989056524230103374101562820370519762761825454073010710707120462129919976077054070049850258334757834776451176646205531887739660030593949768098524640663601289339896781471967234018067807485409779890654635919041871318824600050754985264669523908846965163139767085026543261085428519444095138008768437884035282348212979300192530777548058041275504227299144524576193798360640029132168006908856124968348883356445494637737227893389776438059202819517993978651691372588936143283947610554292772008547766186789207710459284849031520810233451723767685431085316314059575401997486540411446205373938870364956119880654181905130127544813275263857248597953586304186316044974777963187821272045863676539454930892684498125673791985473898630058214163939647275795125661148474158716833959785500583511676443417779572453387082188842766303605693569366308787690584380672455201734983644078251024019716613988150947570915460068134186044560348240329139467145321182507963283142330622527672495255450512674356595878381668483703513723452029381518331956355523179135369701899345081692540007325568266753178767422005648956508298377129510730653470953542673580659293174176337957986852907394966423359779346065551562796871977471145139286310335735961401658480714972934017245039366804407708369265052829822834064809444089895738206236123172216250007923273163500055400648611910630554054284830198229250291784698167786215290008909598696574032007253226360255796058635425413639380060006594538238212977051441949863900646806651656779550305116989839609185452118500427616417874755019814238538917546329212200155281600239611430758726495909542231308466962947050553287049434811429626372369144869877133276953878150490030065616401607632047565963721594292786999887975458258445687841656797145393149795954940395520034563223959796666099161488007990230931820980183804577368682643085255790910143182223007116158770819942441031627280772936392039344968969091009500810408309608998823738261645308773333954497784197802542575447347940737835366975986904603893500504644683246980095942362799318864416025191119878880615938310295290788330687491108698476357154658993077611206005692917008320479701287498681080678820910642965115180282743397166992570532915487353953238224717387104296804158652524881239492943400181793718305203011668762369251483919282116923168950687273830548059951388340074193452385786646833681272694304558475170837527333261542243468395945923296341795168249668423740503064437669965234219725147567498394924253307443216732405903253122653885988322852671139612333789610004181218221822724326768088888482555037819886682190577367829184081466052282807826665031737696569983795628480711638250813947023489488453207853629484738551555283903568519911642767247265133983543055239577296058600997419001188782760852827405560577766168256122037121414031057195389598360763628399611592047655648999167919809931617184230753142238319300966047463454054205713227571437075073212821590525110788124734958100266585174176276032942010718454949907047622114401471016775413529577744015383128691489423979815393704436616502774718404383343426119157615133032648645649693815750875532220937082114996651716566682601976035718148373046181040824544796669242558860948906615868395296845655677975173204004814824751385109270215751854621112787305999472614113122106049871137368733181074014388613924675110479437872856195984046603760553694161275790769583219451845821018807272744383721078128937313430433257248281710233588314339703583048062609573776427717912122726088728444063241386547315715652290479648106868381188611183003324445715086981802677890653555290771259198551327790715059120606215418992286519890230087751390193702630978974677301209030833677896129828929239100111977254987183254411883184178768501852121730975732059290180331746960387196440544428773818261214087230769290492825542429401796271907593381895283841374522831423741427905031023829112892038431760120434673729022301095150811097848937105183679629901075393473984991168122025415686814693618237347349118778561216520473561570514352901497652797146870937597975620053746868920594686957093708145409990161340480070641246595333304022714351413599651331274089024986125858832742261635294323187560643776685112069878278341932020314880130342731824033334189054709311678635304430586649861460489064474347037660680367815143045833410042372416498381250136797191407580712066638671828211820447713071032178647664343868266705795526362376191183655628807261932696377214662105903904626855269834638738902998504062762159747175856619468114411698182382606349480477310605113557658083282379677340093653392884113557988118570077943644008903496575061253824856955485702653486680207665273723895419656950279628941382122383115159056797626862817297111584941240487410799175343609873783787707185421516744448876066411535967207426430189508806266868724125402626726584343386914492043349734148417589373496976890032059604011760593834276649872587179675178147874707679636919826289982861768442057527755334369590149071884133863533149391323792519319636847951599271527287107498198063113834759283916046256595727668786578279069881491167031219242411617915311457090409678383349265748792003208626806879224047268617292747912343784954620043739296882601032037538095591243065651867794973884631117604194388822158950358186155951899470542022586269442607897066565731797079206765374474203437414709016663238658654867734440150615461877407460798851600927822544093897377281347378279829037444713653869096457254925674082659267944379525352612948636629308051025614649350585282426333675486686694941203175671000791852803985914576006011604427815891918311460736021556855751017056906354337352321446755150900909742010985704379570224386788297103703794172554951108785526586364909263317323041150920043437305625131164513408866953041050547154449633803459698485315066380458773569212864329508835015212297401386371568097181679021640246923277805724947592464504098960063373610686097778042389838002076813972761563677537792392740488849610241122038041951832165412729189555518049254014467391889565008909950463083224224105244713872015448520308302961048246035113220722175928944443067971937271630462863557737395752293586267383674164246622107367128209746718339636043534702708427060128263259068820983008033825181426564733576746600040177900360995753174634789571148374869771152536110344696005535763386466270330579244924099762710915175299652710797413843233092270012002316173385980605016283746092612543737350139356327365478506956559523198871867433244958584698388662254030637723115516487239498245594659321070589693911395677571487984108229583193668448549912094529731884620051961774607925172958100272413829307346087971527562870491614460255021692162060915962885857092881920769542227666261376480431724309788347533304025544123784292717592789454605003854860583040020945525749352600290214071094156360922274774612397877436486171949552391951461457295947104157177752505592070253281806443023968416512655290204370053868166640462171859783119713299269578250185506377243030790846006554155586341773798741183965303238202702246976799219776315970954383857704989573597590490465000226114944744857264403564897368049032933936457569402886409328943642468098901133903720705154181692861273316479737523568043974756408076545766131453812361271667000145519379654773354206207850725333850029221471536659487851963874742237271047285419194179871158157260939516099318616382642497199893764115818333689600221875157814296833906645266478866721860575418443590287742491100763528680272082030228118721664699129722840332345651929311256637657402504774873511180993794126509137831352653376457448875326255650246691105114958489654560793156265985282558686138313588498855655810962202560772510545842340407946920411836232531818817486168231720086995388104227051563428981326509885299500228498645927959371391742251287011693379390715002602461053233641608851296526511234463844296283266562736010085944843421909688630190341605489075958304445384735225781795332017799713178550686120195412581756791562414450386565752401011507380869285071753220808467438601624228296674726445595936371256862971319262610483735940635935567859789596252156913146527993883186732602897028856356979401186984832206237824215855770646715133818578699475615645873749646795294385547889128546847313283375106167581673340305788324898991523505064543184736696558820206775522640791956654931635465650838752256534764949395176143068136462273217735237327422634316844154901601807319402426171603842344255660118270876829301263012466866119476501576616518337869680228975364207661179101721031095038698619828390962361187318749934349477181462188630120275236891319661605264204672025468553539337802642061878214071876881860393914939370546688527112483389221412905317754073709293444364328439809820091836262151123801213810911320275700096625639324272693868473262618978945035151899897520434181139384407736100029169394332556812728322964856423675645434385781594763894135890131526022127953976286572566709169315245928918202596239513301787269835137991870076224855159598992477965866199542002239727176985049452057717304379010555304809380415531730511820680350797713917610589604200398974409485063855879255952274254701424429269548712864642400466939042710030558823264011912187215239185732756575783738797954002471331757878457751931683890619366138714185688807549116984132835208947921110658686385737799529547085032982503776442327186036421018735454992346365519807397722137585009085536810269553470878226616982657630175235916160728377397920685930634358455928604483913677136585451239217415922846331243907423080693051608002861959616096234467292956141687165505362955593143108974457417473456752557703668497041919391316518044212975693124428617046183979496218693796691437156215625835264418211000690868526054876105329654840925141654470045382993013736398295388358745582496945619273712839531957949322060330756094337161384642855396565082371639477465986549137275723692860700923167817575821133351735126573843484493894035988863546427973511369521589077236475445149735078662797523567202239912801392592775133429252097859760214366888234227185573665662321192678732710910385478363349972918213071828501236452238700473121434201806469529106780285606940403824732613422319902532314800011130277554148627166803666856517700749490250570150587502045978167252094190759122162884574366320146935953727868028629340011139550055899884926734799550102690860981859752234161237068538767200490497282352660802171283347216365600729126401591842970551398729428570248934402961191443575156414660645515054472429469922933962179956191776922592069661235910788406207731449090745741493510517279067649991514295001217130259122589930171130232497233434399807613000867131118833573546238429174409013308143644978022636497017282662331260437904016729782340371821531722805727034063665805076729564646226482739322190814976405364689501720587162058986692299337155996582639476261654336505624038146822066590833804752302585421694558698120338696557424718227291299858250194000483880030077883674116733436613698210380482200422575137806583399688981807090266755762536366913322573229052481525387194772091192542403719986664250268805618707250889320971105085653882603945901721479857938475911833362285690579991729327589545865282694098551913639086100070366043331595759451049494962436172255328308945526128912162897340101966178414449082924547183986695522680791610696989066538049822139033749244653516128605086926640579401108548191543234488753579763967238966473945786795598273147593505367463315299916891458892735970033652592248626174211663419127653463847133065283715760869662533360024075958626378975145327864548160133047101751781403779766257393572616025408563225494489618707652900129179966422345786463331939710292862728030354242789858613663895474352660855085057471855895141604859711450517409842295691703301944426718003865244274512586254999379434960666422967338628173239202241355562550385399591344324365405033553644989688061930537767396407278382866372928569667493337419846549733201481774165325055777514253452702773583851088606498460109041415441406526853611269688924070350425185147308425737924250203968996364111891406579259769189397533962772891288646581187673578115243098400124652462019510622577360036376165274228697652934747254468327493057240420267262030138767137738582352193639839341777777614497165113867799273564226638805383766540575318905052101533891266434563115724938418146648417908793518030058690673639145613310788606581919101198634598296325993898335201505409355338553535019202350682753910761070448609482426015515736734972196428017190791140965254407525523583567230811231135399621156158775926288610073470910199235314718696926588171764849153558902025713216535070385880277292715491258900462467540933580374968690488411126953332938436274219973883197227855125204317755206238719329341468197002958229531151454766168815823013319559573703668257469693881853818425040898146307360008921513745409804788040139166926199339812441656188133189661875670838916292550588504100403454306497377286881962355153246289708920663965711772920029609799796200123400241607703894831428791514895063336224715028497379793107520285229443579796006500718336895192765901803269303799737401285569144372205972163562174750460515528088845027519565726066135356252658310266604135039606311127611817068883527638601240167865592813974139975871773458186375815384003416777158216669038640653381888276519819041138876653276789148144365955588523810619452595376644860571621074326527748222266795322623578458108625211685965374959610107909884812206554660539107548624315299067658627770682982679340497008378095163152380059720628276658280810913991105488213302609606783638089110224038064353139756413170151213085164419504771432340040444290530797454476166210622834788519807589367325183855800199294367828648422502339220880906061025692173337270930808420045395098114120889285835868598999791459248447099484079889439224619006089012410616693400239793327225296980774146030435487130968360333303627413683694166548197005234331633232409979762291369979425458388091022222810680137498493063875389624371766267562283904113550095143193336978857205464007869510538629865556329703547979656448447697417599084899438677468819545915158133263496173069919521145973548722007138723624120944726106088740357556731653429302964954006643398236734797765003062063483846438738057297267196812906413200037050790992227566327606350003104077934178988738711639640385834126847112302000794512432614915394331447824017077300602735157200162209062095851322305231092456043522906043169027814373129891523350586308377985088209089333861949607032881911958035862358530348722910774474942301324915821872287095142121909152592025842988357935443258992981251800946125285883141334320105526730127227861037716297328012735734432629102917079313511493626768449086421789824416575866718360473880686388357633919097668675915666242895044637612842149835603183830488117822256193569755517435099683851409764957428359501609613748743688577479462718621229275559062859248854541995943791888388014408321841474678830125270553498265728205456488900057045975200968120113195380065462657459547960205077107896427536528713707458873100631065676490925482726372342677394751020781731014972228220631235794869794477368168920475931993544100023801535011988107519269154685830601389017659046423338149055986132097510139357917542118276046497675175120077970764028071853184410966908162309583468317247062538390613315009120681234684467323123619604077550831981908531212271317273605470839913201057374426031227324868036335356453887457828374267229309238648894881842592927145971201736697378752431668195164307853958315847672096182714651777537807433303080879575194694803577722709425927106120339836766028542636370373594402440776094699963084856030518338158625003462326048705215706182405361505551582603976701527096672800551087749957849171873051606640065196769432128601320496434670798803423168444458922152587346046126374860318429077492305634852192208923869001794795666177840478000451969020047590152362391506803977528401223711020542238710364235002349626421822145912046913550239701061540368810900766622483768137740408835580070205853603456868134740613601472593816107054578518501220403974167269164838292866517938861773585124283016205999934737025694773053751523307690816607256950838734326289357010667878681820514589363200271517706337638798755965416403181296349017639369513167206300685812188678982628368958405839851321810576170682056641523468964127329778761678577073810678180627505466575337247178605408351074668071194547540909101633914285374690530773567864800888490947652964384878231241567865251021632022349858967726155194794288037978750316880706159709944011172640463926902785424223766843165436600940748728422540963229314838932984330695122197469068579566756014698638858667150391328534460957203627991601104137290903735120942439706925083228813069445191619128697277413769853479494982218050472565817975661691236212059635064129997072776212182704000053587016560957750105463070120172725697654249593947547354956015828084558165709207436364513647575727974179123371729861641812247062390383032466575486032476894274914895870735433211650804839639512801013774985459993839405804239750575129375721473741123064086162091518239575687001343581044781599818244088217286489215775034134388806885511326738080020112747507749372643076305441974037664885808934662863308491892984361355782620551830459510451993477024137116359560567649674781964002528005900993720599895105410742207769468403925004388967223901968450047835836653842100105501994757859885078475092207795789846738957248772786025818135729903906490429764974208839055977497849562856299703939972188779748346439350956415413749596082186346792065230100458888284259848337187849659478922962933875031782994979525784110980508629007839132473132310656841027180896081325141905095797079615031004335299944363939850801669189732591799316544852685672545094911527951995246846356041020997697604879863410023614039213788285886440696222899901182160912115116733415484127123608220869031538546647655290937857097605058139685320742761598030784895658998785048900803000296827978649972430204221427362965731200947285112145904421065733506585848325331523992275243444526897320174067349283758837076258817231487295337043277276673855759536637890706347229069464217272416168981154507727230117212145489572882313237559772220819997667587249245607458219824513169702881465120463726914660582136380309374756571054674448643828960035676360265248112194805544887948041068241104049260415168377693592768396229965813495462460218954898259123144849309644455899775980450668792596058915097654061728740551456965753562539238365007230150105425843648010217482153249013105608181190188558692518673363678680164672648415063811900080687601196527350596115492367329207484284097163396689059721636296560912237075997660093000193239690331595767971428799320572013789132693905602284870822114536628827108179158185364559215495249929226569454802105123051887226826490799656066666622200649365085123832796096982650321707934692724360687003980016719334792451954619390382034720535641378882619675168554339835050378748865095280672652110900467096988677180866299544930660938162219571741999350210774762830417078642849425571707348938354090637243374927744180257660715792205614903997316424358878794468193610722757909465281940255895676976222564688080736059590301146386393954984133639536441566403617589067782174329737775694921295131706119565481481801685126390898359971035928779888160134523112082298693511200722913882045175657462274796884481351371100607033072934833525452824215011825331826560635372485728127141316010539622719711262689159112762490557338234887199681220486973649966209863970657097631526414632174631789288206526637372381497333043520884463434660880252193458529191146163361625836326258880271487948988510432846921957392071339981878106460862955455480479519039602982342885652877607734077157415124125294678339808595096745523774026417986499174413644476334935964892818187245380092985713636366552695171564956783218430926314939001863592963502189677505488894716253854901239735488324712066772368423984431335564232375264783237190496508756228630278733423500973711048573144416420515006103427879049008116291298242137361705351864653013411665908078831211613889986213309427747541110673261772032387893349826890450454096974142913238627913360546041855151309522587043206255565214532447879031994416208371266695761831387188717010148996321203794375991567135415160357996134818050652931159057926082371785935605440292655835850716594006555724963133108024319799518861440277632708922539412379223525458978089974759988313875667610379645579570529077785135637270534881945218030545287444599978547744082629432835484839915119095210425117495628236656312863778656386733170345537280708447855130034266364398492323100957993099449607894128133152454866607266791587428699580525691498242189155828519215477264855959034748832264945656048949642331170042598118937121257287489162890746936521703079642970203249535791015231004240133373090639783326198518598469497548299867388244890783997729620483455613870807435433249820095954456736613511953711475621442448402882666357376428512969268636464896052989898282615423764287000215224962708004471690994458316758793892669968356324148251689492879883816560833304826867248018552096558187257708053399988042743279940300428463341616711559913308053301533714591666710079533381799071240963622961638663169356953822728267279728878536823249961815496855118623906445073464321365185337025857376826301782700572138373733385126514705516362351732809022803669852258317147907596397562482910306508224814863492016922954743568988670412178608203443845004087268168668026534879335374775978487866893388571629185045430779370994507163531288111670222239930547608957763144764598108367260863440120692693438348435291388959009249574695847639214700256227931844420752047172457747554762526519422682367202384634978553163324825027840552009682390378352246961358467447260800863930070230443200623564006939066355002233053826736933382886975260502069711565349222483182417426124480964052577783262825959926533267306664654895284183045843052743549049548381098500442647517611289828218721990963593577237854476966054462624259820898333728561486220049500833751891270481287139536901793566402591224508263744293666262893179784452475510147057479245235331879612881795705222636636693212607190202480959220643564633241234341123574340085486037203520687636881596842761756572823419832230897458872982386358627439435499191610048872301417922367928780900710944517973338829037204531911822305707666784507424419042324726541908400867643438910340131390995044321713609700010162433571719209569244349345758481547307245981737300635084545885462794226352003044651781501687846516153976999423843162816047366327392113015617050995572886723288076896745466939777746472619603732022511550295034674851141896360365328777716619004176726719562376620828454890797202444616284291043702481328010559382588277946985031880998000406990046462591647774188046074830436083636854013351365865953372634600284100783624203478213131120704616173190613319760533639160817951322036771767233856111392660325579060429342850995797424131751739816639917197541997322644319317140167468050176136245278162552016585632782245753039034730819053483656449835222846758443519770370431103520318419795663900964286466787940184140154131092613159517403825200088228008652879634512739108859692322453829714002722021007541219245906986470996281283643213931058511568838118274430033400833986431525742345567214576903503157917028496089938313014927614663657880830258575206339444930860332285302053690628787319228851585622927284774391874736356377741994304044943111284039390357117783431981638149940465039209742501165497619819571875398293022990310998970190224103340357462037062167349634254778221960454126215683237538983807320987338082907554186308996107937805358266061767498947225139526601425350243427546368822023883575539820331324483937137340473161812097904623660966768026091682422271779277750543697673564902169074289474952783380197962017757073285402026360665059416690635026945936052356204196242174388874412437511367773329699293522527027102698371765379447747918926276097145053227034528383493811881882639843347537999648409409985640259046220352431054441015595206221129325545288964850591978255998875837085779529045469406199364311917717757956959379419537434460064564873231088949784525779967869155830447982711173877883302139574712523657291500016170226879295471264287637558936096253396318629245641502804515349906825260500965942495084539566629404488274199731136677544750648424086205009687786885687150892812714708501069987523851509056852751001495577506012162479454448529203866129274504316593419529614855293570425282987551924763629184343398579986978035267921622432229362034929205860330796773913134205264087076618727140782806254158102302211286538964663677740529297589246025931881679639246347346689114156407484621455963682850715824677059683163566250951255493434843699428681831249483860923046776191919676863817089141845031436459698809398192560008358302089410914911358805763929759553385342676563968005979204690409009344617593926510723178112290780864006388003126503151464848489625866103895405688495032678976515495152570116130342366789565793137083162525713059203765654741115282583179926763830294024113592798278511397085698191194483855697327540178779003941248756946714040293792544297098230741007577676121621572428369098346638908205304596362180801521353854209470466593858898214787575832861814082128227149878011670747973427517938813205618256367251374627665298645109515371274176533029935477723291076259394510754549399372953835509682082757344455172187900111920969250132233491379669966973912237776796404077245788605151137792076942582098770375699116686187476512867989297562093005217378001792229846415193887337681260250378874232976609257022106293989931920436799994689430198827823911674563015092455630739523731571194774305541987738532665681946943928173014298658644543332786294478829343690543420390241365096423205688292224784229171218725519368024315141651635962691880113205296430229233201907020370532045250134695946804423494074543224033043855771476303813157968081044619709713544479411461747823162721066170752731259912719318363798030326592142184055772412087955360387513990177697018010488140598588126810434636209911900741640173678250905926801701090310706764956534322475690876491564717999718455833411845584348319842868057407619372800055863455454350738086003621152225130998385824616428217549459301323673090241262795449907042010783328349718010573396805883098369266007689330731076814978532266251004018334999501312840995602134020936657770370461949109009321157693945748910197861858963949257078149131464226479295038924471077446217327336697081213025943138188701014363540371743537238191267354453735152920065717683527824142282023859089885610637472563012787682645973163697056929396086705936642522776174261022387405507466476670503997490243346591685255335801616964214163037771017552780002189239563434050909553576250846309293220611057215719660339787952269962477267164730548853349323367371369293648337566400062077657406352629739319706254601398827835138290926415791309745523990267873456937253408058947753646882465016388214767618394852287705947917564679570885406877045394525694595139793804608205717548612393307239652034407991823827242812112560498365662165912379340500587926975438364145890007373849587378045803851489486632136392448468294957982289665894591639772705899317512746042763008770410695316847372128351739365891373575539583522390898968459372096524490615163209955805701138701566968888398895644330641484392566168214905686299846504386608678436867126421380032148376371610132134139099989086675722336710396788561281115789894752719017890588113417635842079921918085573846260783477133280474835839931376168013855387631814020986887319421013251665196100249025627732907514688568446722437589822411937144983058890119416916747328982320540173598862061440050342410262870695257018842879087328241058219309018807823404813217632189006366898579750726115330198220756681438269547643240923712691337730557506540710806412721725089476898270148069777370940087286958532474278634535995696874962676133524648693174643868765263494029659174179959608536549630269838218535028124246551004729159196064176475169068120321266922171855294637179647438231810177249856073002804537919577933327190542736068958787361731937879577496473196407148600014037681343986492896873713295883186336932537150180710898118854454421751811825688702925876874767916439692020762165543742048621034000215465608759050200940104560012187818915209955636756423728266091462226688103894707644229578107702643724997735082470387680355750020009773220512382055878676969043728833068623961762769696871350130302821365607430177543032201800390067628917683932783828258893227049559198342572812425814532645253552663012223857601162424473267368820971454634887733801478129829847109254732818195062996391471317072043538102537904466696065836218067539856024250356518453645322714492308490598869818636177239872858731212879841764153148175210548857585932398809390167144659330609036156378594028624940525008320021446231499173130815579356441621463905159130994803043199886930163176484991789457877466343460137645857035341558747561907469195530119369534598078965405447558052940677847210973559213104594249557094152100218466511368802897151417287629036246196304901631200767679244994035697899347013857872283418001847425017384672057980884057611129301770215435490669786438681172518233183413483507614984524715067321441605565877042189815295274071058044843773059352484112067038370564736622335338452508343092142938865831503938634605513130015719352483005871092331221145719866200922784051396517471187881853348977091676021472574362662120771811935564222534961522111191616751074821979698000823707027573360558020994424680400640183928573099096740767449986769365351153570564284650010434487758905136763883032490354746390403708891476957086657335477537712059196820408446038335595764064968210223567066945186116445917913421998756126884189615614966495618448227551250177087120662907219360535783158500530545678922559460776495532697412134560988692790891277276555080845225610852991868527164238777404730552800357888153663703769981532867536442588917422544371419568992391507908704036874786136875207497163681086886477948787481686113427271909703379219070262399868252114006258616773919594882698995075073820942571094441712317761814576895706463284345573594629173877162392993751168795779784311560630188290985631764119770398714860430355501007635809657543951083077581907683047689270443046636753548062987711704687078538071779154298919206310330573699179374778225990304888933966885626187544828152273608873575710484523179745715576655684348137154071519489384392277739397159915584381573318533792749144805304691072860825938047807703824683039934584684471744931543164603780186999409048768366349797118012092597259231321598934825701154666607476099448996909716636230505036980072035566306384272644167030246350720714074152903605819649479125834061744524460111142228486333389368867354371610558607903845353259128820747807502579419248719156933073719046533937094234957064933720537909799220292469198307642168814839140137544487208374248435904167673697522110896421894576023408946101792047643892725945977559026884905487652456202525433070342152076707239618207159405146153794838292533508726506818959253853221544094983504073571394604356951705380843232400421403640149928584774726806725955380583003442753685644372109737406336116725979587984453941679745405789698848455126736353985995927258112471974273129552588308375886921769606697225769382773673118402552633857685288918608434848918308434008779073532503390142263137169485201441461852528041088585094566883584996118954143326097761693410242859764411130982359939969437377230356003914917849428819610777850868803664889444633944315693521693079927542422063085869966195067744661585820043672121418851792613483125861498045695890598971364354525935055942559284341508946909182327210914874064921015190595803521447263239384786391353525241493912192728284769152008128197646213157052878563864545596711584950602382324040333506630470549338748897672043495792163848865832703099076949870682396408598135833492042812351959075029358686284783094742441488783930823121321752933431769016076435551038169711583580510068391924134861419175451462722829005979067717151625479301054299126190862495514048626800560133245705768524563828683030505741834306945911688402470954536489600701514663740581146752497135677454559322785404945365845786002853110488035396510271632910663052611272228186025876162084434655529650512251318136884429267361127249873880865014086393976705762351455089192152039376736776453251536364454985590079245910743133345884674010011021618487691407572043655293137997218826245139995606725372968705717666332707477772124644222244852522310604596690945366579728869689800716636864067412712143736509204710791789344321353935342291153323789431883387446835355707577541506079305335034838431094250862843104182401814849397871091523456759767346960457394986635111002913268910760461446844381595343715077262635183117624793464493075615503487969933784801933159198428538887043835832856816728139874456096745442370031888588856509394387835512311392414420769185296393445754597846538274036772442172425773326961228574750881234149719981298136468888990393927100181095145458680651893604778764779490640774250230543260529016984241268659393778311914811684620574516510220082788647776018972125508449552688861626929631553359283099602696764883808485537634841296030519652384936208774926749749806302764418549920191078657625682995171910101447903087053647156894672578716193828766767336569128426271024453961617621098924349426488134274233592648985508325066668614249979333797742178017166851261291211593630006459097160784104037945922233443845899787869714984883798427819735612353936641789568881921525138556245645875595827272745663009902375726428486998882167716299098212996598555149112403039802095998244980197645599119163820324566474729916037818449674323143988819557474296907745341365741543101059158290613446972962055900786820770021592411304162941038227992893822457571212637206028289470713410656060125947487034104774590792698984916722902264484971786725084442150911489606111816691748479418262010399357042938860099906315711392977925987936639414194723462317834525787287921742834082301320948881309469141623121659481493705579195573709524120151563010286971600418267479325507970674747582682933018608732836174418318796777493570237081613766085259117319504958951137295059323785478528642968188058332647574833907017652787183258473763809318872845115601378089779975373148091765016703960527607357707338183228464374261561673107791960804383023561584818014658407619565667346754917720495098618755883344830589994450342688558621340879870652330493893901661515128723587452041145297165497494766419356394948492622383260175463751332372861122270943451717755669945057768614704983038554653353932073787142793215371474613177266858972925402754542318980211395891301350823284859999840858542278337581345481497970247717018006513619484106538057480919959436362579627754870860336729752542545693875121653838239733759180210382638126171173246077985551649301769883800719863569276205155741322884909872595308571156432971833482019669406279460348640167256809819222472701889848861660215636112059034513414225604251054282064743362524772547614995954753671328108416084486758880453393957020004226295031351760223708074010123749667864591148467426090290827293293936705602728249034712307592664206616110014760275779713566893653342512968620094269293187817844381811254162065744760188924297778582932330469547146267724793944735229591773254171120247869817658008417132343186953975362461977926713611216487628783330424426579618076226474502258569154186076011497552653098798728640670555202831383031289692137816659592193652413789597474527787642304492729558546435482423963477589095479110452933904395359365604681972891890482279769289290661082305796772937557142852257785135626250248116988384165507035525160240700244168420941663483814947529730128159610167314046801781495197446115091682073952907808745311676285324144363463086156798687851797068544320863546883744484828565204908702520326517137682823444735045453076675974684214767222396523163023333270401058736787675810000453302584574880586726950786605717696112905667051291348875772799011278141055102696363458480109644015341753756518139743906392719053124515972790097533008462501454810974179814672734658930993065504762115669749836008396095990553278189673172239586944190812060395556306218856888368949998384873688797129237424130589605609780890388051723777339415513162917775200127685908520276953113441094916765550793749870216313092890021659583207371976691617659522360863298514620935240121412730282392011083124602509118281037579138623063450846599612991060582930815303012761168135997504255273667871096857563249818289326077491174768788859480869477032850249515327023590876149927969841208163714926830174761598650626400524609051833353865281585161164720447408379945286139972340546548543362026730218787072271831123856207898258250729378397995868805212190658557695206074294626588467166540211126050465007059473413552638536444598870236579540037450574119490503533307196496119682909869755147898818085173031652035339130151317870465630262637193488218696493425233770744739609435598667745270430290165784130875108703010062955981827807537495363879140536560630727612008631892638814989982978591402451998419274232466778529013811929759685918856593511416742956343045165373074004353200244817747129715715225474592419666702440900375571482549000539632317367600441584635949505362152080100707793746120914705754588417135904980099059900515285951140372674905449073244421219123329050075526426949696290935257583204390588625199481634760318872808128547544943849930115061494732719346796271076641365540413170085498604238246504739478801905608974480046545702192243709597395002147471956724249041598921711698267618907595620799241821424891143669064997826197283629779675115274422083144254746148082821317656919063854697317970189998609129984559111139165939710341896614113466531998864686380036689276558745163275399086431347188761458464833388572207863835206647826116192685126094421461448861246342970166716606054080435817304113862597258376579699496774089887564356591426191295544478052962679398786257460937900329254726082357496025143253987128146199355635228004890236166344435305801019460288099776165356935705742432402027270068272862394804824289123565035478734041522184600371368643760977383208943669577985054273416224567667983426627692156640367270493733716888655303978241741041944156449409876947349080703321155536952073243286943629173064934543014815290589231994669922426070236268204251548669310814457292457325563164796773139049076977586645290265903767208933820218390852240752255264860113476773230366507082879856165215238597541198062993062032236516692331232833428156156640128564222549457239724276003595982312769643512081075356662639430921638281036623101710010062230661309601520643473375195214373008372012561919340379193885559459780794756455698483705777581778766956467460762037327688179752423413181601827302507524282584134275977660129456993256521340616195078668119855809263272970549390845726202774553576932222271563605803237234350309650519597841258195177144013200361558495607383977424342916500704806860866509165111180197381663426090532858400479248750489450353244654360441840552262673125356863587593529651292484515149473122897304601400678386229826515410433484375049675749123287977925220002592395718158080615442336095811420930405250743322517500026670489813653861143010172225462554062791716951333746100991279332307966071196163806553580822740891934455342792070324642458478434161447208965111927167262852686365070124748966304532485556791050069454638957938991867153215835084588730496537457188023062633991151985983490437150786028461419981331576114348988459121236596264921914018275240497185537776935306864232541724128456118826100183448373463415409312455539158351656205048741769283591671468150508138515838992889957261503274391471422638003783310151747227978884898284790012581538004565209961440034401819288973094823520766006008713666192387919809952136715591218460792404198834482097121022776239893483277729247447049681225698102731711534529255569620271696376194380810402372509604079171474938254626492720311908343191514668038534181414093827222708970862639771522131911232773857573905988667780438239101326462484768878385633287410224272242536585067165143821963025330692035386010035710743199792562547150670207986750339717528260312231239381397601328697613401672582983322076717017397259999397957172747085483946967917582953340736765645440417876110147304218330076705908127425663620206429079482158544329162323940048917739427958312095101501229546805928472605944659671633241135470960809913307172739902917419397638885870673636128714502149237109520466543945383959386957855338604116246722033942188732132432070531958082438814613838431217828366998020800137284439228269808837505923366435839040628513445314699734328381953974068253918313585375931111290327659499613697591940047847345023848108894531018298525550782983039741965380210015743828685829852702312784108281085287594875102340681408814260621860885126296844873776655327856195944511998517702976560403120741747229305437453947525721724300489508426764037806031799076598287737733609713965642761628530606732378730164734690634561791428258061287473272006996465058955491179859831586195074630274101984064923761709693949325350799884714778604140440003559660292586190406363091356104368268990302463443674229163427120326346768549297008168406885677185358909859936834657339668337755350581488377710798926459415676715631275002467268649994233150617701484517840286334119579148169845356543167043596358596494601586772096141788799152371363790541160502147584336332246276369914600969736689696229656887843903930346029940085470772418757352530510217275331548294395818394529220052680124109027980952286217801088990906333441740051979772494359018574079477157991809102294188606140148592828081690448028724436759254620962821302754442402706988488145790342309646725787275488081960974200521731122348426013709956418665841617730568227444394709401088073079291410904214407504013725669876405283428141528493089659842322344841105692703848953689897322070550059511564211228225032759512683110753580032071928814716111860364685406270826838767559767901793817660342141370339931587205651959459660871192452251755866885196848598500155980389965351955053581628570697741518786976602931843119141906340558933122584129409415735029547954692555222743468457972436218009101510412123746881755814892796415906328755494773700887840621394716672989582470567772090524060987361200614279785159014237318927423626617558084762220886779974205112395169408004186512360052526723994819030563797520392242247869008030003349669156636122533688893595642940125042391365301939037393215423599071296162786137572226892781094779221602605110590906489589370975338979340043580730736634602270185138962306292644875059437107048842329064479788364400372357353321844880982394525391718787112372290787817115778192805189013909058461937124324436034903153570339520421190889120204796839170155030500230122623875998230140460207392985601766518157783408210573662254277095200733739977760392864430653734178294275084728227376985766022952914869583023640164453140533016385689402089260616716583643853137008357064694384744104006614209380994696767637188332370675391306588480236123164438427614562083396626198135893879084627653872243403258655259169497655219494563502827399104397153360215442675226265534335444032396941314257908976196918905932631514019410420373857396905589890450331492782514063889148556632019863154497688821162010264997263354540636312069801294187201994524574380273596710550115771908307870360952478635984077392368953816192562100028150600117721240080393911054291917736820700582044691689397583805376155122950556202505441545398268980466221130906401398060922472165985600741141286815281156485632461654871859621261148475144908606605160366197939754541557759717277670317834595031718130201698895173745273890826608386348375124785366784191810907267233093915210872492814133367444642364561662632897498248361569091645915409477013759030966256645606125821974580928488445255595617407360929486721828471498849646334671046621705491798778921855422796051859084668421175862488077024745998985430403301858073481224605119446757825674491605576098601666951090604173833002314816206027872340601724222796942262405221115104755708317543442164113601728221902449374788078725202801002390072983787683597181741121285155864450205338376906244650341800914692433074511268385822594391919552354456628547924838409209186324320664500827723863169901134822975702470224389468586041470097698196687528956290099311890789905726615742987941955888531572304973082748175585356992374245201838279371726563964984209871852802569983979402174098478296287798585356586966523649852100033473373876482102899828184913647989426553816700648789717240320787013015558504387377817788246919641807085031387892687439127007941772585205944015554985004119929743553677168116616888676694575708497648836422952226353757963437360989075084940292326231410363325351241385340418894904375559980074620839381914570470403140863485728989217488719255749798841832184612655504007105853116235458607448140472646885408320484429061664900657971656406727000504857731357477102069986958041674782063954988573156069303762195309108114393293927555856082063235507099276030555039466815098636598009575083838113379119224560691852033655634317023547354162366471288079796783002757918159453410217032533922780424740965741763495995888042370080036249854489817810896668179876356189583537828967850502449845511634574883545094553017441330026162621732240522209336936646498267187857777176333767412514845272675490414044686491429874936514721779086565499311944811179690317629305858827218766498440805819707750436535131513527481486765671561998361483540230157885506402958634225436790790989886196845162594101162306521902922076682555414481912377319620109298216195331831120865588258314616166880172877991795594481889570673172380477767578500165044173944361221665157415877223933487145702864650822794284471295132824443445297052684097533623180143883452292673491807982887239118860800972492611259106657340731843006943647237824305890254134538559070396996636841919272125742662466982902566840877007762043731146276138356752063271478049331951725192261077026647009082461527973276103537627925870367075173779420749619250517875320104535121800448919223692670903492535048119129576025202288548131819127706072060234273064647159483332515706254552223550154027771785514803782604238123534516128799769099145531852452698915780144402577501760288913424095594614785247681430353845158646429604197092097689268550769501549199033387679641359985432953279551602176993270276431447641439416425194465595103699835851673699144127868370002351755321542999171014941434998311452973858369308464878824618807660641872548986818733467194723647813615528576218699479800967082048944385950938908540800258207362098058915274002268272305355820281672467932419159096434519722650521272086333763847131891292435953410194900007105755480951720307850582250440701599070498562807909391005464705139064783733016383980419072653521412285309738723109603104370197976297410446848015959897525349154159652959442655022913565447889877075445534496408130499781410833169258670061334551756995342130201803260124434850462319685591989411576162767744332676716329395264804546123613644263579515290160986974442856102984296352989242827868813700440682010293566600496969756630841480299973241790360151817857733150980729976072993660460149508504838640792337925430614912660119705561880168344239295347547630179388896342265065369178082228243866742435100269193255252635816005929936948019184001583862502886820211725893563332223965569760482797114266647224958278040395886229089181056753533252066520524869623532585430395472229508817831854962183538557266801706365324811105703324692598834401342668285208297772374979896619240039007065171272432534398067961351237335422801729154608320359119642060325920436184408073093840803982486286887424291320007105147613115376441314563578515227252148079283517086178938189803624275174509143743166626506721768731527653435017897685673910430498209179823449851850041827399372908234084848706596736530638495973748588657416765392328692018151221915176726021192883030904742491660606233877243385586184936881788902710075126911153514723795061553906929275663280632387681257880163967597631634906301372012559764360527128147239290524580834754440044248660321228654940395166236060433056147916248067916056718487614563779874228275033886112737013273228869193988853526842601874886984021877490404508993755521209747304853745806330138655958964828615975111552124071839626174973057273404553505533257395784163268783510641523127547643468975175732951566716084810343530604868713300898620613078360860158245262280538848779348127153514658100012917068389926087248379466339802563128513609766579652273536937337360254337922031585890197873222020240244639778034742134780511454192613665246119180355962987054617956764891449305652996986443878132275664354526089874809372662815022351481586091080337021808651781794178803676752250465020532753243806552276350425615356719254319076414428652203018755714769369581328791587340417765039651845329774554020527356224573590316564220133618523705335242949967358168415739750978051053819290224872068020532113847014524590809745302710923931347752054112411789981030427916738196171322689975160305186969158580135712116104143154242819774511760162122046880454597532284312565845678637749981668503413213526096746923972328156315904648533654945555944823359896373897138613387765971628678825179544032846139881242626496469998280551845226723680998290232448778851314960199380344266687493231273258757533044671226295034217692751637675434535101201822142553556259381428347645705151672471851752626547962599049553942639135800208654809507497639472341563544932124967078098958503856958478828833043249065541521441386969575845708341186741949707065929197354446450908626823358148263874102436302801749662193458502981795086835838934793599891182407385604510300164395657077822165150897319139939125538642376438276191793317850267002962526124966310400778884701843033265826630175408684817352396804273744915620842967718034673120003265026706593575023084215679416802075131420500657596821146696336754085099954095997909698599590425479767954879989364876877850146200323791545550855106350338296805084894284624753616332486692041715225610387923050824652802625290549746442093896609655700659157436776546303313701235062289945991252315500158019130581083252356166259884594770525971856073429477302365718977597968352735650151543314045529703521016764200001437143036983538423817425108072400055119900225676443971250240354027834278439652909133123084922032157189150797775181062033723338128965411378933979325168894497228088437972372550227676178951997882905380029391369155243666249193495590058262279569659822783840536948376691866290585906217906436203272122872757201633103363350846398228386497625671746890560416348974103715322548331989136888975617040342285647641052150048780530860626002777306837357506593389314371073447774682339567186496920938785711985717251373452832292763016416310000904854624515116044021563738487741812135929371979532367412845304169790967396631247237081323286275713406677096134549864672297795578309713197335459765068066685581703933938325964397102757891966339243014488552996657456362467380496330642338199703001185384117550600551745832602240142034119677677093796393283779702775102986977305203975826682364970124858463697249307298928779726086863152510195238743096388135791402208340516201178139883614997767979813659864296427848026352483654338851591204699311325790667134208690763219797059406206477662892792450823430792684490462032259818401106499239585490557102790195316386830428161277273510816757977549489711222490934912834638521745995910488317336935400580739781080337412341706168589124647714150134061636613003924932018116408948381498793973369752970750323574159601930432595468233205017946863879169193619999030037896512284485652253602117327039407730762699587804576489411791027677505423326595167832987010675330084840004541454613694964883442290063142409306999177604023329059373519129490948142552816292662360474938292419005092169706417205397455009433757617735462889317107507498305281138621074386412645599388669036713315907210403949732137891969724745345489565056150934068313137885209520993046772818404340362420529143603017396354636681706254881746734762567192446600790614374968362850115868465073222121044504674114057656292285526848412758281353780980412367516441941301328955104070332531876911784625880553762755448521374731044021966909850868878925461247471842749193957210403781092080413418664107002806113968660588057094285315287539411946097679726646072594136550342197274610457125799596196755995532169030704211920825661117880340928635716595860987856141943293654612492916498363021147163068432462497301128402140030282828285963942226056790923660437903991445711211768482343846492950230561734756035315820183140435008892404151947401411238414090982792958899668659471128922155520237096059245473979926144437095519234108284468777159989725216405430480233156975378511122210074263920546200516427213184166779402716827101732226001518942346595994694486384578702798361471183909535944329448696706000007208820937699587836807421835652160892054452154700387430549803458835913471684753000363567565422052271459247608693242548494613927883814452520886531892844558923159191923680069651615021951432394982729254676337908746516938011291962909178603933205494554935801000104318575056421641403274738277035505153175002045765979105173593941741312577986014977097520374301965909585134635568091298120307906737500037889134976628545202277012203269483406040767123065967853195121546861211504935485169042053223843939836629432237892664046739687114209449531191227743214693053071317387456963428553756535562590832612238108132450682634000321883288224451877939461143559221750818831668833689012307185400425906174259158299793238889746977133923713574341346997326060260982356631811258163024973207795890486419164626787312021131275737161266283272128903379670478273401369923660800840541691407852188804653723361666487936102346959156681356246602555466108969167968142563518269943649609788998263201775309150427581336350298061999808548411435377094205584807970110955291341812204839856244590734043456936991935219335220798783590999472089200364574713923231934723114973479669789160445151261995542091508859270824229572612797504830301206182625649171878389899712242345901331416403174096047413552034735360962912504317776804605190188688533151613757449031925635797291959600674441515259023763052504142388338122634395452482779812926418097847096294269717220707506261550563512145312402337864128711779810556321221569722596922558990814594765721463360010833445043119560955240269733269914507207913862674446523362954031065442068406933848784523455011821585839623587411862576344403665872775849772810034942087512319521964451229100306989808914258363930920884014489697078882511803842491729188931351081177907739917220091467707131817315393990202087493070476316131699967857237859101872105450920317534073607670293342025891895283392459092239928074704384461276197087402822334919353051201935242666031048864483239987940900082447084969587848160523969609584256639869834314776177557184389867434959630457260164639046649027296808148302210134231991174418402567136279159515195190483711774914903660007604007228449333942858852494732507431973587475517721806859717399516522565482447053258223633840116276464133318732247074491035806633599585596570883019324389184283562920766087503156944655673397406201376713733557674436878943464971457839128001756304647606110223270587797263112604642367119268461772761591424005882415005183297703561149567891659930616851300814675085517591956894367243954900591642221335506951359532622496659254432830739853694632714183245525103625817034607155500748621692391235553315433661164894969275460578599144872296363689812762741473298971622929769018374281322858669344426440774915055818094762059005668150808938160884346216667814572274574767417237733247107797177067425470422314576179599926217905844423091720486368175163782720128877117477287401753120349051848517204841367301533556368623249637747657937293375125290081303561973007942568839647289141616928342507622122422648435959092469963592260282024183267118333135643691536735856946294870219004430491787228800275856471185004071304157573494235317348074229572802277170617128639798943279383162644968200975135578389760278152329166307691405117239981966427085379457420761243603589979721995388123216808368538236397777796551664670042060880978332327801599707729804581054420836586622394284861421323782610933392550356661936500504468506014176881577408699707835516480303062030129817065798445898961923680789879005253538319027469829637948759359062280574708897263948919252191057079786863305228055585786358007801693357518068725226843722580879668686787152256573371360525127199212839396620699702552737941333659932818431070198509866118340133000334607540612541381582222807707138586686454293185469241710309835529274932801246116628038731455283164293758468831128785222134021953650832843198583332412145022254837417424467032069489165127352100032711726932203131021292344509623229605522779232002621879031158804507381677838516920029675033967917663255969864727149899639022388177440050589000259564515201504896873806429712012029267829221283882518060487156243770645395824829489696740348108268533243716324010858383983000188826209519615279661072590972732370343069884771499656190401303739363574195017454527575352210713127366514320633896967370916210497069033899142718919019250013583038783186762311132268974058977689545061122357482480344370271752835417495390268377897929794193954122694834092562867620807416945212986118151899582739354742371375811036355044861032152282491269857766846990052952838388000420874603965913834055615318394880836723668655790189661479974014938693763797237268901462598938851686804552238452986515142916693985151425999067676689979493697503401404306285604330163768940838378169489644705941375432401108326022196129123705580652619096984940250115021522029796555011890869488592118289874494326354646775399670988722090686686605270231724746329117595536860838757482440910723178521089496077221596762382699944307483653396957774950645834242282297828151311619591995744867597851322323960795190840833715970804682389244176366611072404215373243142817072017544381286261887065717311316761272147605102849277629346253556334469458302157396027271582646539830002082273779549253613826465678412606023645060114623989289079010197065107815599839460178295403210483293200265601026402234320595027626184323332308119889287020785910145574057994332184990527546285494239293408993974378913415749089244745664033946650107220695630224736316585582942144389923243855354210031406342675591022642045914998428669619575803602637890263663548583320831225180523026548765192811261336840247304940353598460197442797263780792996443012409642892975209777655276438323227383341866864422957146809937751485297565902979761731843583569557031049778844421313725382443702607358879453768437703989979647855603180563199620627394169857012201362488734370312810784019967429618982539579948503202693146275682431107225312225815624277653680963282729672063363095269665215727969898196728107739514633703724193573945936795023268484536476355949779625577284615305223591467913191766820394323188367323923767845095269563104921901456820221507596868388066498553901682826376363737794497870839499270819714346544985225090874456971365567652567798287248632304877265702027505748683262349084414020755637249206445390025259602310009238825435279957405828424094497456043485971777633915715048209938355051666379092433668301810190780277639297332937582652238681786838970157337740308986398880075957465623602347926289932021577167463843779417261464832400562869472782456345959065485966100849916980005767090267005571714315582449781280956544048017233184636413935083153326033423771035723579358427416090707433334917731682171146293278794409820859438480073659766196280016543847660391894631572736377674588480954843269034438806914161167186808886063813135597964269863100353934021836057683716061707902757683316326499235105311846009313968311876209882411806935583116210377102485695481274668456002253765232211391525964113552936589400695120691154931352023083941841419642232450812058241390995900832345922254950991116381717312366626431952222617406662181247037122035180569020068261841647062393453039924776670582943447818218280059040283870035524736929508001868120415156185732251475321095246250615152162824981531204837549674410769001588675338768218897209859438618703958278405717012064533246193377391713370049019569789159847221203665381881085330975854024935705991758673197217385810180627513407343916694197257340355341070921771586326882709529283623840018117833800600923615686739724444246389347882711219152911483809080360861246443120335773100863544994830855485906925941288898985889783506956625275818585487386229037458891640694819794349102273635933611780878953991537169036954258693650538356442842583729075656208428412361747953892191483919856874333754944313928001140179965761862924636291872094348087089356191341903292798098362266974557469705645507793371638903088460637967123732059025614545181378001358744746791610554083005285190194701359329385796596855901722893345437791435420217486254509828565939330205338187204590199478836985715687295654334641811271030886051737148511057701614110734287201530092355335698149941163351989285794599925619585975722827647658875695806168260350531992318860325537328857244389776341382380309418309511155096159500453499613805702465512276515146570152713838371401291025387255344615663261998527363930771441487040135068602375492726065514841358648908995314710980437648767038039563924496570012832362311314856675453650850705134153591994272332824600527019728713030732553064966621475767175831495639035263547134053374820930030219261096563319232679265271351928030723641764929260882484069355941847905663320012959845528301004931650619508007639147586075864013354621638937033274447750095272394896838148780149382718032196138572343881528225078214110363422449683892231241873745998517649895582219909106689880583204092805084729641819059557396452623438918827563960528807664050489795782512117739099491367142804362493387234526384725483248431586872654452661936566597503304798282777501406059209176302604732303091796755288870101313848072889072577012642107346860770512239556088449694344603625274906182282266584061530575066861049242100226441685419557401912238988272110958989042283833151391621103915724434896177386407662565720879194397908965125491420444757783837915169483329302421161670410009243281693772533268248888017675842967224170946271394151980406948074056243852473959244777564173164303180288644993447652669184218885117484124151429912607738007643552073282819752317371425308996932240256077179109394571735670554536879194436067082047053527683028316265789264666242092613567788073822700906485541174411017524854918070360516440337991835054976262084425014262454277936536594009158213435264971261502801661907285515664554373080069321619559812463411511896478436636520646018579371950116755194088646747797741036690105968371874356587777884605873884736688895812811657537757077704267875282545722327388024286335009934151007306289445044735513952487542643111983525690985406482364680271929396941864883573084963900859520325183550565825024808156667353424851288141715210023925700910504312739958688531566530683035214251625269031114488693108689962877758016291580154571940603522588661476803754883507958670258147200493327951730067913665782873858722751739111755760528527328463805463617609593515247010047831984229014245278144344181185025935726894155958096331279292673527470927708858009055650958243731315599557672862566124181402254816363074650819026330696583293754621813310577713033970883995752114114473301983430398166916504520784622949718935699049374731725007852061119578978204619636501250919522958574693557969931709669126424153445941106361999273944838292830806549867677903265297995763852646628903161878464583002585452906172817516055473727833603497574810042092477725100400039953903770598974113688752060165196461193054023878775342150355990655177380293289116858829461513031707482009201087306345554937898642990136134258673259150535657969808247023459679391238074729086091702901725054552550693391640048150760809719542029837945851896118343098537452601511177573319198260568987551629694306312823777308033340069823556368417235786024316052245913726882926368394857685884880519624817930271044078225685845155134492574906924866586594813999347766402204407875070402552332114211193832935510211240219125396490803727353303044707361330638156370260636583740374188790389645482222616455748669991896874173219522404818167670823182742109732541735559296430127094296739618967810201666278249873911660896101844657041474727354751895116347043001853041737993608233989027794365054220355807741315739202314401396784473895002277712579282425598719124072360946544454979151321604841793178908857644227083715109073445814846583716770022597908249307992083906018139172773950991012903344169274675413568643753551863811930268017140078693399055447679981344480901145353630312392553433177804610033295181046019205620717044444987668192224863262441176197859145839862449172889019053050001270190065518618922208606789061192525519872812969388236672537125538312944729819667942488413115112431015134083339171367819316846419958774018497606739137104781948161729792259905402312065606262226522105392698497665837585225658491416992190305865413033415834479058952784366335584558022393803754795519028692893052418653520292193228134688780254424964657619657800607782271423829500666027411284638246713762215558209947639792892997402027778824052796619678783052442640490521843488025273107441117722493053304476905310500807036550546489998008970315122442912001600945922443736536180798434292562548622639205612121166833163316636153047376308012319164295792462573067962331200746256192626885267939918047275381214886712172534255264448212651631983044691269148572628810283386923034958863879056300404423999844490240565330019718371352450911515846366611491723571104073370033927760256413779154013782157819643182125420320279525270122145460907847321833159384318077893618702029583910056448327706354906922591624116041204034709570131170727645535269669135763471357648729176500898231140700962483547964148959693693283830684797065728623111398687752328090821279350722440371122010524708587278187668150311651126428881266165371043760098499259223327248852643329917575340324055285824723649148906218159101075446282962185475095733819079868460616954843940581895337727778560492482142584555572655548525406893464178197689177503972897099346223511637579670225071069000897319689236593641454768763932717598895101262296181777965419765456104068548481725920252124877395907948919097487822713709068352477442063996778132332078937185102908404621595512544571640868341355064231151270069360060063528651642338072741285841984868452222620788294980715872921428331669805054931489233536679566503441101632203018140099319786400890113240114933268115052456417279591010232688312337011924996667229574450172203179017246715279213131036028054412233686481136045910608343235625263263267831173489117421735016360907731461227971999169410818071873337784754898346183142934688448781390709823727344027749958576495797047680991963360925608392752024564370691832701403077179879222138080406942294181577181007799784785448219229782140474218591599306629537640162196223315920497136564058909772616688321778208678178944129318017506707377922139890069007462827193403108702934290696007465642071491581049596835080529519619439769619975071217649504750281821599843758198019813516259526804698861178330415539098067641811828767570881387530125894827557418516967869380852341343480760252765884769108632645338634232766393610562579476271552888674925728016823932547782075522475701491015722511739986217563063909590052422802796690256607309502902631355322168930076142696246451637382349832834609538565256776587577039007636776310987721890678405646949629009062007895494549382914609948120576654737157391463552121428993405299026128610569203732750867422276513817846264598810751099020583538249264258713275970805301692280570486381487514944522002031611432146214340018814680219279561861396754436923668078078764716530576133808699499523466576280534767269713285501731533351759471484262276813177170900535624714565422065769897540535156929797770939817938427694055488953787955060514909379514715275830114983320616606719302506272863865058255598478886306723105934199535477912957416454743040566927777903309972385799221130890215969976852456554406728802862958424162455143525213518893620089549124202709447957997529108675832462449555233584570295650569595160962322914175016779151553097938897019432115149955386950334708409723565229431714386923139281316408957887180296964549344387147675273272614424356028373256847892697041106505262931042375709736166996977069705770428548200001942084890418652357999437791124358529394722476620578264158402488126049395396743416411955021251763326751891688885078214415800522392662675352577733868413668933587109545342635333216700872179056447440820247818625053422329081481682462990371015745850667706902328042860076066109027617701049702303747988321935812405598381558163740526813228065622450741526744315229805896130693508145903178795381043069699244481625068418128219321882903633467852417246020953666270426164954633036889134536713132912639134435663016225067455551802768989129152552490401289518781968718313041862158908264348232618607018477902938794526782209446414875405244762896866903632712590481922091669747563764972749215025461537376516939306605258449916412896224070437564374823550445977937827091583553036745488920371979801786824438732107872284286255060777933712507683810037152112217531585334332281339393877530030592795457371053769329474997142894582333370873326698661826905552472851471142015092709663777505724729662762817991070724187410907677846382616009504298999828546290081098533129979257258598226078214469299948735213622653435723160920093623993635429975066241783107437404495664375457259326889087888240458348059958288701813138186986045573898880570341799246484728085255145689197126521478183563377536152861389445994810475330153137517438296209728884952891349133362767819400797599014841480381806530770969017896878849654405545054301763014659684085451091739073489522127507999802581508671076406269698244250526718065262950641661541803514820359927951264299635317724724822290911077138879387960305728814894431054521322490989363298003422128299560843169634679223846755260286679877037575084110095562305126044528319415580201263903935794272165278661276751363767551426077137601633207821371704054354112124935254261694947874365977891648813744265840282768155911761698481496377589324692677203863028531266284190468212420242337145727913009931566350096303886894777416910017083604938399405536778186632730010055917282211598450211723205037978360006684054254434517941920882111894726614542725471370936765046423851249069288066285168520456575813696810233478935686902700649739654424122765180407485142250306878229307202757240197484453778994516280178798294802490939647746465203777866876424352304015188118313969199314288012006319181809018281133404582253016929150110219966825600565747395768259912705815591900758503551682097866522590301480407992556886862963118062007607462006818199516690144321329952423585140530943780900466883325958827851013965046651195590913530002948903568803721483364515437284604395028345779237976303343634526877331480968628897086489004365699740269758711418727915255827288608594281040775995469314233438038288717360154521285762639689704563508697596126170473465376307478853141064482895447289714722162540393427211736243894351924747250161731261186530981593163839724251358682438789258020630212653402544080143506106007092004951452400858812578499487239639994042864725025446954085841837073052269281602819305459188748634198506658768210012174220548262329879512419302350990127098972050800829884936667784081897934430957223956190958371088532949768197879580849900912152636612076850409250216269609223746354681438330804137653867148507996946696356947700394397559116745831233705217735187989399623567597183187785987217492975345356474209068324891644197883286895999261726106359319278320832388708946834650223144406944634082220485484858188354020215328897391785480502557138497526024526961110065659354577261506657039973457959932503152796836197824222009677642304062375077569121821147004378067346571588564116542323482960509314016775065588716826726098515835984543273008412909039814245280301727970930284753163158602484550476614348021301870703551439315368033659222672565803930965369519982707064706685497200142186577732754285101222789565560559964033398697651246759993596611087476620190662931468470670854294383662683079768752040076591432861312329969618503212146865734322991420530804237209549146926964341084708213635633897633504448024213285619025605739522287253405227333854909648695774065228152329252791904166781639225062447077596906884175906397046320000976394925247160688711981051334809113859575721880965061456173950473333914800974037048889886414552664743525757209688029068606363029582479814125536516893498889322269969570243364266106647838809520027183582203318753965361613898600100113890953422629380591219991172134756837583228791725045479245376980663564102459984494356758127338903488394255272856957837361692843396841353397515584779650864356390288584529066942380813637622798090934916773296359761670854268975346549351171999336361425918214863567167920857096315874168310359094405250321547101134219884099196152523912243045225452379697824332934354742523178645833161130185807950654776476084435279298785576922139480152462438018747198490371315717417370887084966020248596745806989081058902576991933866006831019104329028306277513969250975782019470190507764595677006310116969595111921686266096350017092571742594768576380917608210615738165145949466175512704360120021195997325408477292786737505592075386685090248359605809470683175897418490563540094095073676194956712967060787786191929644528694034572875654563591817877253287691903058697215743783462957760166326201475086975341710408167675085317562366425022628511803577827279470274272691709564547091935185202423376271022705878760840587576371470898493810777214965514611948463473325429951147832146495268634666766536126821526017467179560268279513062090260042112656006291548818789887895031040879025905086036130239214082502501265244412286741898495447604260190396877137776483439379829117508900819052727912302913889608531048319530888611852778621022783306345456923851332822590549085035074334888038485128855077110149658934715627112190093129247155496823959565568066363028461309704361579559166743762070719042502815852304110409706653096609325823795255117725920206959819480700322817511223320793308812605664716240254993557146202077949064026119257408288007173684527271762858814625080633742386337128609424608271120502732642934268229682965173535360654589014071855212992589947520984922778752730233353844591216189860239493410614489225629043747562796836520760304616873709608259361618075724083129896684704676176852418680720383395406116588026283700492866715655513836531952824134200751464601229724559844500150020138742725337572759463753297144417112256168085904273804031928906313813618705657150890181355420478204307553837587365233107013979247352150147962233346333247407891712371098403420447952209838938534831679534628524922899793347607579665227904761320769238884185722644581358771973044123671229394921787460998000578293292949706530240664729604285990780455061368809049181675285375373781420182178917952273938468498907570603708636731137929981147170516195422248058576259994590344140067938573812820833269473593798146901124771139656430769473623918988863450024059877583121822532583180568347905095616322438945863473719131381406579858743764549106168344004303619773172271049997949558604371831539587303774264331185623378134389890099683749348207403717404871302675930082661204237481528371114111202885771827207224478082453312593855153226821883618699269068802477198308616440219627538142303843780216464510508414648793393495928139118733133270217168382411653332177566796412425573541599263500943196220122546760252317479346006580670980999632303270396664580540313261014174095870725626786937820944224891078574231320674722968432539296230090931598512673951615321856739693769710309396403421349039561578982953815136259501662177940305912422194727833819281549128256714556370249049598169911475029449323228849689537900974119532860982078864961602544879370692855537853743804305305317144806543333561864398425766327880788831488596578894364778396971317279659780482802277370581483933698277149805829812878358372501046689827704540952671872206993845170508485492372916205241883694704531830730569743347349758413970967043491289694804117114671075128704530571854874507994679807750800544471868017687978298884712930688445860341111785437181839163378318276082861309897307126362229315928337064152135048434965138033486339128704284908796064775757620701695579833704703443088371199566962148081916161281676212335906469333575958862400137650930150273266922303762836248448768759155041504554908331599604892034210521799798380273147673689874745892698497382602070239137155707250990318488739512288508568178920602627561969000782765521772414304192521457394144152194761883558234540239900281666660726943936078023695348010343771606049046602776553102800289667237860130464634871460074488784973346376509755488110175812878807865007340902009890948111512351603262473026931799729538186622054879704633842019546318754392546105493732312082023606136946969173395306807433867827801436686509236929864222267789681914774758321407984957616718609394950616931991207878454160480727300514360488378799169834115346377750013967842026494462543344039079010132464381707345163399778415135309484261065025963084948105189599040698878397909483124764390826610849129365563036048207012285775273416615665299607816127441484674488574930636121949004411020573218253213599727323628219310130578642620881881493031837435669756171971888624871175223239794380130352931724759283704486009435222770962105611556504761480982718882557335416181071741721372322841712725267521178520974857162532656408703023414887573127769253268173002770738465556929024361857104365267539069009842484372045229463604069492201484571747280492873193819152659573474227161319486097188051533548034174843078603954323866862666710311063429017309773034976129895352039190986408423104106649572206655358309131232763458361488090406817042731983693309245783493656814416804988430621361350780573776470951054504467948357313696512953358715735825186585286452827865059638667265465184327101013859983151860974057547271774486838746414214635290425305615853957807215587521507665445383505759768795095550999710414198385732719678166968696859780040165123605542593123764365019900978300848764899958626938295150263274138414634301610510338518503596998273826048248003476075493976503933760830190074558000894354004491411594630743730038671291483145080653479454561615635036208871010046727317743169026903478948952281653767723622092821418235548275277825212076301413209304453098423824994253955103711761296901700293960113527266994594688819962833242852202267259989767360772900041468537539589682214000400037942179707075762123096068713167462447570418433804590831625813913548643472776849493629932190430343056198049519637487045930867491526064851114002892835451295096168053895764108085894412643268520944756129728284805292648144588002619823212313476531001595770109258636699725989103412553257018693739234015426135089986561375621529822728894897751694063623721165877551524861544215829434519885665044150444333404456380075488154187696610000270707203277866652073817093007476811725129826943034745817725290547042656221677180718679706213347867091798833082235124994048486514541407184277487870425031149604269811480873910535271539627294694821825064590100959673892554173531126159329917345073328493468986486280250426211678495530570354535869729414113159952389409289036320931571120640022479619989065392435792403832853150597327542967532872814034430526354428500076130630059760667350035757686844164976446155061190117969687652601989148345487943153668749715220425703516695149327099518793480096110887589254657499181708483189436987757219730289378978274109866461539533120856755896928656379396241047292391863185405195642973444995145992030982883359032531954978988841207160077135711388809216278006594933277664547933272244596484129500914873986723414922586672468630087161115620765480995294336505464391435607840302923308252006564854160526033659601578145033454697458247030844697817771820982519971492209867934732053720629767975467709661299300230791231153843207524495976705509520880251176080093061928071334520246365621697882457007471386451030159375591482028321134851504381768729586202211756973329216627394773002823949432292795608215791758484717195655204895468192564788664884880104609432267028189551288154689885030206310988764336683964751970921158027401280237470148259658592568542898398076471196340688271866077017718779709404808511209597279606264935918041808692504590909417863794063286007101270608850730378007615874312229716186446561076423229165130311060204111596206508486989568742157160624662597688039664854033136278023531747548935631652103689634350088820209478450042017600073497006585195182840447202117372409446655333167021471900358759344691571338307586311771237450610144806461137534164006305807718795350202448729926196081315669052619732335722861104828678675238244931551321879213749739317767414317315402625674637621734922296387470342097974992421514428107922621236069636623096153744206659336931650733330345774489146953770396013263051126813010077937560289858310452659866990170051046936444921600529463786825649026694997207411914006013763659132025840593189818871398877961134262733284962284333245315277072639876642870192835596405265715940560854480205893256782583964901421233660193855533618662805191808220512248433974286522823895192091171075646832182324839732270969252462488334622114747761661349174053775126265242175604941577407313993373492156719726831255404569378695249978422562244267193541899794789181781032892076467028545483035667162159330632687732014626925363609512468222816183748037494120100128042351033398514685982993784483451153849573350712567268195580643234886014825138920091957213011712074949196717696360643533175443531309039570392048245254690095199423726427293495999490132855374764638321211616952591649755050787686656166205931160367245574128673795518969410815177125953254634303668611908975098221841055798799506327660453029073467419669622710599750437834332849938669620256167035017860401117350706551087323201835310121870310062736253118036710215162116523296163841014992795164272122908808056978350869732129079908497933407320676500478892982190691234914187906026088793109760222956019221280379237975048231210523407209111315491503272505644832603114415685236596234550491923682680749836768796398617266752348699646678039029074421675094560425909006696065361026605021265002193665646826323579479355137093756746951384891825999919796844961142654545260956226970100689701540604303570380815716624104449743351297165791047539369853438347531211393154860004964260192581972521421170484503199613837595890846274090377460656784945882421805747891773780760746896071343408956770522915349233743046362572110887911601627737148289261028439282476915512988881379812128340457346354288035479985171213871740046863008987465623479352653042492712997339714593322950522915433687310048244245624740072002230585716922843068196067860533319141313137673192107020982264172693209219773560169219312859532028137988514341688436027255159767950380015304731958505264552125860080132805028255752503087456594523687588929325834817991219097312386189836202385415741105462991277583224715121439963146799533084892053618240541326990618527993956051276372170825829591190573463942614418207145278987491979448470109383178391196314793154980539598534966004125405620265316728792388933957434160438725441246079494066286042581177204502944670910128580910621273767518701797254439236068311297342168025895328465326067821801407903883840819739112985233879146340656464719189402648921162751458937388870152627480575169190154233721769797860479572145860300468028596232472690282425209151172395202110741602256704421416972624506892963350618607927024012185552275451139579061977170380135128459750618557113991836523791281487429024850531783151533645914807334232970366354724227823418024332204176655704961761947369778906966868996433775156027807631981460572778360933203401686955350361819827741292670860785451296549621371234143386899285807419622415821144901910358669233083010971595066492430972406703501525087277349269884142092621012800391819462443480977411503364372186108954856707077533815385278676455905428786528808908896241811615468775482663196403457864185583965739681429412292189486897803589542252727196133264911533532711737851977903750462050238600897904107008778249947412863233317685051393423062708946119096053001100231750317390568832588162747105490987396915355690059176513148126008774349437676836401962088508907228267661290113152752487643644183436346226460923541903331156573188901796541474264712337360332895437364335287912697285583204725124853536338914942462698251722899013000608639456059757894981110774523450908519255660256810809414197459313062586471020316716344895284822281517244287333174219688124098716190300791064449145168041109047317470895188706747508849260457094337880619854648927175060964082133440543368287059014411159998458380278188801632496019236716137665939557047793542799174138643653776540428266850070631809867384565048730958003646077923422504038758178211604605299747918349996610314601369105101062873717558599216395346841335723988537475556128660102056985832180259605630315258614505445478485703264368068803567799444033064945860838056869882706093388912634367345539921061886925668831049669624260641670458591563902099463586547240915978605833812469091299288249637352648278953056694974040130827000526824983180376005357751472128318085178176416858920766526319697358419313537236265499969504819729323873397630409403204550688947083906053841959395482424097746918835782281347662827373451308382620965685941002916468094328607447740694543592553939954895076207116098853685532791173500821115313522130661852757823392830624817605525777427547738170735457507871170877588006349828352825891064619116903913772933886644207097644742297470855706356172390492970599896436634975003856098286473410560419969486321795461353468026272516489649915690573340469108335181462936002506892022440274516618274796564702242187413489487095919551818261492201552265194299628700903821478441751653500760755663127357133942793362155508031174205877639554077982119907888672455911069795087378773171867219193840003936899590587859685035468416844184086413943294424115784574836080163674843533855735490236264601130642234851207714611716352138396936741403025322568725985477243300352219522535298097865501623613048164393024207591795858267247957985853412696624975650493573681159830793614083797698469454945091063947033543187320374578462724830316451967093845747767726793902467142736350420358655945667457820732839472428012359199598730545218934540445698651967244373619988521059515185220417226561038440854390258678276525601347222630003628075845891812305915740434512207377742330718608577137206234365328144322635190610924288064507924017703757292276380502250990817431714280921172114520025116552421218854296523190093429456113678874662158446568050997496916819920117688301856749027207512175504491967198614964104480697593046829823901319913207938183596400383934713382878807187491535868716820196097469799535943955430570985863123551226305600769425556888635132296393823312041470006435918444521375826897159030940526265666986438070538571593533628203042677296103310544302767415380296686365562875277902128045954521255060645039349147988345723184965867546155804494740867680160439141792743557421319207991566837889135796638566798609855455763813538230402583540706373838824384023981906853076589052035861658316748212562084311033360489385832053296460399275475558358526318656897101264638548607081396251001629365957485127189062053399334696231276131750017219817654599110398073958809971947447807521455759167497745606167188400948042748460027527435549631369239534867498726222759503163104100156573443494567018421624581441348619087053200445191694326667524281509261657190099004550492836925959923720488187581480514573342468584779501628710743631771618991667882149980323388897412119517626539453857703696778400028460770537082895381715995164394270521593572416029391619289643384407905803763517952967676368768830790104833095547979046879105322736841357308499210244210032979456788411646943659679120650123104212488652040263863467995151366636547049234427181940241819120926367984213477689737671612778303082323967566805680985979397825412541003742575072427549317849753389954290506428065863552628883214893353612651016649285806404372393743205282395905880331155204401102296419419793221714963847949577398309154307269236414180834031019577589486604901540021815864052839474514507999383767316866281657415775553697466894809918924049734145388397220300415509376738785497358117755646412665867323411344768577779513627263524379943977494241867549081429479527278939059791815724742455065339305007154339234941205389081447295567143411979926145655250865559810137873290636941494538055653245342247055797593752734738329862748558863034569538386708780152584729414599733766703149591919958151709902523683046221499067100535038143801527023502619605825125321648022000299581357008868885450993177035271671337542205041207782710646848384019915477380008629135420416833443492832143737788961426681729324594124327290637448475874726243379736208940135418163693823232262586416519641855448208719142129989262826656307948376305280451029867423532024554664096912999010653958017858652492473356652732341262672942877238429410967849519329706461034918838833746787028251971008571365318045992388689444600369690248778574397265044362427217947035259474518583273301548000895482076957459499153683099020926727510615452833007107382797315620795956228781496484041606055749120271869658591523343382538501424251358943846252040826134702132705612224635966776290571785088881605717863564887415674250185892636041002118653762021807069572863774071345561491727068129005460121296396041010528759838685136689981161257304435172387620872540547717006818767809317211524964385190409669905506802428786218274009254195305909869472619972325379305052644764494716430247977746663240533469685622984180625713748995727237508658111125230579839971558271446652095125440131629634550544772461634180678781653501053959270053630552305014613510799267934635798083105766344253271299041136389561707712004500216259112394901655861215041531298670691439679418965511496659903138153333679885125571470257159603985595549216952411022041675147197910472879557685791739020318659753532591060075148238127603732964074685142589126370655716531524515498174012235499328591805883370183525980203253981640696302094942348054655525029066566969858713231135617267418264299979841319025147881313691779034412817716744861221724262251133421589343962280971304308428194368025263142237198449769826921407997888330328848052763430435055437055433591343347297740239393983911373927468879711891171887465103730431076130871916955440491091737482640831028811042486398898872911341912378312288232463342627905777515856486337488513221890577042077882947701957777166867408324747978026921806623343264155502630133868580568905377182570296113503743526109845138170608929393551092637382635189252594142840851449985994973370793425245280150485172929437408611450271420047586623598225054717437779513874932509564619941040864145113296874557666472978230590184317103202802209298105661967156466910287304902987978715339264574545997226367595455779930482629076628866321191442280675475003901851247114397831502814807462889775245917279576211382073520597967469412226554813245038650572507548614958514865862250015228844930000317826413361104452130902765607744260506331534661823564063281576023810202203134284079132094791490527536769538118850465844123244666989887460844179830050972389926757893886157118854486268846948955257081687398826414417455385521688583594979528928116333920827477034520040932208639953849675834513378912752909274798507736068298273022802797512153404201884264509618187839443057917089834374318429419471142854638691244697829501874005564925528723619340936944222292882841754268547798171883864533807710037372031551672989388227268699942275856455419576472103812588692407999076265044222295184546037638630202543563822076291899211754989016831218499500264578094999742773755685502041772688848357347320355366571608864572197202272122523686158448774199310051666962884228723366774631513873333676574081809896683775357075334357374508305855687755910305213896268608797184094734189656396391053818696854475233292648369635734729843944952551815506084488123361591880790995600884994435891535055870724866072345409059715169506163253968366254268338740695289044522996354278834730270503538139252941638460742492338312033249731948835240564697309581330674280236962947066791854823975953547852124814666707022018068150230245660788304736917012682964609238018655702748298592969957098041171390991500409198067753115241506821665041557987412268172448345893330260737866059480911395455324925060656453858824588301022180304357104060266101561061102156193319680729455081410802721624376705809664343135686252865031057407241622042688173023823215887069689026050656994559961233534694811921823841189679474018759692200842808822667296845941163187219498002864264918503145708252175823153101908461908600697069179434697511669213072012298575295398053287112606648693167137638990569477351172429428670928798213198965087251855734917530207712886892392505909504180644079753068720857666593035096114458950587501914134792164071616861333741456228121890950200621307476767672975367364342611687780883574327271264013557857237125670379825400857728573969195599229260790224777837971484990590667085527971386631297790875382909683130691360580610111631935686162862447290187050910716840784984166217086473592377530229705237059067078168174566486903135086306720143309006642095494449574757257781085237562500536846385775117769436632389482696036943757018488740343339721863557094485117738710698165269543941120707739681047783482536562647982334632378220825281650226501724802408093988888148169939531712209373056149069730326207777901926342442356221257479681253887366637391332417186061567859858546353315505672747933363864100246318123775844389160736010307014518451596282207022753649271603303354319353432424056190307978599256910843041030315113117675918995106114501404209648622131706796457275525970034291288486284734360802149485786757853407113709455174463853732867871978433585995524787450308407746054492426161779741709562431820402094709522710618587391496790824111639371122350499380633234300369123632346060840616034046178083025646143643460934375125496069607628576786443119569517172334857564339597050890653570108932864607394399906575525203127272023065982316789664344152080861751770988493748248093688484936280796423412941224315608764429479743939715674305465121329426910504212354653772852204161392245023332857404067290346537240421283288405517531964499102833209241364519202451734273873547972718220119644847711436000247636962164435624741964154412524222165452136339431786285071283492563049450356570633311840360513882725814615167386958402231794773001195965887479613999963638087559148684289893249071850802976793104780467609004450684260988040900315010773978581863905035858489248924894109763990073664258243485900792376993204262114824766690893243326109501537625555096637850683612245800951634433532866069505144888406217018989487908066533895176940054150203446903194811903913802220797120099913812520329260132062918117803477561299952011396132866305760295936572160246188926680300550873845710695973778488786362665020498771330598332337005235411899255934287769867473882741707098412673464685264279889040568085733761279601679543021491347971932856924736918405674292908363939810671846019956223220825610681561610134604524753842255318028602526436627778153945066753312736788885600288302486406624112587548262023567334374356318420662230622453646556487050366629027847966844067644023584149801290496554898490360101814450663168679448571759189030129234194362768140673605046760791148129999337564182060806340113660187919067908903725291623559385589218040998285669801150219043874862744589200418183350205621997287696101891778000822135557015749119417451430117830644282976336389090095462814294617527745378596315522397291174372553169093552158116713991527431055087803818115390613884018168804256197769642655279749848115584576520943058642432827098016359538857559879962008930506296357211322756835506957828657345414640807594306385818263884892409342814722379581677391464583608986938877464867266190809202678898447483039964220910124699276105855436137123038287358004740161752023591793577975171492096722138443856086289009129623238116095950211944740674196227141132294362469994660853601905319550614359892128643173705156163744254122341009838806337572363515160234155703647197689193011719520212261556606314308038487458223398388829467774277953089858297212574052785446138079453153433608994805792854490471402735978430762082512340248370257742307634801803696267823101314367012993033925892661740530278776538492956867893518628565319617006751164815906988835361055964000391546771785052654166196926140104238420662211106824337306884153618702174504888230252693695508138888917013647939065886258414853005586315504548114412575487147496512634352849236179561498571233899403903918267832237412284548343606947979223428224690196720661274438354110096313244039993509678941445299054530279564231286904398575821995877862266135248448265092280158054126396420845393399567338707763075640407239767833661069776256468118609802133119665756820734217263207985858754325649163505888603667369357302298416149117624033203735467447540513852081453309957303397375211336732275642412750194060745718675327005650068976863981361754727001377088914200840072183710911994071344367657693011369417466990114329159738193066391538629571866473587243794925118744185352900589533769478828777426879709068964701592652636556882776329252371878204338051609367157100337591885136954429023487286823602696918877661701902706948633466417150670509231256059955274765989791446508363300256163055769710442315979628343996201658637543034154346567756727645609672184474911269110534074090854552794639178789377821687417577627486080462317952797442679118408446070906837605343231543390470153865624920907484766035928804715379244692795738977020209521297010168874476812785049952627442471955484929315078386042720718866218996706904052597265939117906459919382139141659345551032332731765230882745278634609134788059656526960781622827750512911333947467160574817979942431976612836858214523006491950644492312877690062986975270667035047550381801073916376832352048768040963888660597977947834747187884417744918079058704731356707154581101745495925480280365876053099629935033192946781826174308401105561491707165478843062943422622424523907308759059947719736685757405990235694593342514783698288504480721381513382243950052421161960113652920074235300108441942474932189151494390607827913390573360404249262615952778862221659464353894536142420408788562247350573690769134642902962211834807816895363596870125885820367743838994243784817300864135332548595071329935754279299761138220097226818082332980952405644294637478595466232673211258291466964141058620816492301390446970213341235319199875925362515914661781442249731458928584145889347945305270525787764086646159418536295683260957912283971692395052945218812399439168255348597190754767773522921431059121978435587086026381022192836966049310516949202384603948269964836891177443314106586278236870125665511373754894548975293326789284036200541212682082980235573268517411749139189217336178514937482394711431310317018431415130074710321908688651513631042702172343338846068710641594342017382370108251791047119476477823195035615785058694774306983589012557924857950192843925894929929183366355137143241394032878258632671572459230301210633157084813642630095324032894799028990630488727847126895216956672193499048896218187326901756593498006139221699940444602077923076336689947112708479661730375780993219826401271840488942842531232872233250386127396492020616738414990961233890154762485522881124363522747153799491999327043734628027226528646542308050744385969407588622575582649801567891876148679513673922840330045778762372965328543598429927947415571172185418246471269022597410965687900473595555255848669323650387168823185270998336699271587933776698172205677371990307951473412531164482510382584543936497449889743367854846283403924677331438727949894024212809062874043310821637750935473327480323030274532560763576151326601814461131562719403985240178067726314697698426412141785226150802383961573537650330297957724270082473195137696376616212444436463723897816079913556353356740908410725632918049912791580706113025105669516695044445020495764089070238769516460439757319836733574866216925852795029322595269969251243745350677903552392668855810163838711192440653508261803833089510531316288652587317157341202527635707798575788927827356226175724091750475931130168236950914083836661287353662410067603287278483755138468684961831414322723622938554406554598837130347353693374481089923915089656808419572384940994241048617477053625620508633474864557404746918215930401733363620829983768980484624988787527120547528509823621713426299334437872041490370033944917380220969442766689292505186081825650853496450313967081464380326621300452338844235150955018974147053720836050506193642542777280468609519075132873395444672480944600890984558256948832666682673043634060805311647723247102028670643117646550193623321355011917034777802169001587404702184064374723365230334926595032438423151836408653682361847240907665646056904499891419873742917382922915466482359885719777694776234915024785254097398485840333938689440169648347203367172525547342919910755387981678210965622664818599016551793609682948370382436684340747966952026361957055687201651321194744115029209285341806064184882410204345802449503839140665954656821189519210093417173657745275986019758001583925856450213297254496901879307264159654178498763357520790530821886524756218924644934117257117459539173994975270707839873545281406965580004309066757443684804668048666935939126392740119002255897468718128989290670081248976089811983663534467837984516316224416597070161773468033816279734645802817655376691600516055773404484939286768428843225730500367903634834569597734284076308163330116622405613683862828622048044912537085854120691816578009045326254844674487338680596489229873427997446499280591030148206364629686443391355836141928831489801988369818532989992044545288483613839292160511660318736477224778936383796454121252877105111439383010472605164186748579736493774505393200438093695490971380792244099663148663934851611725867249299410856892804594459742567169365449958903472799288012157990788523476372936899909266900737256146994174418122899921830094612111475694568641410064798097230308221624877224550406206367412190265305195495090388290241755768109103154607215858810121008305405549056613276180823718632140652665186694550668753375585953690025161160723600440264529004271905206744312744944549079747359188823720930775877283913500328784242102682188850395132697348069383880698243661578984657797477772845257532886493363683597428312939137982415774442366369361887214506730305134154613463830647905874344628286693989008966488020829852630307971322472349079964493074918538653660954811633477226009551642566158045413623430064163166821078422652852423502156278575426257078574549877254757062422322448058782993699899930912869943935117580845863815740648241202511474778447900374025557513727302682500375938483578652329751911752658058473831156533917733208160054686137969974389162002808168123692479247483732594958441424376476415326099552765535223936872124311901989565835576915100431724627891440726252999268454334019775774515286913585305979794720634500816048795046588041409189237413594700302518081038626938715043871381033493810213292214666365044396479225304905411723428296247250500146973008639799998944009472340204401463750845517715075465291462733496812191909573998945600213239541103147881067083950391378854891714042361003877359868891023442158852330343636307134580348054944114405762934434506579768140999048726631839765331020487620758965447718927631341467782574976162829639244505520064983435107940208287430463653203318810583432967099268720787458704308765271305548441831388831897633031808213853119239183378215516856438989747492403755817424972536434899683128404304718731788986645220588572507930164534920456883633594607945996806558159777966500454552265968001811781660451299106609583698670004430042839490834837325343141956792425478037701717528324405815894815903332926934673028427595597434305940129319112487598105263314082419841919779667544665740007641323713234504904316539255674727005324902649110990354105536378818566975472185195427491023460995544229685946605476526165926185945105966389737208504198202291746699347104081957797053124966368674311294078731436991121681889055223609596945019573756625264904646319250018786066742504906803129213379841826032848439282975461671258748564805340297551473888426868920806797702709779453223637989127599165368135329821280167013088275900047205469613722724206231398108954731038841091062237095796393342406470643459784138319168114005216350033605121625526430553687589785707222593802906780092177613907647305590743515495094406922023201073341797200362866567085327405343605842747426683913013654910912148781826383846624082101946415249952881675180919366357704883399281007160264539340004096227554125363216462708227267690792805322630338784073837758947786917360859322850606333051297425487699252824619232221347504141631068071794199099620267455086575898971198427956613957435736866675259235496267888544024454679158559631353442275677642979629902650577754301237539111086686224291542724369388156370523310482090772545176917723768062351365209843806897172059290906816173626610139655499394625330521681888935593725958227069168536333290635620192284841738925522942361582644396467542080613730705143130295920637956297000215909722041375026777073165180276699643061005742339534672147052971448735711464619980950016490586929857354055439329417566501664817385392840830634325452270646868112784049448710438594627559518409133279545285249124899001416456694582231177124233590677780910580808106245251190938576721061388893471342991803499864726845729976439848825922727251671470160104082160496363464524902646156940240459998678770546025282774497722988790423291322678214154338393128443425771434014772378928735708239310447114151835074520509633970331360581256802157414873382229297274870821192414649156139846454353174593345539994291644824719434857306025536645546995686663389897012368085583755016153058133238627732635220611836544109719257154425913686519004554610993593015478842633612639630266588489320090255210746880860530704297390705944010051900821511271583751387238436114581188891965330129260786380509075645337555075463860849236214583976944339581260603040713435852340070115385730709982501862571074725659268819972962984346405075188799560395910128181371277188113250467798990886617055405970143760137316399403599822642571943783053620676885434094771344562845396630082645906942952966059970271881161632709900318931234256395557333314614946704398205721411277313525267688672891364111908388801453897283169033351030481285724211131118863301063630416180632454562998468311145317056025214549302128523778442759286271928749277989777346696648560942471697763136455193286553308387183962260972120497649274690556490930796590990771127732904588153270161220730396461583063916360066956177810598477322435186030927080226778589271001542023316148553738560766222578619109801080526842175302719747383025034140263767489344752985936872597315116880793542421044467340298301616803046916302236445903961251030605334455920872633090640201163148752449755091385265565766256654883663004845341711346154991992785598480159326896705439717018803612233967420114193308299484012445201993687087573446244408929449542885256050869221273208054055537806221323500375270661997314867151226726938330917830195341076464806308058634472545921850939404421732358991109934981719911970690358031980504770108187686013511542328495612986272170810388334238130443305941300745216543699489175467993363051263554803855361201114501867813259155752229199767278932409616491514753464283160588479777813926518657635357910150443539500494747561698817651644907006936655464829296311877288386028276103110747230378287173309616760507224059177248248412205909661758628859988605569608909443296511048242436542947621377948431782623354796247329745641577987384014963549609660898791374973600292060807630650125575452313657638710952918082396286797741122885450327966379736907679716900504906536306728133790227669562126226631280834208434907129765559589935611275488408401689430072947018611649497925567842390387978230539479953028362316943490267852858993422922041349646012054959577424711705631549125574634495418642875859105788580442372190135911550336809610240707704879183182202389880368837254516211544668537089472421192423208716564571520984359481616710586525970419958929653480022221206577216149072974673384449225421128437021068748219457409762768853222779373378353866502612016556422996382749029370892749774607473310741436237568486426836336767538296581551618102027139296350133334480889758789694922442467948596189326206159151312132435649390926372946357141015545880070095325412458251500429883483225302798983906322479225473221895760558151734614081938203029135709405134116993529230683904023121477311672533400960192755631257256109527340144006828796722735487768239186084264344816758874713275306808088932546165385160691481806842314070308518257304592333420229986158888531168613043852461353390411158898257142311258092399720888551471642602219546487421065144040553630159920323177867413238255578798169795568306653607036398012391627342828354158119420664236208949927277663023984666389464752384208058414359556371209273723932540654493079895270808364032552528379714739359149974293528524054731520796241830615336828992175137751449989798974322548315076686043631818021486871303660732350279628225721012801880309382895837173674478958049189047567488247945183712174032041596099681254246703797335576240465923091712444036909780313264438141868629726963904090186592569821114964695805620356409837986982635002262274849864349752678329547197496434208749473666490548409017268481252821065563236752675096116433976036960123743812175392913616601536188249865809776856764032404445105323065864509271514944763379544740456686064285699577725661148137987859610473237100075209643460904697889678673245443824279744135807789011623359466910351992771725577822999975174692096634034386363408955387105275821339479789702273780721254763217302969937428514205001720296262981257559628894691415186832114831349156977220240105288631377787931423615565086737123600473152527017396178711776201315094965559592524435436934272044375721125589869219592950144056400109013220532034331889148767216657570578848787579387468430870832984776119644361734646856913537187817926974602158757623100791386216089783452625479784308342938666196899326847305880026204173632981886114412670110890328252383363448796638788963590297660135350414740145639622103673301141057179444125659176903285855323958012975267068858479923258965518990117307292859646443532964946141002161813583889788115137749006701264978858816152842624349625117752956362613384616886187754664649811622670754440620326201647549553355857426393223928210807580556465967709645285534896809135140599330450257726403060927430177138633458249207282540060727822734723528866703439169650135721056358527176708702375520651908480686983418490817540762839482986108766116906657472208872454761996224935481197009550186699346066813280810196186446126607450988417589775531974948531448719408511772340409392961337063064193280793100427736305641612858036143414212260017620478418777474710231943151466143450235646293305844905929954328015535324992061804212583045866044922313841953106399552824039883037398902554964134632882765139793696558648473658538207032794304396157235058160411257143382331183867319417924844605324432983449156662032170547126104780857343970046135925288942837143130357444033763558066522314667844836927918508527781336814979943313219483757850696424199012569283237322661125681059441511864765364922948559550983090826270028655232972275857269328861247426034801799909183196876021798500731838508760639335584471486683966958851939161454742576154320765519688705913716336876976972512345876581644292562750545071022737051740202541803573853081055709092106621241192978219151970164487623535062421449277707814296918603889848151254687352022573205535550137807029966970226133440786110695539046925160973948419775645995467815640107653796152358586362361341389246469049702622303952354038110807859685777444567056531210718761637987106500048578771607198970987272937431392882705898809690150474756334224922079688760634400212644051337533033962551131232933515051875228096867043527019427497281660440831724438826875401839408778835216208813798202778773206074015942585943506718586873692164684844649730215209588669327994519026045438901077348277328584214861438541039381753894098328684534903593749706006399166718668042354172134188518220483708972610377978235499434673980942336541288534225356543007772429437160779029836409144427133330356800236203213263290717849851586596381105183773834602261789153679010235403251000181495005205828606752344532781776743999020904389877285653677559726088707040336783087936632725123807408487885471271523740685547595520710047503909477448581017236607434489577051520771041677804700929880261197281346871829998122941130475292182538116348023226917464499167327278612478607728059735172182868767327331777387811328677519028708661612777061357862103571922106317159048653001810197395198464407663598064909406789062120183084658588241381788127019932359088252865689756200901012842447945726192123178238739819296502146850984717585986726976531199142525828541992634483754649680855455269245574177786586419124738179606027919027036782857803856098230697494326651326708640047749182925176198450749635115107567212433149926251425674090020148957151548916975886219292836283486404150861873320357317229214287507662608328648897013741706809912318336853393356995782739169368002247218133720083800981372420662173341319112377477363357124165970814546564781810970437681922157406336939449217587846456076320249540921633764724877065323399828005268654133544991990423585517639310866750226679050780225501695277342211724233645916166707491553462668852588227029583175556628920514979565240059015492921120256807914496678177994820686848880587826129918175278814614615119844934449141060871780287762280411088779004963349729699957749190549894218283867386259440764942880482853878943119255084217772879707574826221027650370468390853607971677992322133970425893781525951787783922431412678352710195190039357075122164134483550148328000247580343905899093455358670561913472781091896350073404010281217825676357114118666598161308421561737929010019421294205136685622717391128760402680551213349500964600203549912524955419063832888829517338126056341552177769129021788653028172740465255902451419900698059239623291616283695084681204448946534224891626812024608153103962780025683544152731704333318592953460836668837421067518056417507406720946068834561265943405777604168663287592414669984034644543190107776003558061345136362600715713711319377858033595125850328839837407644017232103535857304255282361529847002014000122038887230185379098022916780951705001303505019222447206835181709104551303839142338284819070411905466162877934636023229788070891396225670603522235860424970204025880469137896124988979146693233892799365310333413006069916155947307362709519970199479457302249803551934820904405063854624447401116695669882060868805675625211289390395322766666414400336971944918154269705634831290483357241828798521712775883471819474238374397709085973404076851707656861415205280165233436488661226804873365101683420225534603486877518763236594859718730540869269796251859147785246894744395054667175186893587784539778645218632624712213616553433296670612168986300657578701399332139365938556390692270652030866614677013375997062023770250496260315406173080703852429481595137103604377170101554957230420446821889693989452937227400618809268113165283517981542641588816472353872716505622220079655031364234095876587282923160101785115897093975519812201070034710279611385250435777575898298511010826974148698613437838396710499590039802722998449636135294782907910138068467484370785379072371443610879537981676480866009299706636953018559420618019836426930484351993752364521715837730199253565258611708601762167389149049330821963198416123265894867413825163288057934623995136804026415051986478015871526905289838202948768675723787067962386918857495103424636728166073927127839844849830376644603273221776437978613685422396281312018673355936504074538932729482902130336550912772876652453016980708475061212529704921908452973785025691885914493287030268134455639118393610134198476761076094735892953255701625412186237192592505733251587859832158917048369225145398808411950663141412153896934843222687420132563543549101997768286368778946186024611975125387702621459750383573578273916886103601138411888806668478047872140123592961772456109020905105235079914322201021115101273404177311195265512897451283031972467748610522479668887488382045455277667160549096939073163695163301622197774066838808749828281639573752087639025906890450645605087925792315088020803191068184719308716893574344681848030219749141178068157161835855749821398891635025364872126767706465684768620858691989408838927696626095979031461244538804554004561956515001947455226642188941839239760814189257568293368843011061335879466708033217964448109150550626239935419776460995192898863031095172021200231465731963301630156421528993717252806927853066020343701333058701665705459008615265497268704229719654999865370012497328634735641099910200358714883764675152711488115411841454893633840848672617267186436765935740151326352746709268493809888590884373232474490068280210068479432590645178588347984789679770330614051419550246258868346574141166385279845734244814259215391652996556112211879510137196506445124943260906650286967630702656372051649843433197301944904440514455739533179121597878046395689527943691827865417227139598710625691570802737041632325693397404714099738503794308946248197954401469431950014678636908891602719880802762682252612646286602298422135335849126820223983851544358186380320750478322478033010234974097121774571044967863474734975867192379759457341401942494977102521973764482404170021547961619610791664590708165625510352956530375399730138763713447689005586459372229809492719658069153967023163401395974276732162668667660108777147576853063302905518673131414050728801570207446670179596021873113528606545747955577697703739079774884008857892927910391155522389787972247922027675428939071180367598265278534717048377392416041048682893147565640499311737290108515259040649055350668473014157300648912309932579627313527148489091607368735052508706745896344549028752638440426602219176731264645539578754164988690516200391151232693776869072031287806188915166284722897367946115179770825245551129934063937708865414680380698863136426679066639222353610221609462204145513308301112499530095692832795382172275206018658178074299100723487518293015959920419932602777972188727528584664290087488259524606547644671432155592859771139820239415007936986328068675418990927678160661764269446021752616593771836939381359564801758022766798459639082850747414045893969481908067035158626691815092694813344853260057744653099135486932386684091168825770288048004872690495603577154719755044608898530048324861641293725344889873969660473108285637767202796651716892524124759600007903452763396292396711699339134903425118528504955055523327170880371704865043423864932395164808328435636175661029592146598711636308646310920184744691557168321263476909671030154937311692005700144494778565725059702597025606029814684144685224266966896357277559012883042980893444603444621560737281865035836688187600939522649879720196095749645642825214082216056474416706036927183824130750950664845164210766785609151506306984440616631942988306055170587542078380060182825869510289574790263407415735961311031102448779564878417721758665172527064845825123793928011130372867947480401441820024609645884600513531902517912482173962725363756258327881177787991759793872517558467394298996591174055240353436987938741813283047230689007301914731449716064768963501969550001918918662843050217504871509046222271025815528685787980383692490659809235950689707302303551058550645447449799135352905463019406175206408910191534403736081579972979791566051633687361576141327048603517111517142118970801855780377996424929211640923128951136461619950934994769763791042797979219232027517475729987358373595085806567309732356168951560269149749529498045966911652108546864650485286717938186974518065375298929982503820695153327335127093957408034788916461811164854161403678585449607936347222198117062111194120966000704209641713237726161473859553028888920969621659362668917551403101756349296882569287816822476106084379011784284191537077775485888921361912680776201836268987279605823250071043970226607637842466932808578260529006645222207686378983653070730710574363676459826829654275532414973384571900532175458577689172583004791485167070478070910971058555590950282805572241290084991390864893794781082438290779145332838718841952713324442214985970260265368018208834144462746560253534474406717504306645781577769469295662514462360473278964834827970197858594147617834378528620424468420544407802637571365892441069007210080359587448233902075406929487547987263742815839924403456393022474940871697967024925221442654272201226136966102187278542866634673409500471391398035904865605285479726557215298510803337283572253426354120009290893117544397538255968112957060382125912202115199606032603868859051234234993635644254914385816687259284368804962732143500599875229046544216010832619025586542589057860339555831753354584017352387899572554926294284353784109626466087287989417111861789995661463219166170229003244509761634352825803106803974781073029104349092817767341974090904088182550372196203900887936483862770518064751795675011315951117895446748996936211579288649791570489045729972610933495298429270599921152063894648572588387875526139382205323421784474427353291201416391419329759781546225789569071829087255125281689906980056856590684818815042593989843892438845971302046746651311928767650957103034988770202293541018850447782271654366236381244126987100262821804593082312428955623309032954064505079464609281473185850068443600750814315713611586951757242558570561732772244884202132337501691360325225924218621401980112806426338311791622417845805238106368497962900756173399512715772413015516491196138599552885686152176123362484022127044477576648225720242563038803571532485555779625461768984575524484663132429645842266140449042914695797259192004203136793484198425631325390044466604800329482209528455793770065410086601491270340163865818015814928602420530606311012391306231594663028011280664083976319325093919885503411027449762865746188983625514215703646191210288180932949222125192402218440229655999777168298111041056780015126906808835033821034816219770090798545560930641855775579991093375887162379678972731865692409810893031843424392456366300135928670099876278735134442560907328481734408192273146920657627960340292389569533256270148482224345717875523279721270135325972736342295798850760587679249811443360180646958459266824614011113455695471680480978152524256631139072782336407058529990141048100367672176616198374829468207752875789990009536016356790615377944283473115187272666790208983397521741399462366218535488957579223617629869448534404781829775055987048878721376973135684619654924966835091341204436295121051711800872641160652685026997500861770228528614426053737302467641467248428672524042436445996868284781721699007028576899884741114486082323259517691671835253264400218804838314415168979313595788583586071565611191723718352747971439431969136756441595892110300448746142691972559977207437355507130326260919357075852039018399867995986127928726489853717282052386380730238531451173598680732410562297048075550806863430414025663042748096169666472029776986407554261455678522569484612289970195811506704939440476662900655114661752089165540368853298561192224825824781820105468165879782375757047080835779408804809356862571040946966635103201592300172837987168091273103279345515732046209478911876023313163970558655514381291558300799062242907567634465115820500123621639260872400847202092292930645712652552953087124090409883212867938687165058097070458683037641902442492253853094312941190962855836538899964052560518640456734971388015418961169885712565728079810493769070396612838424371218525267808229923990646730189333355554650468002609797498500263757200450592593439438827399084033795439215606929533538493628764832606514787472578842831257700578476189304069139493576041850464510103866804630735357498462457347412869223694949694523189012690959775529093695217678236872760521768538051131845461790154364471387065101226813424091132779252932275314110440764795572587295813597605913618797969299567906843936615022564805903804157033655923620323491884210804742055284252483897506646669607746748851231063825632570464128949725516370271045822741662333444500819751531287009914251020689592038306866843752563193116712903391822408974576863002238716640987755871795901580213830714871286497042060006445200932593335816103710982730041674875237627601535748061702835049145725615518222172167306831390507546505043595462145368132304948934476287925532105032849425105120245066435683621650302327545412538186849316672963330863859605010009094629783736720748804008141466636386765862675510350912681120864443149320948675390121417320762133462436662112389150262338989691799644122453852763014801889125609397898029923082709840161674240990909983657355708383871806141359369596568312591171491961746254942349866544684603468884549413378315843872586176902252210759816661756879413235475227523201288850726725041847148756797540890556482868341929096575133245090671264740808875416321506682817897381725534919930990678928756283002702015003365581862101026543149063350562264628153142080869363661991401653941283666069710449413519402778040741875655445152931865426082737158584240247102936769050986879179113052211825029253287849232841243716617151776738486652699408524953187906591713867143881272527802567945785649904792085454318141388626602349238209952335872514306077810595596000997573016612937522239618825686473480167796373511742130472620195817303515718233730247387345216245999671696954385092132051379812070476097757496789286537256779309738950093400884045423553371167579322503477920823504416799930928143709736613058411518057725596840699505213141276819813308930181843829292270781173591797789432548605036583536933050347297444456171825249574923778695573517369798662177951370429618487932775102112988275147889755275508077228969765813318398556054899766583825139427241166826527637772899462791855694914168226008991217501633876946172090459318050179691992625684597140973588112508860252436906480362985278286766067285037836051839303171958239959767239040804152157855436300478103555066063646507986544864244501423508167837273726263860582298239371591336808233996753241426437759695826179079369693601364689664480572002014919565051106466400383051209270034361829722248673718279341273884392106395171104191645278696862357056161155333857426459583812152003251511339860143818986733194425172194810703337828901024954256653245854850217311320749665843216302542331173705703063048575712894285400259512545400111021035045331647085825478953887505928922359515604523139435370498450373038229457063177942756929925747703036737134821469769355092142246896819512907905664438701186451845790728749970486565562170439737305025662201719455975752195715273983028273320578531783373186827658799092943127722047178802130855323903876909451894360109589528441223595421326935032598403244247994371786066722673932361038185441857759720579391514115719401534107127049367582887891451017669405843630010543885465352615505963976823836709828916783207335247175543271005752780823008138623655695384046169264681100967790547963946339409212170800422700291139341075348822032883087780668080281096167567913117466735172731482632876861651150577932887581446233909476900146234719915982538601262455629886219125842186647562717907710292984046573074243624987664642656202107252916692424905933332207867787244625326356552491746363623252185623567225870415895584920740109705741969959764707713820429432972335452110496483297637036818045516538455960886177890806522930926000840257185632761589611412770865082292104928542245622043930001003712671576702515469162114732278396854592568342117303605754298445384558932961218592735152622103102919251744223040161342689545968567317245242730045658361976897041912347076193182394864921187948607732974884721776464797322285098375244999100038204606027161439305917529347755923229535520765679335312236767012529203068107384642046819003150811109866955208443935037159546266152156200414291397191489806632365838837802450093101065222324203156273676544604127357203644996639897525933378998273906439231513709406204337306958491157577651613004128213906937241270224533730797619853526710679257174363829811250975298124233716061815311059926393826506412798765392130004474399141345132571990052443578924138151718128667824587114878404089230927165613620120177614264479058084495914716205181234480639120016764645852721906680386455810238292823091927340231361973910133834574973616687956900178333790774833776690175582272492687246924990818599311474930304540672260798717121878592240455808638346685206963304007819153208502460858355963364276935237251779223106788541025286966534158464174126329363707467990401399798854320654353371421776372888481270034058352565578022941104078465908693738266496292206089817614125321941767212384825377213811832704367803914035222560168707861066814273279941688215987744262472067339174787444369767520856657776831615660682282024899451430933778707542709944931254882756564013449814352456962415840935882246227722425854327639575209246919882862196963310008229221374371761930708462784396857368544393358072389252620456508147362919979307130998529947760772117558117114017888864078827168730492320299883057019295099802947671028111576501592432423862065867588554521787439920815916386240009162100771172737099014574674419506437840135393827623930951173329515545218394163096546397400149596255734323818704112715697597885101855972959075925324615294164680878420117195313047354756682650483904764862031500070868017559175759175855879707606361851947756010270241227315033377796458943646783953518297842491339044952511115681763203332746560337824142637013211003547652899445169258117613694732528441167414498553305757064054680279212878219440538514665469866780813662752564910247822754597596982478167877567991478185947980577158502709486246475227457232446582974920854171096130467524291012430033655241140427264730442226066601902175476049390885777861186231426319770748701211098097455642621181696097918787127788571489653257152099098103333742534122162241675115793565277132478576781377979818333653149067303524447396089791387720533891533241391765626581006912961336665075595373108013402750403744111538574038896062620023211645664322203317938717348703738656312746510964471287455613307486685490281911921299089170922596784235501880661644748174128761437692629382406912978957234344611841090631199619989946883869562288721610689736291300946308137799185649846476825727710025533928425398774334801920454762601336040015337729280669812112363169288521027543307713931168969973529736382784702726097082652231728859524539130944094528876424754154592597461213516985922714765483606458590234361038398455447094853802537712437764746811736509187063681686114595728308801718588847827929976053462494125021676963271065351079018274974367813933976115937719283831660182394134499937711883398108079464386768453019330486163003600879232312136783595943593667272122209214522530407744166567798060620956842689302359875708470258478942416826670553238435785707237064258160073465904996286709517830698053281209880028657834592963945255402622651023301920898851649997623136619909023909159212916596872900178614766693119191381610867666561378715251649702652466244160413253279318382702911175119196800290471532900317395403677810445487179515209456156125065371535140795687309202479195525035582179401278271321508717112339168874569163852454019553767914315566424742380351461344049498320684480406596843536663542775070164644278184631281646971000814475532569465632396406510324409390035503592843007315270896395053650463949035993754711937579054789496889424767579731531919490611764334126013490431575650080557934195435762741030423826886855214841382858975297366698981490404365114443775074667213517116110194268805622060155089168626545605790130847729975953258547220817370330723232207715813322559109337908993410104241080829380589207571414314108699971880184137627505318245983140546850983526231453227371925317420883854098108443124161040911652806193975844141097545387426432147828158250447848469863730235652933185447703593028518278688177996056236925550675779719808864273012702247562986614553003461318816771786597125176372825218325902569676781817534695469455598947685896687918415570418803449265726114361204785763699827049929122025608164966372834581592342133666897262121083920330258631030160248434276893008623878677200726539634223193136598409156434688674508202329281452247186795585982374520979770690224197807689963727167575534457333891599960546204093786906761635804059861713671763401088587112824538010562928034046467437629145855142808551940512699716817528423786919614558540022488814862778340177842438868893251301612863129973725176883667679910835824425155539266485880225654693209630062106612720473423240897937408091887128779962147733603865303722817120368139800033014500096979896510786130795610191358214601168924501846428659247358716703286799369838695452666758296903496753506093584208235721838915106509957783148391735818529728556651792465549487987101933561876218184766599284415430132124000200998968483977030197041163623674458411351949875992375332048646328775525991990661013554602400541560195030249032157421477138729016831117451289557019051096455431630768764870063602761339738969499497906685981507514431764421630017452228820776609577997202028359004081697560277916251038076369154102213190841383454020852487962330338079650415932284640545009027754596735020134614430083439952459490332250471652359114875699803596651653875518011696379051456822184637755860477312753930144657419039229105124774952534206462802644035766697994288049390608013629404375975215988733776846289767944427608297200670146512332623790240606998164624197908064804568878236282885971655398561374652228530969798734985744477877026575840628265049944754492676131436253140042751662236776253138400070188622711343290984359331030855049303876464426698963034386397404789139286465545273720030534321733441424379492605242781809020710328922161056437901225841943534328840067227687516434410552586850920387849580436811011599999547546396914008236467603984676054607798368447725395184293001822671847096989550248097736910935178463577033889193301279631466920188640452325694212002920334947525854648734246070510547691540174454998634098561304647258500800924007407632271308944840964666320213482525537716135368027245719487912821050050789117250802450863289958972732870020376252623718232729892617320944985608243812744024256145872763115810254908013676400260931420376185124749475528844907486942554366977225557457367074242897710555354466504959256866448910275938755765067661193429424600641182144953330199663532762972425808140095648520905180855359293483702311355323326836777218371992789722904538546940416024170320479324670002952845926016527925476275310963999250195241477297181471228541937509015740618518710628823991112190297112228780168021908676237203700020181132468051378771239830756113629798928853402055475391935699885491488534527387498901105031608915454388173549536121893935290796901913951107334950782716928272925851761997692916935137867783321971356363198488415686497833123267368707604648301934811590459653409446504845439408784200518958053364735212169657132873834765269847939789552628395376603394316723840115594601042910866382761579053930454338245033588533412695130800383703075356873306088906553284519233232994150874970436119438145199395535732054914093040067364664050705100447281980758436214390204925801765983475382095922161332814670714354868703441300377222390254911938158702287490980726286856402222524960813873137486328132345330814710394999788062431443859072399019491168979002813469294850431508639776108689746843990957884341405080673907595205546925226233046300577184571047363494671777116768829200695449521356108529775814517628171416254363977772494311420937854828275600778656804900953617666012545226029570771120663977324402961929308138329080731836681681928990537524361055525013096496852072554635872938402074166140386603013264660199948332585679184305449973509977656885321867568086563431281750947825895397885445301308103613306377369291298494418967866655898149309913741213342377181534039076367025739986510144212134349150101315801142426221646957552853292899454293110209691928959102751100984355919487474301484974887051603768446083077504634986059661396048243855628205628077162528872877842126091742928841358187353350893628051333908350613306107877488452579432867058598719723929522351305380240310074597199229862586058226343728604508221211026961862183991834019573536497783011580502495571944136999857661170467975455293702478285138928137261744879258667581613850419991064451656789241750109373236135414434446893238598438545123540454541468936802508305970874312133732521989020547181335966354008206767604106605294876705233107943385524661605979997253661781048222213783477042180637229662682415843998776336157364661095301151974969063507513389774382683649833018066769293285033083582557581430484862517015549803634310156711603198035025659101717645773544687612918546816375222356506721334044427041631218135799631436697743021472799108999084769832883034828464682627676471256535847811075480514348145504992839006634522245051320079911695796295658308587687434329618727573739972991334272495346608299067546137336970971980144498989825848253005225424227492581821922452256407667202369489215156683735676330352540106549255145341801408045823027132643784387760718493646321413968066577197635071077067330742425491033190475362501070543790594021688190519338915198227013210065160664033129650418004625007329443471230535838670791996221367240348547501302905410410955848003036433360649274478654796409420164817049253621215096221891069805566206485793810997533616969019179575598988502250765455686907518534122066146873682517740103136347581631653882644799905195133996193401821155648737795451327665586774121979476572576200398974025646164312105668711420400566846853564845625531184468699047517856152745458273069571033556652291574255835614271581997721362090293776451017504135809048670199512492327662310677602625111951359328174391266018537158535367019043024078591515100235858861325149717849825687071277498555172782355325412927394160059511927120762815914962986918217484775688526673414059468611252979859215848082105033002264442130518707996371517526330889345638073740244155961424055087862320981514585906819184342178761158023897001499279022915665839954135169789143979547673261683530361472432607489167523031137427041877281244545189333159248653103172088109405182965169886903285219164979528168474181755013335991034506404567861490239629209910929527322147769942513323380901954549170853348933278162489168201779706786350452956909046793714702200411317217932552979163477851857129054114355291947890082381352489532356245571861136549191242157296949791502802587898024782999209714703975049442100083035983909895952202731481506849221467857589746631797115410587795223936539175690045951933332619846748097933957210581255869549573454633744227363350292355798604050844314117469824915324787095093540838820970918837787890147989578292681258421601702166845924137652963653180525557488379462368760049199572393748419587868508376164499429138853595364607952541879954050869258055945869848811682755432124971343617324468078907377385350620072397460770164574887047865619127384396673347834509564413264663732623622331019729589246945103848569897295432864660110850196880170064081256139297141550649319130981878685222168941810847928060249326320507875418268386293981320744752210465117639780419785682523035798132522582470394231708620360343392294499604652027893403092780164686009780967087964366927181269821900992143611881058679347273966204670553496378656136861533985169805803782517929811225123738614902802920780597626188968267993475750596770260372483498828834555140281345908065862705148754279644587533142265666587397617711601698954326308722361215043824816232966602126240825362669342784109278827946775764132588583425942211903520760646970619641355735771558636228049031232310630957338587813257068388070754788622441240124726350776715050236677549005508173757312674821505648004531287085584066068291896906774311783876870589079435740168346501314020883216766292803734932127038726348709733566540855533239902548688976478505120485550941261581185774418022149186471953529535061854235250254196719825820327722659040677443797068182744357275068676850907033357229678528776022439591695256879411161258892456620749336736200217743391493355213280194615402282991249467478291024221079827404756621253783628875199833923633288946864199846295487331502523820271852134362029127124470512205389071650307354212564836467128888081062451344228744388507059276767779383568311612988453453575494088106138410312014520342536633324430452611100368540633476192666667955909887694339997650218127022605326534122278161083237666879148144695359733641857567140758145912670609512436798252676382868845043663227224468966455688959604637720249089236403537548980803651906288779654101163712223372330985778995480353954104667733228159243538885385918346496081439589036281098218214171298720546920383316326310617103669266753772027419280516731739686303795770871320530224845668639901209215304856490403134328983812428849313630738746030755107137425106238363191572651632650669016484879959637504014468132922906411533299556861429500506729583167519084614195939629770958901078085470522522017362415737960074324848370475166602485132644283909470216268521547473177398927683610597252824809836820605641442406819768443321482650955624988193657432315463317942697827433949064870052921761364492261404952440206089545502017810422632545442928026758440238695458923210747648313678406093570825132671262421218552948544072803212055020107975687615282133162067845994236466654420476813892066443661465566179359532058930273485485348917660311394084942453986733123641466316573231260041011241905609735162208513419448315830049679294513530539464784970693491123348070049146932206884194291120372063641452657524600052673140080304033676745048711359244209738306369763988351044153914038649242902685254275679150990348704367389679273571847611661753595932825805760029341656841799988535260229730440923960485634666059681282530492716822280399862513470552828373639828239169733233894714302624289994018375746877656234579959959266370012552378440438478932573784752313274568966000753245868281657359361690869062864106275292388118988274048693558576324429715387979251728985843626227496613468449344024906625636025782048549262128270251983743829355431698382740349561089996780711563293272879556712388610329617894863875061420091248921739472189540407733987835514850848789389329556364873201540581032562797436439008787708911599125599630697472398604986321310109994728499074960580075301470394098325106513453488974257484069387534448579976711577768406992420211560085884018533258667859901573417246426376118964313916750202346820841624727131637920458788922327922881370552114531057737171172436073692773601118059548855100781469998806359593737736347047075642628351490073236143517431623167050731587208999128224989865796281997986824366886680278137815497521155194660863927242404379450625843553626978169204288191134628636982452366859715562544334065767399055238749997203710061851824326861536981621250677097892298898828784571336064091594344620764523282692169345244434213955558757572497762089496190665187965074786171282781374801177163671610220804543609832105128944320885972169301242473149105202456410961934256932939065827186367873089222154718095561891503766734980776063660063421458443841164360580525923017804421241646988612340660480304603977947351966169532144223903202723409181356094998468678499690073834634674184172453032420411634952322446076410053361987745472330390419592447924827031727720606387031204742259851643706014872133370429638374770493812391723751898831502957033330611909397978631933189614642286394533633988731231070009075985219498003995691653361032792538672984515478006302063321604264883312251874744097442384268481879398755476585489732490823182464490941763495177154976288572393798278258755014834628577878113107464088540682041748107837764053098503042899245293714621784985654643274514982482932898492935715124103477830177601971931608078303174632442548452910164609262539156397370153403819287256820395466313931049593849996308489541572529181697068057555664998549466664129931825690817612872475076965965208135396741550959571211265110073768244747109862016533630117525696235025603657260953961884895879234505203416341596628549868202264782280079325486924560891533685368150444319109027335738123902696286978217653575077194140556439503570833068337807550132499964759208057644162335383755320674810225067215393164027952107691358287255766602944763809059437391246378808425432833169967609027679293417238644846673658632341572838495317386804771730232008756866798719847531675181278446549432846901784396741063122411175291895372261133431488209680432337607544719739804879915877449192180438711763735102844075752138149628547453781194100158166217123091174819972151151597559029185460010363892261079937975641603784912973497933665434095386770451059141219204600827054388996653525209440318332415429586547589431035789142152939460124515013364473062221630062284179017268119620148338060899196862800797288837220986714083506136745119414698944355848098747637527518465787408576816096080691364731755907251177974943626129586998128508122974684275367572076814759794815427090369989685604464252725811564421859188351583122021769125912872554693448452662336659089318556203761864512503918819684364964130504206979995272872523321276293990633343473779970386137366708453187736665477647405093241920064055462478308436129679642283893307514914593551389441661131970507509699105888700662500056014406505555281275558225503104313920562762919759071050945847691386059614131151843824110662758966168963467612102246556564858945257317217014403363835332023729189813872982314861077816061807726102715419464034360858380676719251977877901992347754295839355504331951164330424668113890907172779817924962401939640314726663937627478565496067492937206929691180766108174197517282293701518040750162915712970518689666679252000330971556003875396218974386199739389416871893271341240170124307679002488463561843765812574722134864233984251838088733820670928267068552612033729541894741126200866470474542728341484829054559126400199025866380650032440211425910229907753696935973378675142051752488694878822031469999722873679595533822214267158300916869947058005936956477514407939518417754886545669710167653351542001931179183974833647085452280919426163074061591099226670652390987976715355300437606264115226389591451101214249874638059883668864384813142171830144822185073159219681237236781339065820051684304608874982126632503498855574967533714590000528334082777040095681116012764922779086803313317500353628658718168894070908121287148146667362313948918534992806685373719736583750758805727162798021166762221324299200834548250399009065249759114762672773662415499547419021309899118614734621237743717538946285646531310055203731407703680160815633018584505202729541611145589706365037264736536043453321962816157668185341732535728769871499840957223185611516669001586565441478729359826951326209000353761994602240364147386283880214818650378857600272856883584847216895696762360493203407686229457293532011720496737097911835766581926455384666610883415313354463407702904958519272814033427363473436869922209056675494523790826531992999256450379607768609512998771909222483531056606874390449336071744555654582518561749893326544446815892638255719378406156460914917509947303690052861021320744078697836548606726929692680049505276899473798707653270492744044243687785831200745380298405042351616745156935881436947390589956268893202562374123220598717843780188741664047897763510865592395090035213995426944774837260541103738904406957876777643455340460758931858930398859861941427651571141612122604772836593678461170188154986316840536890818649676211656693565689219739276497836207358268656770938904312105760956610170624617383009268784359866129365020224834855796752471046874068181564922161692995552286405552979042079901470776799469020353194895712009373110910792408878653248240048816916175290843429283862379122302553749411922735075230045504172091682403924224425401889953824217927441405785711120987076891738492490999356766613267724408369424736780303771342673545854558424852631527048396284605189110008056158062906419156984879440434666230008650728021114214584211080502850202407827832394649169698178031804359591234025059235750956896024251941473210439057027349648713019460498593490585282660088265012778487031963367114006253366389142081072265331161605989244401558892848192402435734921706597833831865357458841509107631444931149723224492270861690613350631812351858253404105988504889979283410550689864903320422479468785525588442094373288165469590211866106407882101175962649586247209848243752074544019835678889696475117583787739734966545152256601291636411198582453650226295393411481888768058364802544622905828478492459794091032377045490242336498043150327950005236523318452194257593542525587510931372137591437198202524361396728077753193513133528229290570191884457259711629416886413230235599899670069220991325979788185761846251726527168808435632991392801158770157331241686225596847173022085439150823880706537165134640914080335303810129954201398152626851202256832956604523113538915791329987728311412517219419932328013961208083311395601399488294767988677998950095443723946885450274471154140006319498544901938348036859006261065540777304553166708831192860055065444484367854171155492883565896110348825676061040765144242583484909606147768436014890536600526723938026027802576858322515905866523542010223576053516064155499063224186995089810900980087648472206660377366082111822034267825451745804481908996933618715258836029447487845647338472614947985264564836491862649942419572037134547447605910909005484414480146761936716780833431469238064846272173977337807768191142182577087404914441254918375265297690448229433671406612219647546362951304173872171173605702669529692373226095316702333741067666552430153467889178141828384408226707237128897679110985134435765525349040321340653581687426854923835341182825557033443253910177063365087365601565976160825882566998832693179336628684846966084086623578092259274873750247153115999806482370654263724124929038616499576227514679634432976010148766851715485969135957192463890724893236765623750541004027666521768490613135015455116267516242599136192895718295624661462223661935734133519530997541567117056750247577828521052806268214355864652331602125301554371715681948064844274330963087453326612330989367885017122572963799149852194036080640782084205377595539731922441618116637862624066669270113455006915416217104932093542215425404573675860841027414099291893643167163900609325274037150093242566215059853929857226742526234653682844405959284079244935075049297820563282241609989208405052091118770006395065939718442198329551570073719209743400573082799749605704062492667706302287068653416805467416271458388294897754895744555954305166135326161053877786200569097520411383441192432057402042159717193111529720226424875248682218492858331635602909534159505851548184017875607903155926121950104716519180048119926432904123013979978459743361578924094784068624190759377876673219712188631920054094295370267072626481472102746773007826897010620866675075667304574473506584621819841292907030269844486448509536408239938912540660937200103032207604136730294441471393142133480587654668670108458686104939929452202449930705845608403748107832133091853129658425438115594297061314814340924861640853586370200718913905872123004098896171192015481532581039774547565295876888866168453922938186058884475733342500716730857694137417222565382587566068251393965724452235832115671880367118303900414776876484739842266224885213310345246595663672558693028039094208008300734320180328788469177970193363811765558039763312083775195205374492351849180062517959447681302215101355690028387000135352715366659753895008137035794257030043747020956632060985485184747635962877711244176379510572010740045231728543616137151525445419615986577281332947591676793937041158134097580105916933577439989316890040750719108000668278917315654262221088372349295512462350394910609308037719264969942126972509400286760512954547008226780372737279796415370031136153239928870188584065022477401790708510884581273511930750771076378578447137310664268497795110984594518966173122323676965763027348605053953315879344767493458317548088069920414405784549973403681011070016172646437743770513677866760785365119962030223095350883605721639080766218379476163138462557473475474050803759318893586138550227504409905033728402764037515191079745466124911182413269879131113793208095068297912541186938403884773487439053702964676830767856656247985651010154009552355794345554859252824199850356119837420329290101715938433433444353019030617923279550868415787838154543548435145407891332989011530084686682616863460989882998436433316607641513988551832942662833231170978947695640504663154977145260944214152820508748938089317000645481449112618732280239713020146767375425659485798907175992311903743371192409736658603551360900760531812258322157934940777620951971414152255911926938002758275374341286775975995314552268804955057874558737041503457369374323020244456983820591442083757419644287178264893448651241982994379569662537700617803195310378776379287193974443500409785760123726273990890740633659526838244087752940589167310655254019676218252350264778596376818259956585056073821186027034623747646906653736726229705997666974213368605753261871654484770155209837953313790231080539564912594121194020956962488858303115160535251769151128614030709620825026183882333471541292389339221290675887483745663286075149291926542827993171681729731014489264097834595155379857518627826745339888757369528697682497824262989002146187744508176654245348166206827240008033811386711205387383357238782376348687677605710710155310936616992274844391337498020311800637297597963222065414107844260203200819934919742110651805392281414646723650294372163358356789695093285066730990949951440961530302252086662809539430300960389866754381518680582785142163112369147985612434891313953762902295061632694773904072308672845880837152338895636962993470134918910767917208591939168395656537137045524832382906982398204052876014116108457918086663510479566303220649881305435486233352773118654537347331198689548703986310283014535618436404185844697853124406268835155176143771733247624058575107298703535893680288189149148646577598448106618778019961165275750909711051463489931991833492562875536364099135518725806768192992044791831051309330073070564620948073198385604016933316600368996376865948404283551593768431034396415188629501188578956123674960106931205844650775384884784725065803516462398749706938253630631460891008207411381175259522161533454908133283712308176886701213059656316591581713895780371416013530371595542612202976854021883626983904755923379005352818526983177131037962733614460808121521219787831539499746745205137271811846372634344625321322083292548192199850187654339571237515931989061208223268631646138623732824077947810622739557852197034883148819964222208384295204440753591350732389384153911120706401983325481020085509862421702313283024075738301553075775780197581128074345589187351291875633441129956089180937007468607013426178086054189484961465279492870215258965826872056250870167642895926875647466785683015266127079722864181835938318847544271972494981605627377603133966082318840135782815529073584844716890450419403476185053515577428728274722595767231936302733857857787187075679222771505007805096601912558365916529599392213818560222354834725929776697289007030205443163088796452777959288480030164632324490986914125862331159739318474823360230600771460075873463336487934316687561118999337823166839360988902331631681449132912074869100223709089427980445346758985324559460423331000764832903431322120398452909303879879782272145299503002694635712240903686596434279531039075192495323928006722742214569083212533946454837328384281290186143790791710837984864062413797738533609458700253384495176790080583582018832028292100498309414393429680155195978427528935218595745754578701710202526635058093447251156586866953344928202488673234187814318209917809073283064723512251696497749538429996558281910471318574355958440714944024033324583738264221335704274570040407220386188692856844055455440052308095064504678185233904039835558055271252138357854666050604729755995846422581851963939645470493152024572973414014010716565099806824874780653938155411801017426450744925914274951321094686441803734903426267133331622346325730946683781603393818073030939749748880546854800910459716082357918490973102262768548653673180065719871413264878579871585816085192869387163833504178232999449870780279330900712508594666571890031824841630031914247419066722770440385504616438676270866643151846217025373670007014837038409847162303073138918802116147383449871089499980926643380509698843294826618623414416066127681487336371803992430274969185571111877296013554988286222655952178351723883046994702013267972973603332259438121059229622854123681603746879096437536909381442617579434972147054982061269503927512939395485980773344165530521018603225699420410319744051382863020207824981545270339926365007990632755433286083690118758013979883710700542842679295444078549936079030869321252742601353009433023083739347368975129514975530313897310367361591964978008543464504986204281918661091060978788362518964497089919004578411312250008481548341824299955654227598733839701901815017213530281849143872561361743589573885840842785594961373225759035866618508462386797525318344016378632604366854295127018215081917082229284793117093031586714262690135435147979299311186087763420181325954051883075523426135898558338317753338312284518401705982462432242880926690976879181121638502241233366884285241518035009812615322576828859064204714784119947538697871775481451035162648847407892245362705818659618308712924273457308843773136151054480355149436883127478942177243093258501828428368307941627394716859994460146720816367216235483911060241907757119621239377656570476443545543195495806890295172236732163298636379672976384513938594712010361874562088286809332744622538797599649412536669748744626385337572820638204192921686675724701109351480843236190764815769245778812845678043810677151273224935005732328785141594405806941330550635134804103705790552454224228165709004894347238856476198134401371814377301070378866224526253760831540961267244819502436704173340598884989192480785310354692137363915122844780207635270420429302466118064001770873184559161646793376619503395274246625253139183688753823270790065100636444747127222571706154201478017774955558050984004088250862627001299428987536919370751084452212091324087069534892566027839065503146029115860484495190406223188165513733214883849916222173666351727309876529359804784561608633382032112211703986404261258474379958542987910115156045092483316037205497849042799441765890811723046625262994382323186739589301582337553381688470032411933897756377451257908097837185721984626827626760923965458744678644335710526073652193372320332775133003757159414743787376641230110967843079434966384074741973709301788590356949838617688363771108873498047041385602217201352696032133566064514610592339904407564177244079363402573685847647657743094208587295506613061467553897605124424350070915536143023018608596419604151632714334555148344137360030255823880178915850913098326915478833005920264397465734858379754968841077369375228204657187783299100380673070037094332625905873893757178379574634432189179248211077288033042434786515174524064768883887292284354409480946060465210656692043213899438828367733185009506154402667449871656534501906832702191434150886689890781511559821685589175789033652830213189765947086738503316464682560410693727390915550027743911043693211899213142862710911887501277587223504967233604858351774454237456755754744094767638197522673264569168003683263938623896154448422097860362870171526701540157933860514248871302699078331813787012842219267275893799122724765687512483414398455393690574173024185508887126942464033376533451341151795943953079834829991094888380146759125284617725282291352722383367830385647851670384700456109999499265812536885795086061363608391005913694633471281048101823954759500580327084506354685821576134797732247389565321438408896418927256386336640164854236187105058204779114957825426354390988636136936558456935965468555221390932116860050026589522367604093958691318847407923867425067248621820442548276600017387964300603519743652742201757299887796035023673461545193780388931927966149556399938878960488865273265969589670117320041006480307436736728959946019679649540785048861848951525575520044847592942428643771502403583681081263016214323056393255837589934052350045935332118362269624460635700683360308297776848625089782997448132937811520509190459610141859104562066960936661979896304522805988895847559890686518909020276301449727137792775101454834255211355693416692766705935602493811332018136806605701107850023155126301590175938359500172788821400357448074900194485221118177016387973600570013406405390237246357805677775906926596182989443776719657089719153203233951536228646882885260509752430786884589001802800108740014816315646363639955894042991058481486993007678907207611191147464911870968803655064801886175975609794351366388981734582701474400970954760645866551993651775959182858879465629437662789056416664447592757395480321611418755746014585893189229883115754004942827035006508068762405445120618665449600024126428938502539609279070468706649657817479362438916002134396021236289754403452332140488928160732163021084591107941019937033029200909451217134212388690045072248891248436414394793654202542112802395648458240890123063932207818755024111178943077084224341019975132438001007976531928815230203494092075629586729332205796490025350508440941381542422871091987398945700103162419591180080643629169737215576068814445440209570820834340375822306785406913429917821419297051892599509939424047688725759309664436167125006213339904830304470068455405678373388483958515514227064965098255034666907992180025994667751194128219382949092555149364917285198640619713400790481204430220627486439116981250964317134767207639858388111596163256088075427436066586666293228666911131555339451453812502600536419695756055452714447106811941490689226730037771612059876455200520816187085885183749847488160468758148808829468549573944185800567618784433327470547091758965719157238020532206454883241173103234033024691781335172849185275124344492623291158102879069461793528768085674825325978516125285695594841937311288119560756717086396121278646292143147932742044367138150438836829618515233927657260006458094793275468875384531140926917950291573168493688098441399190559526814838694346986884257861739009078072613209845612033784026297596488976201028828703228927020881184614841694032212380788537869204592382006777809185610318557964312613108485157559072839112304316559960244865156495586356533312321184369742520583260565321124638621321723272001832130388644893800111032309599626562232975153284015328628358901311714879602007061429549561896294574735690344450570549530844751410429665962931765296803470139069378597514574906760204342214631283725302270782523545151912532729894009975897620368923743369135645568626822489647343011434382144853283439245984219360813841075370798769706313023318843523151619705157721669211720306729282445333953729446898904678714529451169272485713279300263283267746647670685510486259247717436761808283694614397715033929248476741638927885100535032089898216535388562790606105345974406381132430960493518016668184025667235420689278836756016217199005240591201496133531920418118398959426071243995155012056954510244309375556241060514036037837613283981818218392023278380003899812468151384312306712927896431016725182753037997767633580435108430071481228344132744127911694571828467338015941170324398226739033719361200964569693986350981063593430417624998122025276632886036292546810633256843403123544683079864392182729710948309528169153064096077881491127221237840184109989118065275615480334349885555957328809571462392754681090357559861908639160745626034304835318182490803130422905796068654507825418849695712008011037400145224618345992382158504916842036911964621781854263374367608103193891517169607615456188228223730588323734076361716591009008952940293308008924933804519604633936530323332434844503592182939042356228850820644067359858679111899362529726648414241072112083963012053075440778049107863779214293816878760500767906026148342861499269477665887340205780886788654848708645799513000294353875019449825176416820204520852712879572859106336518487481248280799400799273403749777958875603650469258263895012682256229937190091321071242407669225294669637136579240035613335603916194709078229687423343695623534464988341732735178123104651123899452855635576450378094020847586941239859623712923741562189785334061979900649417772091202138262237714236269536390651337861283115960116028375754204081465220958579250825136328961730945570138640283236162221737162053809631283263665352043045897968121143502920268423438727737673346857638657285620119197814490202581640783654647145922516007836739464446668989813697011535306000070200343651646086873176035536375021270615027314530198911563261100832092745235718847193855431069037200559480693094507139951515144732665548552329607027500213011448581710610120562896339607063620672813251970049257393989870628501276465009994176030983560256432878579559018823961300957012708721169217683944297631460991636502898939633421946743904504381118890447506014407207626271002477526460723755561162706051101841383446611334571999103532122288100297018742304171687940058539226174586020213030549442507283623629210143029153051476739661482655222896717251750426359914476782970251949136953102329471283104226710968606868556233215727875739538028734517398370310913352137328248825220002576027888431828617430209384581680758562353173223707697540874056058706287989868658706198571243440438779871048672720194922801745232292047228140695129439013002125234473355294289518122661858344276707206004732323531857508600812857445505175653281706412006011889440099943996272337581548216225835458633012543821392259277966248688177257445800628936238424140366137478662599604385847148364757420193494080963872713456061263518335692435128536287231419336737618599769429333538849009068644899743153150329491472838581746851132585530536366375461034063394295283386456769024769053461449176111586043977764352107737485322101375528869657651998738178033930161320694483926750364646447389763897332238847582029479590401647308889802441421531006223225314416828290553238009771145452838659298767271687701424752309365761262105522004830567732641085247506565600210903060942296996421625283052783840833289246508124825835862461627634120555934726681361787025977423019342658887839735474001122391539130412331991053725986972343984596158960439325415777727805212378430176741657430475454512043593462873705835001061132585249027017504193897297207479169123772683881060470245039724966101759122133204083185722094729886377263866986939839724759203779513681242660649794166715048979009520602641807572388516650532340478810910916831410359319029880435422676214220002532073209145238751301682934667080341157826803226529695691821544354375439521807529260369864022581441344732841299198509314104951480197886837557993370706403840035035266664591166039635577668662145977343511197161604895346510903343171824051678868665310778001257080705480459286341079350318746567806732001221738220417319040933708369751931259563116447967385789098049976559762051407969229015554998993795790373258283465560683011404846625998264193672098832768837221059339324136327454556177530065912418381604601321372331163782294265956030121151194284381952970702908731734381815891114767986591214893786920974748448795947989525912946434943902495698196529406914449069386887633825011266713614079882277873175970939792921190526648918887004591599620276298942942208596872747870660310980563483161540908473590370519298637708897077667446650307181819896978920379891362194612870152410031900807762364359353088650651104353857413276518648029882094462305639822342608334003880480319578873625158289506597077817813607974847668971003457986528490638563616313364094032243622665918623033841673361040876809019311791013220911655046593996687735970573905583033278838929007633839616501506004109012862518564847450902055769073221816086637153498019288063842124767162122461947235797938865982775513465119040545990265528663606871544910977465452456417667938292357274946330995188420016020826290345752217912419777169058135168701039906275497599635039567547523402585469596388019882602049786839143751634735722126929042316485292622796043185150830291317031122696785794435899295091776755243806545209952003393330062478074147017683271629416270087388972871229094847840234281638772724674011392530364299204336223113157216348651037872362817303333270593177599945624856608800246684655736051790947943122824449818434721263733928864083699339160377005747480308476815994749592156847698347170082104797730185499285586185812941212381685648079474909781905354730712578724658060189758301173065399407044300537052512435643774502149390993574093916161174743797454050215444799522229275987468608882797503777652260930774625621071106128589203653164949449788605499596118615330359549940096903018332120506714616917699962854162018378278484735875282623898413271130116250721389352669774027686617433741144275441625574605415129199438252688790944313626385415146302767330161591881083914687784290944692152206598732312084479403970065520795940437786251883567477435183718620604939006333225757339627608160551985716127156234649310356059623593808090786536965561083926815441264243355332164885613287435563722411074146243449808732666477033688794064391572123823559284269520239317040389915369208087422610083434966589443857834611614544269980733761874706656962234402986767713124516915879538766704671217083003305736150336069794119131846906885774751393760884211586559586170044226670771194387091674779917598685163861878904820590802800337468691599729841649000112179736548780240068193297379560524176346277988330223288240574759817898036762634699427137485199788181633473823738998076135448424777044457838966813524216754622500663589841309656840927523055127030151791777555504320523306673391179583576245346053631517306234453042069348428936349738452181145549554677068573725781890261172369591480403053495146695631368693971251249566124644652445800581695602001621238786121095439318960357342631455267283798214817919941799125211551334232155343046308216318290668728596857027209814235548490354238349520700832274444649190878520132665182765316927496462142547465308036073730340514608275929411726445686600020519329552862417260935416413395599373879146915845428058346760255864909708324847993535002132191660709938009651811557495357263913003323493099120506136300781295806919659549005028578594383601162836596257471327272735318783144195240003869564751291957721580032221870242307794925872445272002977647770139081548286368488828828225083711647472140201469486020730200483600811148045331833641965311737599299936970208814689349147055635096235415611328445482076966669809120202627284417327545426081674472761631787726140776352339181581152186307984582703585539459233903551408869685940505986355648737658051373474893071736998873293672323474620898897376581354555918432516126469796097332234139197160257047624253573408883467936811154488949173639010045308944181696238280072024157641530904220658889076090025146184251668678227802327826837187516989468577188380562770355221971953707432693273251922020417906033714119861869793987868681019381126243430744968648550609861287177551862766832508703716906816823468523511222650504468963993889752741847011411832406117953962806714066470838390996265866210764952885665945035009692878960257392090065149028730634665723908166816228234894045445358940490005057905370396758348539651688774144606521735844000671142017796865795050179305122707384101866911108703543949152490905554282631245602295002394323953107357193815142488213359455684410471702240991096943412122841188119620634748684770361563629439920652626895059722261240835531100621012364153989447290970979985329495271520853642163353963625537425252653435077629845437151157522577672227748586613024287711731282365823119307597769829500740473338205545055669820952894931926264555651043146979846755451174455912961175917130335451756300707440810309430822237404228558524051216460214114934561635908719547896967519502761533945710932393851139870140256855813557509067397384591055125545433949454297049293603372361455744724259953671312158551538801552186059057494357667605725317217046627695092758962858280388139795169526332387237054862959780985723753732989602308133561539889340405293462756715650481255344856889704600437901488464115313975532109603470380341751877962598992855782109556822389783158753128008941703968010490069527206179386243696399184529204811505396541809960377825681422713529880466710105533309659627627333899207801318838475337754739726129253222756154294143646705630379058463060685765942755071909344851148743751871982059377856385430082511059628950326319006114148981120478391826028786990512314614675107145618146466997830054870885057318281585982959306278718976320856972451920394381142581899968189211605238636070388538462083989884566188067600846713685452123758004433874475886976949558492671780115193603427138898243140036586313856117874902804827215814318882996932661814529204881504172911619513264643245893437428013533510062476257101649022198327956243667163358618117368697330524299245657939552865321509127748751943385380496202442070174158425214278732824704024445489090795612829398010824436204000813906190385795497959471636170606284949129843299016307553038623036556320792121764393581873601086344068451095949802452959653578572398083119790716807714601078814689481532730454765412550414769238955440408437029478498905930385753306608250333902251430132602536608512736240479952307476164419719678559676616420966570287328967716492774141113410385157402805961807618186327404241869244299129220433297781054965357087696810292644570916445694827920509340313945090128423398004663630885628481293665437541031686086081225530071539277442665040611747649400518434628324374497167108271128900431167852129351390344669315094916298501160554406722210058661253029328799930733179329381476611773365530667137032969356792742048008731209994705956789658843197142357158899155760002968231078010372692842377261972453053022657287989074257222818392877709380409624356972986885539573799677902814312483333675230642733258860612311107913326980726149232239094075039785764464968510352507894219168193709071163396189576685192948666931714316056775508230758851402000113056292736055124128457425551093421123823093186952705975355944347596007584082812523098278268045309426801485532077535170687035746290562230099237353550752895857551329079512053074288333093268326619393412144492665534803254803780508700064947330343569827134808971167890130485864452246109559134051318356228417755774749272152100925918540532014424716302116372937159653267351155581736754204936840390442730841617826253312930404186983199652588876418488685165875574389631666676625977488081684063199755888964444496519830561405842238285350907444324838789526853985697766408491312593105200338953234563064638289591807194139757560899716701139244698542537943443548782930662415963814498612865063376621186388365127719185115485410510202001550390573854603470423024663791291069205580391945902925168221590634614819288035194004838359675147353107917197636952999101659648170575578613405602703510236916292840719433663208597261759234386697040161161344326986189155965590159795979234908164473837948225118589246009440323930213812811852133707651681435543112848479303286078273886340071059988940776485392992699470431292384448360166611614203764373451926646379551389260190969968290491356423421602178196808963420930224704055347053614460854156586353098471320271396941675966593274975979026837434849476761114660885791283249297762072695864886390441246100036484680352949793296657999773836058902094422248773029252411823672526429231760769105356489541472735100615820690732734279618833402341015632014616002506249910161592339815645484963988154505405652583042230797428858305342994305785198512984172429238889179724935546831737009132599135028004720259356992959349843823240469533983825433466222524307494569384211408214295351943422521964386238826641590329852343683046306432790870293208584119828396217254991683483059792437525599976998012624531100521296515170224897491856030185483427708649189111908990092353520381670779316137937787574970256985388604197651956669077343006354322920615320176318190127633870685638649341152840457924363956537092816964011810085878212265503517354028674902097787892173888657048242229257847455791118038497344191448861164998450885245746071331825170463775144151948282866715217832849832647507636947832231912138061159255442410879909146749817976959142573140070058493192506935010177405084688567882586877606353793437634556141184491681738950678256410700617196650490675389930203529944663331806910268621094547628768592558771314098826765825344450107311096048781124685507144367937744333932284942478521868906319033269288721342759157663533524681353922874768689326041957537478831585571308997577715469275256842166472745096389180799365228754316400690107671695699627745456300002584443733020483699948893007296872007712986667765524017611478746330903580661052355424114000924441484666693781215171978540342326801266182118958235474749201921536509269212227326173954017012835647202042216842656469116322034278445946403764098069668907228232772171706046784346912458218781150662587010063541860620098697076404608089454750640622684010753837472328153339739208124513418583874999088599990058224580101369235315095741598991271312814291231993098563382346623400235128446939289951648311154539967426956812545872397270115020712713440901210718202430763577487392258397831629644991617449832750745516669856853788315069919552923876072796025120968956674410149365992820018172785853762964673657620884731721249577314235528806717343175811594252881127989208052861655805558035316141965828826148961198598396737698380336931335861757609872561513993158854417498629570470760165662517747537291271239338080263105479166236007790222868201143340760252612474250981686436333333913168602178488230942313411022912415569805817499975178538467581035875522934443096851957577736796117537160554353345911148919611825065393236001690287633702595640655205391558931121161796104317311987926190172543021647064119147289360562857984856188186089982348550322761914681430713908036270094295590589461803681748641995863953252202600307678237389984493201306047107900512562015793497258033889361159487817411915351880672569298679086745105178520626182923394643887201687968428151534256567087369181927132097369520736423566246155496700120239521372888368096736640286868528479591339361539618541497994048905455847790741894579124936262779783279809270660926314351250716126907073639110897048232180803157769042839645452059868833094006293743565294150042115622374698472799370991518215905360757287629030295839384955251305021517607338070516486849437840320804780210344009970543139809860857440522990604497490809008486747143125205615055306894707852821502339122491854173688159524722951452712232943325799569048889304275950659328227830904943544291700725498649535334763602000714558931672853744017579131721815637449372410592668526432530608523686859356019485264896895360769169044661392428399831947549732199411106791206074486110655668001842317254135628619220224759016853782899629539216913461231688967273814481111114896279397683917738970796599814467652719040221606086959013369836987360842614783881110399448527495915452048071819058491387913726023392266556390780919552426137307943709778159174115330643459921613677899243957321165818431635460014445633749113481573127618699577544417225184469758622817337851390172273668536506111967242167042640675186380564125577738383468533314327310577111727063183086165618259711058675295601570945772703713075830413756146709954422049483531441306929107173330886343086888541021595471681538107266826803185996643655189015887252414454303210388761940563283046631384200199174016721656897699304512510003849058459365504623820282290614577287479808139133580042598891268944846303782106437867987253107661595068217664517462091805653321907130003359881623774049165752964384252108664889554064516054236349343560452540383174043975865991086230621979978983550727742974991922356783324950752760067108846632939849118725794485917090252393320238684767017729621557576747588389376954322892416328390244678115020728281371608209306593781572916727912345641583291333920269066011985929545346496427352490255849012598238483754214726493570243572796305140473744881187915130665020152031515013962741650545749650522705842807637345379097233485776675014230560455739076935917520680749866847116396706969982768420830822956771419897986581821007392059388125945689883569106123197009919725138337352503178478005127231749476735622998767275433782794985670247370235582159950550178221931972810097631046156393121519622420834484565942712907883042470239367805757638181175222429239704417211767298247159476796976345480092101998126893295267487388246692613944599131632675325018773863134283595722819566377392888663128882234461959159502055010724676933198183394351292890635361420368360954482397662194936307260435514181166747704215859051354050955929026863905842975992492210225041878617239328987177261046047724823850756664625176600097193866035787756325067808540096380695218503376160241974256348128363635597319282655472776250045355245917310792856334189095894584091573591620890242759833552375985268740309053611863833889275190428708833817434393396675146298028462841143286231719408555005423397040392072158931421761488480566026218618417129083099669389352879045092629915430712101064486978734390673840266859760075677552437071248543676440685892257410423902615307448954306394227311631061213747349874623510551693863106723240479984888968846051602002647294436266995631559440341740869286015141194255449967405262542865878607945982370190135671878047057079600279096013368208963158393426631997142944619406455711791884831679290158332748708749103476989650324308025803287288940640001224264944683142296269984547073630388695353019585804761658408168650694940630296506744254240723601385985665847006342496924433819830921740149901638181461413837944400983116114094378448856325049534910806466172367597380347988056772824325437469388339696215031689287288831219519201909406817616294302504952823345380163299292288725746668985101270952516489130363613143565923420203699560786181402203017817916357705142042246521867749108819343869300148849103295023072752630969839222444854806952914030316080422522779317676325418176447818876244225038446466630088121028565575061236138678386537238593941728438536081744996528057802235670848730369819958734511658511936924567449944817489660711681826232527922693014393077151123931381072061716981827295787658541673389723471094142841988158586439654496454813810687271728225378405295675637426623414232272846590014842888447424477159134498178182758935721817974928871067153612051783821098332517995958592622998338405467700695081888520732366239682373925679197745728904793757846416473607226127305924345047378874674451212631909940063020576754222009786292941011281458881009766681534464956203988787331934783552597090263814348817367663774982199173475870349240539619124491659004227784500292911443956672493903516226356436624873008143838119255398706123530758823897770485728141694943323241391224129695034344204735165084440788809494150738342915812242574080554294970141416096483225521718934891716534870335474914344371634325846004502320156320470591514493412992413262323368419608518123933730338720300849696043740913729024896229845116406037793505334696077758010587045964938430415835081587043696054000811298781555985649519024673850455479192610059556690840241661165852123663949241721299175956795372597300978617676585885407825381857672172482665831768299500709785628957721968676788239888431054600475887664300331525705187981282786441298397042723926682314671965707845168763922005908483579023334630798002964132619828062980930889033887422185618896634927797894088904315083084838005173276783568666997914649572804446789861730555487147920269685501009215660672486891101192002527964755293352818330663692573997567156813428044258112449202843716379475488331738537881622227149823188097477304150479687945865389105412975696824534699652589644178608222093053956538673147189715804073403848079485580865597322156226985543944292747414890624530427869621579870564128276418183692297550244640700754675935042705265541010750641703228233622828687878200393303933425874895551981943367294865475302496642188868349545314533274407188220997601972017010776663751255809599422943752800851835580171721550639798612549380956277509689429093781621906856545040134328016303439937417413535847965940446213221831372855969770516600144697248156193770544485544759909107726233855424688531557676861752863178841034461649125366447765324637804607945639084100272612007322418480447421260983184149236291211066294185817742135623708354855604363325814378490226321563459710533914555849833229587973637192644421641951332928287960505086122510128437653816401934540440142933409493248291355859801204863527487740213110503596018344975485093824302801539337145858682941344891878460085746399577955327446564022491929548056625084317948613419059316937871577534390720302324058049042683143045010657718173224811557607936173462843680367995253898234107792435481768603102356677600182338064874275714742820199749965347045922153950979860689049303767208558785284510945650457442956034381586983143264642887831688714811778197755615240047020792981803698255897722023422861096214971739617077898289729473962981777878110333182061058914918183119065338531509402338161871059628508131427199947963775586117958306443007617361814846278410997080260441699064417293122225444392043324993155780642947724633204734421966758721006139135575883391974987454490441791645391364205044022502598576696225761099743566528862001926795886417820162871874009710758517122655571716829888408342932286982763354918376726594127400324821746988830759751094289946538976702785392174187481045675884345674166378322624525465760181009288030219833187535135521891031539678100359180259208804483614228939097170123859760276921891999449666130849914049690324775374814272388676318274610642342631320483800861430878262501810150575809604169417531265249454138146230770846897135615961964697263443399580512370180095445600269167981912167237099654996433736065120141008197987517643728912048155187255508643601736699993319212591296268177930862366864030876275229783407589726531784607009275876032702615937131401648984064203406899150400574027453064135215626473300190374869594877495803279884590274799103819253562215102266685720017125058473208915521971699013990607675934291233378554747569674508445909150380499509536444553395862799318598201082173008278598850401151471825067281266968621884087317709344808657740981265623250530776816657952596470811112248178814014213852400446907084974995818397222324591636083569890260636434973004575818867171302022592892829671555289536116568627803261258813089535121003726371575064416951307748286727656724037711947761351108800371291516784880620816732411373156647649801704406283168556535349925163326298679153385081358689369031876707590558554833034750667052185384731630347927684654322006540661311601081288442621384473830201896667561078520236859481011095166744477529185983709912752118962916031950786974431829878046194425377750119645287872230408804907813335007517919199835857809412537396487383804964809554996693149537472418418441043464281146350989188383235752688801464668405366298257473311131769953197577490862526473564571453659642483551497634234584865675308852912068284111334839285657327897328501747673955695479343734798305066470827568096849494226430420065531155570288542715772212621525290975434327569015830080301716123756855286616427921722942761493095413984669124363206166135372487330166760789073496299215635326578794951022095421472184164636349495573396701903248113528935055718396111359051439610200859768853532244195896795968268252303725056786958538620986837673196861903448513165101681737270312182369960733531572952534809002690877734176170722063178899609942367645376250401547334831124717877129912755908924160084183899249209597310883602519074933188347164996832061517660162851252670691067176048324675803076180802912810377901593642934265249774175157254157142675021174825027545154359546175974846326898233460371599901408820101148481963144063441654482852828803328226120034363361959595057004575814095936466782582935543024645492827700640395967335972298644786899525553824817735398766391929898268092845375032136568404537469045103527406344400998205225686764297691856105525697907320862706590522242629023040172730161369766732426296650186816590098100412117183276718117593485601830792449237942746010085483112834242934752025404571836725854400656571405117389197894590174014453049676000627608594040342349787360726329133579753682533541845772786928788996979276770065698940434045392892886812881696533223103683056471490536149197312855800074404354007569508775255604407630285092128858922497718326933200148453446272477559549316758003622276980408628565502687924129811420268740907591100679683661313784023760997154761239013792278437320174818546456565562049744747745129250125257589909744866485663528334310932810175596393622305732189913464786955750629923295213953731491966735656796755902620184779157546981107671831524873600498119650795396184549297512071104574081069821824552249578122415494733293702679420437530116003857480273214785619772186453427325449295589537337668773532791205582350526437192601876277444468738412845047522244332309767195222867112669325179845150976423179834222695401784895289823660861113242953379661656560236611212096360759369245785411250496788297406952177223668721632547595581877519979660545322009435571930348488883847543716931810889498333444357334397584452528030286460447028255361128756368811034089692955601398708501848948749097656420632565124225761845691819788250806175754285771953226969864193630099603163518195219233575703338874293057969458475056779547969082315201479943714160979134061859598148017752032778649930609754069687743552506720352211932564684290634769742273608500114366944541583311544882947487198683070164946622404483962946166433219504857178284929716848454986523833062821576868489927728062736446697925204622957575064345054569521244240896732416072777168248433168269268545233529632749689888320770636797043277724305213382723051144419729009779259583463734585938449924374808292196873259483573172909444734872947809350211375839365015052941026989069633099280449614151293289943492831370388071603312895104968465901045519237974021650103052451909792486335109064850658822382451765218477063224350767035414952915450291532649525042493210160079760812287664069242199752860180125750526448066103825623857423930435854685726103644961973103373983922403846108579682748375927543395110321976318512178405464573641213069626516859221102604884599828979260827971700666692422839513380658947166470135709239694163635086564095736947709709371452777636263146068976396347181753618957338361046275692098067042892549634304986951952124405341038831434071821445103087836433299620782311606454975096313162918718376531704270381615213615861300706347950116258903717442907662964621520093507152112748532888667628317390849262221953562475121123951342079331516292834153912380273500907579372446379167560045388842495871453071688799709398781295132396037818784129695700856989018532660146024927164362455781608059791892282493671754095325226232753249202078794651703637645828300976292186548649099612974962700179808838363217034889124375632265050225881912325965163491994192678679333655511816500117130218577015231493381957123808389358485747780313778935611878136002634512475791402900813557200343903252194030108806233526714619561139184095989112958438535537183677965045561946655351707509924313828396644410580763931099996481991411431613340986134508624213137035011735030421402359692785251282312469504625414127023066670171263932602199999117566694777408630400071199287400389868325864844827303982844713912658934275705957908789538355851119700123525678707987135689804609680222501125217757984753919103910458350800301544472661081031937741742274043922393905393333409696150333232477444548390839379360398419054892351809713315577383306626449438854418761558402249380846556037083511201114202910443619559839499459381938240085659339104547096801649170137875902754790236973959777002470506859635758973116709319391251807770900364082127956256644549997021346928674927708162767331482680798411005937636245419410055634852836748164609845830829605858547244365876584824068418781632414942259890867074707221420801615261232487321193370202365550591793295482165499396375956576278290246893925941799034898733509546258428304939346404012674708503319990382853551378170237200711944818951627830177510574929633331446585555270182716376165586705825454117667240439089130669348402029605916455292541497858345297900435907505279557344507756321673798730276460275011706677333344884222574671539228846286328069640259131487234059368665730550014524355668570841689073298982450212170896983988356823097520891942872135320475793403177557093929757102894075973601936330797386772628527234811805243224040347506336930668229897494895266673088561460237039537966203349510354349080392005783305235650882586090221839948103219963313756978178268113326151170845357704388955349754656314396591746150336316455129654683039375806526355315682287125056037941311754407143829557816271216786430850403939403939708367530521803174097226593272864904022174653658744735789163991586164268066878878285098105790950789373258835348453123069494344214957555725915273426930490312086805189092959982288030622185931113522039703949799238669229140528376682560118208722908453266631703892550297392643425687243446723727752492165194992150167241790798475886828425555919979470504966084277187962695545747197191330763787316352418744897541432774767653271046107351033635085837834395533690853214768588061799106988164793173557582916485151180285537268898132291437791680800803875367668199455741704143213608011676687279035110614075653732866581807416638990043538255053292713559249130607104174992447306654909473619595607136258032670758613023506552937496957405247356954271201717681630543256479052619900333326203769510940907924038553574057471956384975746843742873641613141641617811594968011305171449933340207227474023592825142409754538939869363059415901604681685773390679367371803023346510611686118063153070383554979221556432464903457387405382696568343544182243785921596175817306888086864471459215660260444213860981492809071231053769986057160342656073851116612141966918875900193375385329947319430850494541987172934400074761576779731862415995245738666948004561796119293607957248124237108230503008652525607731862651865407626006361232545217308455739534339883151565332431490162627243630354240427079989078601039024047796045543128741960948732411096532031554249351676521448713862382307445634114233772204838509510054475411863050142583651841166027611503543477840995469141225390855880047983831544432693753737362390673662734739763234606840744810688660218764164967143397446657915965660936961371742123940860289068961048362506357354622742778385694155832791303690038795959621945101643391378790665517518762845523208889627296219072182918919964064599227209348890937200942212133955534100570895371320855817473453224847944186050014994708981578698106057806807566239052788649834114509108039307991186240986153038000215736828491806736870683949258784428946634491090156862557924278421323906392198184036260739391875547354999837367046913028233045585818736371755049719438567126737175584432785001530485424790972338375933714350431245959848113738777219042670654290027940322711413169998216800304318965319341363482855729271941756976424506662340119673500479362035378824308192781711480593995939497545083959143902293387140364362354147805498557696076514458890325728951046333185881213959255057939754450255552846668951683741686347300291459529834594319596309492401589720318412939538483749175814039006831543853011711395565669780705776118752628679273780516019263048545625103281684191264991777304471852150227226442472256846374487152950876801832468034637143198449486784853107455970374272167280228955783316082998834838349901469315290502571699817214038616410225667619209104273453491719346450161528918278685955351633765279733121487424886239138248781800940090981729437953957390450425990818760682638208689995601862272812208986963900226501355789502578950906020734792922433417259041888555230000384513847804062980730299056211158206214969743302311942892635489311778570016163648747425373845558000844832842257584131251391767008308011190701455953933967929225077673038348057046393218920405202998150726582106246611854992140578414753068581278659230501685783461595679837511391038089719686813906280306379510122969555035104192396659527943572393085179156924093497874232626692624616133300196604470225836495431350611787149811150199655095141069231838901553418756229352616518801363234749244903213802574929874601214040832883094339412220304767530535113013688571880143001650361462016782768002573532273365888779208513836724392541893622613805094831289472212310122114254344090862280278811247799461841884703410166841990886314480714119388125281215315924195073237674250980220555433501076638698797688410858606884566237555862022867035608260554437329315288102634245743277645465373136064413798496911866856148220447565584848209532427765830177390991984187115506980283073212196172329922925981143964640997666782590317215602418683937546104084411200080954796101448366583568356322167968596225465556252263136787892644303961028070127495034883590830082627793575327343661204329765355166822665329377938664910769028941281159929810950357340593612602393921823377573092637109952337914060927865442756509635804764687133930219078753567604613202100251031754661794981999197325352393345659681634351438799234343235086002907078675830762265263563006156141063224717923394772812547877460654795350476731119429245904922461411041958813126301474308129114386890966295357942398052123595351461927933134069930549535768734324603911391445282818594275156062885463644350121522366918382678145007378318099314838491730519417682334452767905794313581237327534010171454254325932752428127760373077858103625994524924575069376505998903125734673262075565498192459176728312950210047029229207887200826611031214250445416761322131744956610326083767370218248970110017496176897414515644248811055266034786043087800956659579456013270845584820276319200296170736782201792430315101123453577167386928613808849411567754673844693796368435504764437490210644635068317924872689482487631829954955625613003012343427607548535632429722157069397127685039439701971427515994017036384803061689009972690668595898288823575598111452325424934608557897295846646377943984991095816812322817082108700321529826792892904651379127947812904809144432844154243205737578653722872583975714522524668578447423727310547350019571604550860971188679152203453904122045814214460988505771973706142601569996867675302734948205368517099913555064635374903563794884775885720135919165187364621015905588363594556032397870505618952288130422189163841232980622187521918463682867755587473497218119487298980083501308726233462647982813908101323670311738054788670729480903045301817670755559456466645907538919639796329601016605635772788893073357426063768905489968281241437351473221254214036731146509762506018100817395362762793798370666564388829789661785098425048607254210760539528676720653865304993761369180213022313786770980350316219286696220117750197097568154584252721957587428397738487708758502576311360687203770995210197855742233409950284238846343309672103877795468565371887406107727455522890293044415524365672847530307980112973312517353018951610221544654686535838047210698722367000179490659122855185967118893576485850673031230186543678907405934232662831140260693561398146073729294408715311443987122385934062507376610856728439558569984713841594713526781691039562408404458913518386537062626539001040531555122890699274159514871825946115870024482036425934084334819821288191255681254223701717010412385905323899904647366878095516637919254841637577776863310938645638650525239642343635910144592396729786023410789294924011744656185744999699604183569966416331528596626679071681176095654416952702624165318478591621653159852361835639776766628168129374083210161075866670134454077827601312844211951338833029627055885189037335403713370725016488789501925894834964249041761570476766971582373330239337549704487079001794329500818124749393801324489837340602950951473188211333077802615387156236286906521416286929220906760408378751632856749537952577315352857046105228058803228107665578530560023693019577810402923600390457597792416035971866001989388350362036146034917140797819345172713063843511225983012965068531407870623207785734856213465956687233079831542686787694655808168939579582095301103945138211260697403941515994599757972376372574554413862397502793015186338439043391514788663390878897545983063157640931924616116938760049021472905725984231654215106325495770372464054419318485624797000544848732655254608268856282844187508732138886695497218739228936727022956846936868475634145606023103242336356067715282002628764114594409561219733282710460695826385085936630691907131796838273176978583011779360805182254236534883525839262801473153861292481289389413694306343343113467978394446458344991942325594639874967335582904421383877428846458275671857125859071561969732283170624951262572538500417399240998351232953284916511153699617672217604430024467211019746637194637745152181478090449787704548330592190364906887867477610923713976523761222708932537973534862656101409534130707470049149641796339171048984071125409125903586980069900668554359174391031191796245185260940765619757780988692334302542384135742685703206143542739251507024755503407801575834114663217615503689801681786315325766904595204031312594006547337853936288890123011514296318749425055207451577559954322895500327266745781838801268994538207828457385717609133397761700782823720685313596822119239998299039375260782707877873010684341968543478421110473872869020025598910560968942797229382413905399700815240975106922439533111491112842934554717190345943380932643089847127805481201960459477982202213983869578273070933389622952071147632286822859348442947173564540901699743294896727318806424999313354644185751889030463298840866538164836407188948244940837040015467245860553573395424538592043871534926668640025846271094763733344477735718578916218254323103098458331911351985037044790442511498145198231772414055583964855467776358313640096246636016451038909485775942030729378540098002494757458722109996664210588412349434515968937175104644647042107984122461020346180950402548406553648552971006529473000935379129770318072283057491232269464785139506162037489661749907114742326878482071318463811198980966281278096134061243292501433588566497098477538633218473459951074827701411860629663968123539883915846983929723629522548624992277328874082341869511974844823430081609280947712579456965588190530442173141411480376367262822701120607757081721282505880787038201232237819691622998042217480551240392474220009474717466046118494316567415232358019464623268520592446973940069360093581402921192266050443957144626600584312802766431285062649391571073161365617098386232606668304882706571077878697112744136646499447070520320273132610838711374494646230640127688420081742091284252950514004329172983777793130274963969940431872319429179286056747277186384101155434233688037467766613775473712802513072388924756538067216504923917083019556162238113688431006696633147352747823728278396890341382546231854409035792176668138221372278952476854755422750220061589273581821495623620741998986554545764941809545235851747822153422389882411551598602584069698035516446006317823587982559876969914067454691622949198771816247479217532514670633224781186960107896863464418590003066792809609436758646833439042664792811327220387167094144987705111181805091310582715855284301631200201747049708458373372541156745641270348812382057902540038379065865594356582802622853942650367366051248538058741325531282583150594422098270838910477670504843374792025774648386133346222894872857858338759636544323794568010924220028628107591115530468527976855776778980673305276534694835879072975077179317901392383051622101088022122156783269079656088123196926368668361896898733714039122360170598128810026162616850902376851513731733373607760625453534669884554420949990111429877201528935774627708468479073464262190205298430138846259685340675988835924221116246956237989158602403894928838314444737833704818841609904503969972945911439225015674991125562189567357913424121716923088785719813142195775567598083361531306089928563231347837822231093327039421289102330505084975015225990443000129285779379448893654247099207393837415911004562113060331382284040801325092465700741969513351105766636371725388187325159383807605332557700676611276105647820568924170567530653899441577425570708152252323249075221953547982608082214809937796594921949871229159808287782107994801328098901394124220960533132200148021129964019108453927724233370149472565382092411259077736981342710147643872232630053852441632912173842842938968802447641843088551641905037309756248467249324886789903651615154887086842435671393238979740621821435658364043635771890637972956320842117328655090084299698996155028303488825346060742344946806482420451410478833268572214686980187321219720765044378278021355481643724601956548868715799715709711266558546397988970338288976246930796784824126491255090578388163482743603595533175038979658269392995103450915756137827820823594924743230632179848734898966257349875595568847688768313451510535968905638425457732756244662092994772759048830928886045599259635905617748236131679556397531722056714382764743882774474895458679483332391175444658980567104545227637502079012242461267347710877058841277497990250382298644961861972720185810981959871253513835079359646343197092010530865810461599909387756817218245033169073842932971409259173919799831463116321835586985703421546204941723735253619483209394285452259931055539829828664900428125949330640000779419751563216806725258081816718985415878032230747010183356600208873902697980129756936133167270024366888960721675555012688972297863940438806254269005448458571197852762787508914280896271430275971234407832771736336624958370550952005260417405934830857491765758597822353511224811894697847624733528351801000388771086443649621096808813795157743202943512754116834489907723109358296868492690206971108265998223196313355862387282677648429077958446047452194417435038807460235745795422548516843157632829765269278008724202801742063229806573148457855725369169418253878806275337920618643815996381500059165334955081588657295754935137252360888826522655115710249440125812609644778643853975112007359105516056538665516010166355549800649303060353991079712392341338663145753150841003927041604262338333686259503634163490818517039941651325342620369897434901068743676837834909266729824448211087145367499772972871088780825176184817758192454615330576818551302175968540643371076712161312578489961008271494551798730934169986907612725369941285499110945011561308158871884681243668563654597749368335136511060420020537070531704321584235352258654614201686227661243599954754233855282982315223892965888592544280368682145324397225618843862470948753998119728499593012982901612174869798056296237286298289747591977528297943976884766078388231254099966952952610537887970072416566917249909259537027994733354504046681907714697732414559329111845348157090223776994907692648963444829228839647327673790569803833600822725652112206711560148921929506083545896308033111877425803638294092074001436306669316606751026677146010549423448766321450140727689330555175205492131901167249592737725008347122107995437160290018087194874421275287985413359737846355315835836025348042135472048804483237326530714828609805992329384071589633353279906441316308417242712962592229517291257920182340602972664283634129519113707404863510224333328881162959328041390797755974906223128806695937711395902904489168229622463501738705280533202871776313904264700490104692517387599218801407852739309585159831102238242357586235787057659092844772619100725510269346173605552798205127130399793259720333481525130861823035565645893153982438809299569694426465221814140752129818466895346569522232791151582929864915133955824798699438362320155728429905553438420578443199387041990679890659414186167228136521346305700999073094397753831622145603859193272664405028731506391604620009282457039227034261098688640210264373220696247953457910130450865817720590995944752846084796313603653984368741629099307602405782659068312793338214893445774788765704280700018322369778636546651140401147933672385725865159646553349199985097641632818478012918587272971116546644592503111084479179343738710725606402860058633690437662584838209470590355307928847589597072046533625770649191835512328616768380889923794593446950646878985722755286580216951477969931154979676394187405776827296489296378152690583768436134308491014612658549805475916960576101247082904084560261965930390453143491266803638072909778568024758789060479908997130693842871660217809693402734073046136997265145806713348216034210124345903615284768610708152538289578336237508937410022415932975453764861560980243898407937987424558757214991604056846656575624670481564853320137198780964801618237392284357338427017615765749087972141860538371059833579023245614036419823614894597180385861831667053095931944762428078503362129984211733488772814469549730567551908259828174550925361171386291292908572820883460829792046579512349072578758025158429466047013867426962989414909377391929282067757048588866753222268649518277942637778701399931078046724001762851356761781379454937900210666049608067480613802658295275490007407248200606252395053720742061598856384240131726424532191522010880561553317115924213029664262336956074318173402439542498787772561566545742808183434916016125830837741274274364048032339237550002912683213711003309028862205077853388937042713037083460730941494091567443582954690714244558010855534516494362476690712558577526161894702741285380876822976099277889747836010209160391169723805790090234794995935426899775605617395307656224278032190240430282393667371166836077681168410956735400249690459152919887122621050614375024350362677757061151438917724824901173892057737749419709492581190119926819551330665200493923458240868532633596956172764301612695074025098591357892080869851114041585434261761587738097862014534634086477945938475434301692513898969314551948178301791532906145464702366048189602031022882531741774390976690264238622452653976103231554277959919383394387734840728239715079059415646525410492739123979202860846032872618106193634332500835750346025869858987637980652018757847403125802625572105311065027892880346099559522885430225537022948660622278013308632399738138269155177807337016162451723652455140733667373238538998543527192768618826722322831551793233517716496972334104772129177497717430096354636685588202446961156782635069387991757187846843430184281765129636036786074266760323649760858338846455186191749204322742656839763450152311785618356364984921935167613551291756957207384595301949007036442453954456366563215551168581224518456155382768095974165296820968801072892844369105766649608007213756660845955848673868588437875101978607838891116582625579619710996971190249873255086397836578281747028365668176732283207778614864418894069260857754166182676003581064123719389063357624845905088874442236748117065869538740662473535452164188583234160920142079564385314625242304277868024106938573567779108096439979617678116920971196313783616329011903580378706232333816477732039148737890460346436694322961751196173847547988635485927423043604682963461852235662624558986848142595516235305055041485991386382321116672657334369266361664428707605092728992848308751645793675315123069667595354833311619029706211323518711166427982324885345270340717389256752237786381553474272963039380147452379649264744282759643205577278574668550537913332488027996071364954726933549934668619738051089828932376656414908752993091321017453757633727623536887268217510374104408293424537101518718892677308546828876372763565457504944674772741596728731230129722892611845824088936784361309894326975809410004164670256381715937084654293197567170048511251311964528377897741438375835490115338551432883681485695896821388975608741526989661661707500405495239878533001655423410610560249570420716565301600732200763799553730371000692144909442403351208532474405439160789861635158703920492867029138291528339109824848658884503371104377237955240429378997015379666587032392011029605597164951342886755582141984902499558542364958742481233725969414472768737706997881511431493300758621213768538260050139694704469545578311510966777832395586770053237720607680178722742478891882873457217025569013672290708390797336189787783858707148439833131808621525378992363333419754443059610960115053311660126321837977170161529202801944861196708200166561137828857761502464250952288613099998381420157815900310608308084872986765521877486493774776385433539541624443207073516921858596576675827475441184561595521039298944009255822120644918642870735235312181215914036809814431522540812244253813578334647624902715132162977453527520747538715775685664616916783527542206774338728594053635172661467231996592646482647703640799694443835146889967330775361402151468476350475619912614550957028237863699884079030562413983095137621148120873972308482193737955102701045694386754466225673003412777930648620570183643274294221098823784120101326238687983158040094863068090193773736978339759498446898274567670540195935515346386698723323551609266950670441433556813103433568009475691616410039981103657712717650055646620863407511662686130095206464996990173809038816499308245425310757675087514301237761390384274055409664046631971279537525579714837745140214166451708058811691207719456570684384277389398921302988084927131936743750036874895000148945969082998710747426186323259004444381773338297031683426359248381500372176472519533486364047454973708055160395356023366868628931764728611149364352208340913418545916086440476483886470599996537443196196624900665456272873016825840051539609343131190463296488559662913064200159738225644399139207008257376250755613359848103373799124773200578725693200366321840053040845752492686322944166611995433472687033425168384270038403423486817011145318398894099592171133873621819366500435269938450972028874394479939140353000550432950726152879820571385537808814658034551619746851173243992221451849805072357156597226165646904033894488313974891002384249656555707179387303527781793929395972263072879254578722400308736490627658906429521403526724947784680648084028990626105174497038589940493673167044825832732744666945740667720658715638740939862274073038905803633583076605892978685442291620976554859657925500156717424780212748532401037815568475559961624139835403172696342037650518691093906422276346193956044241061618483931596590151769554941075998368491683307205929769672983055270633096660235318401922486492642602611566778026247261173271914774842529614222748763711623827445740858228830525403278453481236191984418794782927869873610455502851593144729093827273977470752331484229316384938338810061098821041224480774823174381836542891764939769016705957000620302218862853897415079602412932440374404963763599552792134630600224835848352431353534130229493616521070105003685803361320918973701547771657292933727214865635096945847389063497987682391944142548064075062510214633343365193927171433799795758456362606377588664976596671773550906392686672586930403775434414216847378877222296759492730121190907566669767040058995676850889200028121397109138610219295009343426839948592882653075762798248192825744609981728804182614440351317701665924225517970660782238388246880475960313235961944736669973306557272141710486716897948175620046605630564925643016342175316043378638945083113392961744313096514584144524668696590077279105928358133984478029161596430797311128744223360482794661399615884376740674064127942331528998623447742724091846780199416870746150487102803945872093701716272232759471087555965488806489136610874683862901450370523122092888064152516565627023803665465466125791754916964530226698255372235862789106774818163697659186766516594070976217662102005750358934007212299397486113893982763212480467955810239761419890740792680743140126291067066114947646280967439829611997271817881635956248029035361201268258114134077423661908138487408186952889241205420177693675614771242198912532200347763682660728821366995776118731484357135932992534390807528216106215609826291752944243400206152784237091355756667939827521237328849387550628817902455965551802462070353042668149493837203282841104784131073316463549090814932805877472709397987080769611798282574467580194530733755537350392395435384298224129225206969471421734532605279040613994981166784902256877428978426351559255362605096474862919808051794638629271328372697717077222243500569325689212486730947730261596613068190605420977163689809326601747869964456828595891595174671947643328292069398443441935517850431693235761823528460176801965822461426624735466306584560593110489837558221965595903282020916171198319612345406316182386561001900621992671246950219718086241843332016218816223004218825304568465154708435354507334251987072546247197364403523131614160922292634399894250460023931002900556996710939369786766296965956678899156426404656345159988582066476268424705845675454497087182532702088845059554164901630955397013547803988276887488712207273097017126451977810976125611539479289210786083959020906867168569560128100254704548831347764530776601555452970967824277130547080972325421002927651800742859980149187760371111934120939630892414115050504172421499322714833522255658453681407508178072672958390007220612427067082112059170835552807924178887213617335918427830279977725340035125595165062726400695295507253938720719571942550309772680522977329065630041300719179460506370046311466669492390373840088920095226044990326768446012487914226223549609719085418560741428974823551055339035337233853006991019664407038946254950987205804839802985383893040013915755399888147805257498068483826028067054082377723470277793933311680154069383182599042820317576741898066970883342395613845278215577645292197892451942307803713325442762995994178765318700452283969832629143550158502970923035869665403282653670418597983101602740183046959122518114640824973345612769529923128118572597681060399562756188888247636185839075227621757435040993629267031439920941203364092808745899506297467431469803054590865864790165209564089838654368991130292501469247006374292913507967302751089052341616386749589276020184290040574695266256708386569954731849024935034389008083076667684600434432831572272949088109418083954808800742721821860612701593318425772277924272285924498581795336963279239808895941378542924812331150862925292583599962265612910845638790055426775166224984349408745962048957304745840005262263448803024938513373458372967407210826068047516288378854691486381209957475865690966247182413899731154747824847521048970916330045239053816426574643874989692834679007396210483850895330696046341227806089821365645898392384972834704537180933196880189818751836674853351885175797088375781063574210774555899101069071450881319403036841951919532899543363080698456998450222015405356050765904606917949439924804602033001007232746086915076007377415387095108109482357163968601564713413398815974132243644554686050736049624889782245805698006359604558551171695144821102333617836368692650579679167398170553256351910273603403034484914779493591683154172372281708743967196492357666197971522754224296271967351425450322991784797633439488086719780045739615267096116512673253493488071441110016429185809918131591435778301156247729595255808337466090034572325529877834963430555170227900518055222935087290777279225536976579112649396747201678384043064458282777651602383767441637096749123109537403235794268077915752567320603304211668029315420965943162587411708706151988753363260111310372337296910204627832665148812778074037849084988394830881939870052989868941713658415784054742805744200210288213038663314735820445356731469921748442485880570193053245449495292617668210999659549867313808500716210655852193906569460507694839493029453996354524986655645238152648122613439352788285606959936582100046377825900028466558148627371997306559688762045658997381524678033613500564495396093701178469664086161483971370348008138971094643728488441023091787949265155310226772097824841762283718044463046004575948750087494256903625945158866051918778949867907500417155798327616153164077981761602174813413951485500738333862301923424654078531660809920090808831675889118543117769350355438206162280438808690048245944306813777477859392049529748666462257064856541686418326783018463901334412078972547761348451195068745147784945546008576085778086557910368169708768583770723831168348474921979077429483440055907394847532839292681264829160018388659288340890146082924258469753143865427935682986675564998250957948322272197902362014963186974509606435387542806652447621121950835955587870158244944580850052299868862092250541462749069843021638445851982044909084340938557925137443555489955068268154518816266991066766479767560819642260233818019930702041833519829303547946071284312204874359141656443740672959767019538205094900909429354920415638623964110753818170777524370939228056535040418178886532356430601349734636503781179986361823895442198310169457344011677788834192479893397382212875717316228314810037714551326905269297206030930923563433199118468352915547159667825494748318230767227465981124430532064669825813240643020404632030803683632409838843386652204162848701407350197693781012412994271476619406283171143725865724388412069494784144195550503924423298944638760224347057433629757164965977674439665393870269092949193594123462472889116633064257131465105615156478495004818360647474166247640422829915179566176028848414253222358520171974371238417185188853377360510490725580142335948438939820084954631241853606360303931665030582885222075506960839319369334133555804576599203249268751526693383383455947415863526287067117715119716114871981441379743545770828199411634631266123590373126089216502172967718063717004766441444969947363099881745988717730607768669778477208102193142644122170045950476036966187158644261615558805159313036509515316784593244159561298143772976450596706736621273747188027494050008790022153407061670870255391416585578581709715068718603269379832814495267625655297039260480016001396638562824359622166373025898717223154468420042530186533607315485106485776697520509493618413529291277612023034816482483658489023461456261034190058392910953708514888805077507500046012756089316261712390831998442135427426488820141338153797643288188080488871770189952398022644158473906348564432907349710309967815646914974040366411374201808445417141737373491145165105855296057047231038781826697691126050313289887873511147936412302415758008614868025570087454042444890325269976941732932457629600752985746895225674793201045718288672070609526764399683453529084600824807090788658916904532702587657715241773178558307764266368086391886426395489899719377631596013358293257237672184950859931461100562484410064739817664543335080696848907303089000516815819436644916750607926722189347515177218008549662645032213850590915120440367644439902498357314722894696391649691574342654257332128303437803192760094855321043276310586306322703477285455562041064353630489711335389901772039269361004917885207108522991837392708229112270589872599319487823701419734765288765240843794224381776095917631290596634585295841278060726006937856187211936804028730997419227763399476948514389175587366385888456464466708601629250021492243648465477924451924731566967606506794099395328624117460715439741899082296547845969520848995951048857535966826356706015135922219092262484365265231479139497983412978247171140064088244097183982033932022454223877813760708608819337466815052274643235854954885794692734366288226143331192831395662846154185451603967554953130432562186904033290096892752222393972614704193200395455517916744519347143128401418446418210472160965682451987114845693197572263633014061209271941470115949718848490454589143248451144347141477568483786808857255151538372504939320874735306097559329121809499394990455708049098585410569021622196805329936964280991698718500132972890960095839241326892624562856524989566646507644079366101936055961449294314646099036675370176711159798550759003053816816994024165509216962717163714542772253959871189831890060605416620462082679970392330255023366577448537142971893423292534282912867779613412349893537122315417951278738683777299426730173426629049178676480643665211407490369926577004709062179438061468304769467862897754629466771892411162734146246916271897878388387882747874534567972375667042046520720593969563367594753119408429494407163707463389331292278223249021168279132733354533538623812809844069806624881629289462708864805300877036186528935640089345102412507744568083714247040867046534537189925761600338244529799151062734266391045374626814288444179753896402064730929719878934260181884458353871080155558190563373665186960257278942254448711529967254610815933552524421624289236801484702891799273085699854058821045512197734658383304350771731615635282921905736839684326590631894682254610612824660305575796323335851653312699387496524417033713653293919171052630720290302163057646937456490026924504138728522132273954038941360142015947961355602684048783214966721102504227217428829153074606804359375231324139778929056020916122527355059171080732569459547136749522108066969584302645675978311127727175978335441346717098469011989939727789268224906361747462092740730943156248445272803914683942848990991426876998411981285438866346686006163139920069504789676114593407642569947654464177426693863740491454626435806261225037894303558218811056551575288830442141702988973794258594211413115368462954715555495285566067844856935141732017272941896388073622409125303107967075512253177778956072155401804555123894672101972677200829719716828509384567582517334656236701437329128331335174984252461597871715341479627259862369048294605597977101385280614558766050725276985608708697179697515511932255573812424287098189991149529392485757386654608771215987811686838468068679000112329933398299414479158943652239615132180253041057387716827735389109774949720889441667577808362242812453074274568361613758345149230060091361403249847396289336059377672275377237349752889813545384048417629899127467409051288361162735534668198618732555375916825306687430312581422094875238276674036066536168558425620641828880461831709520541385534447618035788990229932735736566226946561615072858203693156102760282844957290257353571836418804123037302252123092911674119793340505715587067423346679907329455495157105888849189160342503594148962969084942555538038013901760691243368256509675928732972292813549626685189701652124464060073269023529140790498733503065468108707355234435236353906368268394728927487209307529311974427572184281709653930340238948389258799913365260667405705578466874260308670650720662376607149555473640716064258151552982646956221740972499873090065536748991979838388144182410243883125248523396229657932843296430009302625168010089739047504498257424676768904567952351123967059232384179087818784454755310316684115739315031683503986496668529080158423208083944868549909958362293390153544792153291304370944249955295899639983552230080653334402072637003959963987792463293844009834518354623015941170081148778572095748513896812692982606307964082304781600443857865567072373872388660399332004837798444578425125194746028391422980122522524248503742911026003706153385454342985590877579303775029055304718819296277124981636845678966402536107007490394676386746364325766447805191228981162738460632202877539835119075823784651929159165256679106054860569045565651033408742587713479700582727993338415403712841149685639846994332089899577082819316527713735747990031233878437567808603681090893894816065397806637609988740216050195172530551313384651170428702716292887379214538787591679934475044133869866675184714193866588288650119017027521047981297282840288860767812066894905099456944989485070020094802800910305574391833018755688133381353009748268743436119900781610329601637332712664404442680480319202505006354622945217090617494579173069004249128623355805546101353936853658181803044810807221707001459940605377476776858223783246645297238223094487212882386792869359245669806890507277435261612330374858673083982156060130607038307530112052772254555567084730373015094915671264737059139600507213647589856690678450941655822545069564418788682012281169932976124808118702399681380605901087141879540059945538697418032559474032325995706222898306847344214126037486465499147821472308705385706053054919574902459133609197212771632102282981837347012648825253417778363198875064033678460194711017014326171464898792981098144980282168334556220175121544343079120276682547643614674772701842803274038325174857851677282296197700001134828083446559788772597771255144136452478361053536412438519356064567303724114695852747302046000056983703267364285403032861530602874006886750842789732471260487169963896557601875813796360080073053061646869035094637930762036042074930667959521797930276629922487324895455246417427092846995837988523014528294204289506230941834265126010798101587558010441942521657718161215006861050673818886952149716608490840838519567902067158557932164646884518998581854673317106945211210039550798116285567206367333157178107690499378387937773293181653573049778192773082620848997344051194744798719470784630385270333219356858939357070515262947790756991962596040135687964197134157443254991453344613905164075782634431154908410830811927409852000465418857347059781587354022606533683159595978218908846219841331527353871994192670086991561168585608876451982565825104040409179724144029325111162205053822617477476154863105547282481154598670301432687218268996912802696977131063714560596726213099729847390124284684985714182777575442738715155290623480857104802888028462023670742354674143708180413761178843657067234318282480097594427112803060675219202486978259910519076680226635325802725362376605392707440708473244225686355073266369969984450717279810775070042200956083291988967896051921566920870371425222874232878216636158701984731960255366812034034423627965620830584233553468837775701488443552302062140195338682778009845781743984472954488837226497605415936673007520554010265864816201866404989014252844241929274081362891759264873133129114665576523655306968008057657159197108656148045931989014657119631048182461769250109322346838957826280699090898354388023375888814854234964118165723842620393154045403896839968886881665379614998904308377500301794470248229745785538302047683637067532883400802502884456053202868707598944770883411388685961219602450934848602984589488708580046514939377947413875327572098069804991289821646059846261314646513909116005098246063282804449943200700954146214622172987672019955860607050610214487557781562420000806811443696968262783483901453058732515221157327167414858754567631906246929746612942849069656134625933960079280874224454300356798379989232282467195093217007100226714137819197552945623248850286726800452042134107699146092055177312253496812842870899522477132002642837049771037487506137676212003728982774626841559184249052215095265371956731970924844836808483107671179001272805803662126553858095451567119689353352710977836319972443445408663242691590472825424958909710280507995949145162733005453249539472881906914948781995428383602956736742772354613055374211300720227152841173955744077822911464191070762900182752948311377408774462372754066985622193856129504913687043625559908162509315549447226235691187939933716932399497100882487284977849710455145605205749112732630869459605386924348512156890838872180308088750712899865303991526388782769133727764061765903980324993496876611041712204516334899848476476446649851774425054146059192563156620571178432249663336690931662323282100994651853129248826641848239887708746341522686262900130160944788728092295185179492828067168231730611533211000094577127921877212737602232579802609543480595550091604381168707097018845976693383390417921935506051723325032552932292655145539953152917989035657094807335625330426066068670375757851043352207318430222364300442919311355499065370282250355823326861574719765931518285330033897931754903512683904360032055541134282227692646366324460049793670618105685209196040387945077568410383040999959028929046685109062355243306524151178054183163785297576737169376315644478283004994740665270810200798779839707887829172007002110899495656285296534973264532358591391390700788081921796574965241901945469751686099305563580364520434455461376591766601519424385597475513204999506277732505841262485033508268160124184899075766783263612049325649271142626767080210735230862781879838826501064653673893314195885743538466195102649633975679332223936268252789463342826496234296814061767361336396887134208700151600602007054131590634120569791624886681940985212025712786312290622668626905740943182075107008169071528875391720899318811769513519570699852110028563433362349755004032958058589153968292355464582469130687300929607351471273716739329121023472109516680699259280330721111675243982350870181741684751344071514950745299521200337041553264888802030568772497327898297640634367257651435854798393305506177999134146460825725082352688247028756729641541067600997360908461461304676546505959918016481689893396769832668268846208120538316007432282690670940261625694001627141933877486341019809690064562327330379424100160588052737468214302395386348133808574379071129890507346460735214389756187398276824343640229025889161149349794382329563018319586729430409592386558502285787083316920909259795576050871851293404763772283183958333892860026688607228282278049108095610686025097681822247864820510764682111219414624632945707118482514403831966623517116935454940681786022576731118098882209923486026387563061827259500130997622328696051362561432647732114605936718509424551548267738554393515274759603686682152918087913892420711381292109397883737672394859712023099520756038537326954178816361348900134281013661999417869570275634523075489755655492641304425224071267424835275057313635477184713084049796882233622652024538848081725881086245838554259311580705816578992186062908261860326394358570885841089559410143008132786295381791918113660825084432601384823702596900249224618074118927216562859911061097337236986512425556336587544328583515483722726633405925461377807316515241431379404818704740808036890003453210553147952714989939451216528938967175836752213035458343588641092353434388948581743659735916624142796227226697307295510926215330045185358815341907353102617903087479380747981666853349064067337635167506392452704877611460073355400827093720642357390760221379321604377998212214013630041207082294546692448124675888893374684273480900109396914498655157940253605015589162343584627408444844354764991639835146081220155091445702220000026367413429738434369648321135987759221600008977267178515268858766387772202434158069528377309296547620658297138182130061052937589736845365769598969801516809384688647530158637321095973406645295616003872969416613848567511828339520517547540414753383828589648707368222555050578422334540067585548865723419880302297591825498071293469965835714136845081094639129179450827947909118812027239997408942414792752459524547172529088709204495154875470156199891389131772547026749177411012747475493818602000470749933724914708943977541804255262072478516571248992492717242345176156773531326391105794076351738531907786152211989211461155061979892372460986605621635572776448158762868621243547221490060766112907539638831876776737217475485489181888625096287683892846151094038322724549768776063770829212379507539503450476390196976635540771889240671242780401798088834707435149460175498918721919810135017562494593651774667991778699060511950867041039218505273021516611631350796702426774025707927421806695744291755182900132317064266484750096845992941893232732596530276898177155391788969105420608543686617991189164605007107622405815496421123244270693059025833363343307672420372138671656897064957421939657122242888767799023207882843423923531576181480656224920371110232218374225024805097621381957461202394362383094429497023342306453233000485926308000987612967996421204779568271993261892822057289891067792429610405454917250438378685807252590727468096569782843673072062374194499610945898115735399004624416207505923040381591770862312377013986079944606045796419997248388654964669191015526102690027939431316032453001233215180611931233940248530001176177215291007889630162680785675277187928475226928402216094692959482079786258149319927692570503509170220771641677044338959493289479683539734694954006367351935148820203103331635737496713184115291794538536444543320601425569561962470330498188754295207946067588057011353905197238786619133102324200248107318103134502686592010220923071162527218993501885306118338740314244520107849832581214477059804861424660053028067909269631034361449862949197381703418262716448745556014500232938655742692766627100684065929530412983377862839996055219836086277009829675212441872441824450625208511859908059949308193358396613371839371040159659634787347721707812377806123241343881849252804701778905522235288371191836860253513888854138140629189863647592726350831228979603994419575648062070670011505382816594781962737262565896790031453993821807287042713186514568257356696634647053882827869506840461947626232697052008606323574039502410126835827906630225454007501307508737219106006198456931758143171541828724188498862585381056679429363872649478515941257773198600654129938631114487243625552795703593885081608616353606053998695325746214030538262734282717649591127445432860483050602651289936422475903163582949951827946137948196841446110125947870168025606672705393617628237110610693029207784212705679118857089121059108406481486529590332076780889983070378311635391935335056510271093866510022745860447789462499195819701567739678255217196005545542741478853325683653893089064302539508346590886405959662436674292390143032859975835569356120351782037722588028523262627387559704223039973654479030778108382862717942051859191905776102325945284227017579380095842859658808721755672908652385565926966138289820346253409008610809674042565140690382516362765543415373509480440283277594764271822524382291324674830477265756768391197870009578459839621293411761451803250121571635416943367872801363429214272440716191562437730564825248913063449235205852473985984314650466733263512119056554309372007922676471489782282982950162015144350258402803446364609092755651969039615940158880404169518716605526248962907379378481568202295492965156858595526367973331759493379078699855924422653050769180701666825911191351772847748949226027873484536873147407326621127480703513343419618960157847990384177952084766653574221664313482374879273049921971586878294797722244162565425033597138918127497813904251259566412602093428675688001584856098717754637999595176481974922081748954927631089470076532562288085004410996184168103683516641160951455766505894700466303529283520428613445291018608283808655241938183582978770215022340159579823896207076442508000483297107444391499098101661631032033987810837528454588779209354968382010556506723802325119737301008928069241594615601802989239719039395418973609562909677738778276342295570170520244670610731672530753525187240706060313650351461739477243953847106254445301643545093712479573183947130067007518165934954499869371352621958774898134989584714394840363000347457895706087162641793521906450728427912013351093345613437188634210998382401832983443744481970038232834406581911134812304324680944521180643330279898824722263523143793804060120732474360605939001038331415467964847119433815209242746475183372810004305731477093945745298638056684570336911838907253934787267570360012550407472164025967646478523891036520518970277231012813627280341216394270919594714284557136662103214529003737634861602981252373398186564134487314416464358054099500194486777135256389040440005122349734226986445395899054551785603017193747066689168041847031811352999565014884455269572071459439995362445113298504836908392486380832154845325857754628059593254857913469792652754761207591875107433994930418298606251579571577087351715305301646268904121797796362695144324237020636321449997659135837952037544708502499174523800135040656846102758619811523157340346100759251813475305214423837989566688078462076788102712709667786136352818694548073039685601604474170569580222069363272537624664721504556194419715570582099228242647204263397682337722536638476702815394724782329448042385053379279737798588953728460460850926854023428407621617399433242666224726422631755560354170824788736796084853743120234831921645019110097923930967223606971027101012351095839108689808250453136410701139871203620235500992749370591587770194675057970409543124747046728371084606735349948351836708294051584765792139622230424679644488012548706945845511426676863320109758958318336736754682424437059122812074011051698434962648707783042552985991858746751073151454013746280259274928683949481544612854023244260213161216624373489622654115311140006458198070024365854717807228875604333129053713249407939068342760856414456252736427997904842238627276170236839494227680103877144002942614429189299278917894771202403332255563632927987353591306827985893009132182516402282383480194596212638625093599591641178455182190237903885490821473667198548892700451230570763046466477732556901316802719550956891857978519749723269552914962777400911219844021527049495663794895349056308938703903300098747926278714508521617951487589307146391473006985027722723203966592687180848731068855964240157952466232704161949057023239897831623365831838171870972688835921678532808895490031416134103699860068170827383189165828618021908592007692048549022048602972262347336121815845012315405099622020916380568934524722421350227446268005199859903650993499687334407162533012806378863332394496280958793647197736514951723317898598635263829993764107308069878179203162583861211202824726966151536650172288245291627313510138498511736086009877263080391272566301625320356694740436383423967911773182693881952345597710844098831141209564555148942183978011040297773955689302694724270934198981566146177700370969849691508016466419325803862071950121318529757999490989502919482817404215623474128085457504396195894684968782359962932573781099844379385083398148665528255274961871446664317210133000131074289234203585991577562875060882695493941202757928179446154452875897698092163217418866629909092327206996674846884936810747322212309611537740887130510402889989001210098013449422347636441207221141924501885709352453453424682427958383193449534073037593543195735330548710603983948333172495585616238817054544250171785668922674329808008667820397397275836367878000685736736035101204460375096370459615876621364440568574614805474768451053744381707891675505382594539308136401880635059874081945198596439124633470041715331414936451304363376280553355388093247585796650684634657577658440527085924147297790056421449130319445937079813372394552864826324851438932107431652492505280635319860487612401542894206068018076667187992875150273184236148887979813517204088746325661797137469428745644235109762406808627665533515385200365188139042066885070117758088840728837332543658133666164580959779397729734230824984750851028027865114879280944309250621910413142759141197328898132517701163194479055151881643191815365917197063314975211973132633659832848298190736240402231445476566283123735306527248214127635220320205850300753019495817365817597368097309276018831427414252367764546697249263252739982614328127190546604951276868849117914858452057045016770415172377650535720065984861988973171425589398974227768142653283378816921683274342841849223394337966530193958556699989632110659393408035999973541573183132999295932378272567522315557204868820089889396258545044516314609537323757514168612841702345650577343520121211958817397874207079817478974800069085620632320896150866434662919560667559124984975146784416946303335538307609251632389616425618861785276353715139139747562700939841871633619375954043941461119646003942097819391700487022691362757031122702710751098296373445831003166711997234168192406383095593307632310199732962072306965706740736467534740904908784561556315420380530269344628710179659733879352974717558997071980190357671654623350894265282198387031931867089665071129188339188992819617069461340829833565259266291803517198699279084988891428171338991896476009296114900343193561700030170311403555490302122925134629374562884703740976839166673670565284332699171863026009017330015909483092779173920540405475353927407209147917188421281289160131089398738306789871812514901235869958759522074653731687087710857376717226360459074224460663041964839740445029184512691710770477118235272081010362333436533081676047897076661043036032348193869930242369252172855828081768883538006297164052367761013511094448971151151127230110837728982998116556900614351183310321284623474500497412578067584092845338089402819777028957816965432562590531584769961913959302743511509424795498241186943550228352960646725070217363152543017389973937576952780594152249577304234986810775207553146598964780865513131747180253675819665544632499401423474699354384718167916036021722333018498378319615080388060146125356509975257167565484072233963412240953831133297037121775134723138852905209367560634685996958606671456190841133855903763426668820164977826489516225434324862067395265140204338081207000605670659870355178616371494509448706659050634076094658060258471875737471453184235702182434093490970344091364906938536314542910111718423183478478032010558787800788549341853950888339839337000575421064939132148065678133432603846091197292667030385451629654920220120501270394779783470403019854193075209579649951544739307951591900626027479416444016324331326436153388919689120940458590933167854805497159921684768518597122694693016096379803637736743740474981125122068829655261412425120181253315971261135132413684403180657050406585296419008522976480468597371661076209929640743202937901429796870534033444283973071390198803470237151380116793485754382044678355786278564276359979403806886470612836579895513454605855581384105659466515731256363326678848877979141913384883510972483157345430925629350831567342045748328381103881942875676252715502802251010647789903974505913103860350147486239727630534593815960402221173970298904985282177285034600572353072308949027666468581019737012781043242670836904411273490556507546041114208329969548651490631386466131405529838235299826049849038140114890529288817688446177056207639168318535595762551904059566526117769116261281586422601849819542739748890692311906306349251433774284508481235234814540120781309657254647540209369163183490590521823840150375183578286636406775677623396283979672597456193552254906943897477630408048102227515051869030057332169337486050913649752867983825212982451964502893581285825620447280130827325705365524492728596437661923679693873465772533165348506753557263527843380054740476187915505138374916973963251188895048333589968949146866087473368465864868513454839821268532500529522746796766155944993801969421446750569398108047540976262358799875433970720050915509164774133680369097335680415519568859634310466050542311199395774001490380217838107968610997072671124698344424956476317260935077443691955097462113143795314478974755930042553697576016170554075968707234372700626782006287397069965519206957349848236190585014338087040038779404466680262476022950776124612970838970815599874653165027399232763058748679528996359289357350032773519463436120231176936276414321106900443237990328786375452755390582423449903473675593740974474177187852215725031692508245516756975173110567997918214457325073527401744913367519053992221926464969697452439457591402118767215321192987298706876196063563415157798516124919882450919308590969831135188326060048274296820396859485064334231574914200760807211312573269416782719246988106868582824481192331704265222926885963458445194222780619903267721283114158287722682042335797342307150365051580254780879902361912429610762598904803786369748206575067169816923735047620048801009925376182657602322236120744656020634349088864563882097836657478198352958719485582167483915191823484459539475378474949336302275206896639112082942155243829150380653895285614021382076683364607755974875503327758249725665896830675624535832468877389848323102029262603367663981170403046170439241289078007785346976257862245036484905837161203212080085167928496500464846487576836437550875730180021432292196835502193030800402384440666741603412570561789708892703483648723095400662224918976523153955544218783558364771389335062248329137844601328053932184379046221168330695562092782987940314994761633637534400186956596315536771049721630193812785487042717897570428607688204528006371181319948261203679743020034940176756815159242123183082142040540443596504180287882232138976071758287408996221989524030109479610369318763058676932724999779306032225175868836914051114010993384392079664684412247080779913037458471793268722668505482287603654984396206834835032743993431012464780144332272903891352811649869575085236003603539636739241002038337004279257999762024195660102394772295748058704151796634813289059666340813425683449480598372838406124708974690676102369534309429491133039131407030217245085085876015489412925555032901808243976532537139468542878820155671752318896136146675160314085649490156135606907010022920320100287383995451737298670132649223330325098417335015073789665426200653638322002308271104177177755934653582036637436789706696984337488277749603167653857650220808364558905327399167838383190106878082419335186636358811865215037264917656013712704651874912130924561685262733740780344820013001789637411996750550660080008458743384577191775315046492023588320273825871068494521683521626175155111135355804550997576913438722017183886376122941154580455025012172722401019084027350857171041267249410605611117404452158850629955159577154104078931963203505833278046161305901535260711835015305357812870473452799529524537191113684707267828308989291759128079971314265845206302410359819797092785113934903381486431017739589389061305308456307689577501146959439075465553748774184744324877092548511528573991722636438975131877492446542380520572003404369573239204718616275855369267484514475374733897414751106246234553876982102004680540383363197880613915067883318122235392711601775342385129735525273687836070762195045192244049843366253019118427101985568732712971563461509384711623308482323814902172820540187126504781583061793319896832997150489957412654369261943232853658337002255007318411198564627043506305395428780327849575669205393797338068476547241960103275448552856712801454867055122433931927746448455568721671898180925591395137459080264727409965503765291388663735826285490605926417274086448162016926167418562527881312736911785523431892469909885714240127175853313571277983122800014825816177952655338949229479522995531909419305654792212668679660887627759291322280165719299584245689352448271524957246248988397919522320969055323454611810303370674970461311838973264310436191030655480837174314404040990898012054616043456952255150231172828583864397778007452839922973766444985106073528011385660122539232902564900103829884735109689884343660400041989816099236927947597029023210903020524027560351558610654329809692659023464654086033091487455151003965814129607514020490272186495327381650452737868430610521595924934065598208982346367052284873275400718854540028291758170281461903504043467764802644749306595181339684964516595533966855552305358259626911398036370640184497948320613570254120171050476459009601310232476708242440565064212639610826350660120187612319802974931609930028132992137966991012267769586209345052903141670199080966238153538330217744914440120978518695764707977614424105561678698377269349768687568002815361834704460336073012645145564798465996466521701502762832928844804271880365680466563313978911768326857929277532548189309124141815187650967844728901886573903899127309096346249894871561919241399662708787189900350027675252989024303910725382151169395310281358118473746559951318876225243503710637929537426908836770132957782194008936731006028945178920688079883779831769002303574730529906450486385770318499680021175286868205224340231167962280998802916881671101394833603959653721692344794703292013316463641844048627572808525842846594156155408472213324108755053256442875567144637555086983486275237239760302696214365720318187596820806128174684261417893809947659021275044755956859863848279730440068118277447110421854014952554892980269247712419875745868880757392784916549021494496605409153739476243920433210273209518427902101806552562217284735166897151486191203986397819618558018288821236181508117085859604870487677140273234504120877209370283060989420415016214857965803272946379675038657379781989060543228114676810872547979720907090194840815460288944631071458287719787177647673397009328168372069465871168523325636409585302122812988415669974984885308691663370903895404421041721514536687588766926129793745481443470530123002088114325665823220531473316328566195304435387072170876944675278708972286509041475840149395233474476533563568978223340383586353186908933475649190519937375260950292138464524748632918051200467937498694756316080430782496550182056145819737960975790047061199984492472279718199405150487973087492411579234320951948890732437191299322810024408827595816487112524912809417451868050627027888541802194799818165526818679231732223394222323055363164849756517336383864898248578095749172262175915077877514505247250798493541922645232080850912418500874822405748948598229096645085301470157789008700077267897469756389924808831560466655026563008764980830587819852327816457495593459479209663860066130154458662628975478813946103061617581356448772916453645197616786964745239163117694099537007039077804182853555046554557613474041436236770774860078988339657288251194516587068690229317948637941172528322363955731933750409802794270076905512721285354149592648210301672905857893761450555782020457777942473512443712405203726094223935252814946383125131279494811956148829119706168407242396473636251748002978477326948616079016939202686384484782487130033673424531103773567966054811058046719092400158200254746212969975116943582214287316606199499307400144372938823269028095152235869578061945105047430477526357868439381589319269577638301664881437532966715477473265480801758658720447861679910296673028602666972638370175178353341989168972264087196110223479823052440319030942521750332532496401690136851753600716601504386590541389619735094294116587984252059552152733005463141058616119247276836902672432359521826016234549055010394678743247894551764832405245136534323914713190182723364298139349105871620569257513135964320261783786699837812411871565972095267490057901682044238328221682116132331134508081733075817262815587926642002119030404784565608982010415713999592090574738915756745357055900155724114777505319025740927594864478028105979552510620447077713724632543214603124589929997672080935848579360349867225487250212009355404685646111627505930878336440848685642008213042506800499930081439264604620309929250965106715937091621803485360813815978294124492513340247679247926791018622754771491438008584635347980947841471555438173454288160145541740285053728314283115688781467312552707688373730487601756467575943150466425117533749833964170238661869187013621441335610739731804227843341173409542865617545611322756530456219905044037754724930839050396405943736300868722817184348472586562169744288944624334309531851308350791016989279183312027107236634811820742756979925515381553200898019655007727593409430385418064247511264581057577438330838951951001109433531720878538628909155897873096488295193900488056637619329690544037447956700883358674015124258235583896108196782503524893634318439608171962325135867212808748800926357163371682482706129473578293643221236630657151737353634684098087685479271692463795414024347585020832500856771435940203389143992729887387066768983208820168427044753940831346937324698126946983682482258028838668829946837025932724932586141256623371951946638465153779271541291386262728395389476509901503701044409768863514205098743836064057231818827958417201729407783807870272991443694834338303616369569764475603388850914661990856628796625951522612842983260660427371866519648799936635121378136661393453141144062291768705066541296111502455351621536380476596362319793776198848888577868034851488993691010057405701806729386167551696887640781376366714674728788583193414618925935724431947545181367285948515285713634642486748473122782262798302517380304835967984947112416227246908312557306403739723667967941656571520367104623110082193615441461963566531590085221520414536592453634748641446795960708157453905950594186629291764611749855412929747269064999132829996207985032879410421438219941386551381151030794346495109013655480907130315043620480565093265027577796997412161925932913850544525811900701477000557935151001699840022014905715394089321636951375045404364674150869954430916068840853069897992822604572810049288734175947317618606510613544965676661096876754274857701885664681709958325577236392210844879918130883917850693243865892078627032522201581527241166198862931079534255113569465343211855386107553958510569387484487357632412637187618899177524345906449508247314954911955530950953706544908076854930955389487288895120301223265780015659428868485896432523017514954510739663134828972886190639824542328717332741199183466706000016847952482163889955747890350128751022606078266104419352510552749961263312405269505841946847476942890894087382129133383023021095746110943120307645473866137787536520997131422076600992439312991313684924007782740473493982285115099345019651243032907903723575145613907961873318273152971836449188295304330239900665628907554441265411628015543944211299687250265823177324625669921247332742952124159599071522713990451277887536231466898862806380377057302589956028792476050828703918260552669561252420329557742384648096048945246021763136977493757061877058115624187788195914576682820143127920877399728303852821243075462089488164829527541902006724076240960712064218439601375681647280057657812632308797320175849276316716881479752992781984977201670793445709949292157627116555401361587176591768799909901401253477755954707753559037602896279636879608728048845188909075512098790554681962931451693773612625393749531261791288714120282733575821450025934134079427179474535108070915793535581832685216095039917660479853570584570203286858951610554885555315525355583606313849419928758244173648336201870533017582757949133304932441302501774257584513954162665893405123865437860724950049444991751407337601358245457377864679364861580304535783045063302701518251921472342265855030676013972927778475531179659262004870210271892281259933189576132560652248107547776326608699328584107632950777185069722655265451720955825894227566680196861390863253220049456714291066000851349318362008433103701224582294658777114222420911003304157764896720152378223248039131235999432473887552942132450495639717678840391508592329925053512727146030072661423440544420828846634450490394422092072510834750644025498844738898889129337871592749632046461213206252915903654306369454704341734073707650940876864940464718409901689431477948957407070429527071482086158823032065308969657730449706654370734344407498733938765631596450304073145283063509353610733523438827139666393557935997762116846375574472500490096292850595205375906431356705162758320271524231447644983285873586650575287883926294572936002505820056709177322849640255000354251516342964986409142336563262394635014355137476096826103616322318701995599883022934983812501425759467232050714992630128864147360438885752478313546478803096160329694448026486410672852969061910727937044953151461210104658375682167599791314679800745670532833367152350551103405104040984222652577824772470590409676729619128257655887672395805618369645186122792363649716019492294880787669102289193693465036040368106800146205105534450225536424721837039396615630789021331537149887113341887864703639358512746531021792187393146944627952187988113731042966442707890037672484176834354953317773263833114330369523239559140707050755421870424682902298816225235347698018028688048300235913191726887305264946634040985934318723766299923239571988966098038855004504727290914686156507828912013151581621024256254248925297219297494026061696083221635805354693616496158667147890281174762365349252464227600439524056903774678018937096880918886538709267833443009264067707026479075776571925530565543628930073785774966085552822356532516124563170920851543049795027939372850514753439357038273883907238681796528227293300233940239409999953449476141082759301415239665871760855930119078561161180415714207662088914063926539999480987363887244870155126421440490525540125372430689960003802557054977497255365770948643602863812261205256733679372891115957123804541878512695696450926255502670552871300342066492342202014263222136588628466323845190003585842026495279070191743643603126146513967284303616226684091185287664462523104043309385785913029204815289110148106440042513203354945975997394804775704297588144704694316601023907427341185704119466176132590717172147190362462272297261341193197181541344659236335370417812595778753444762728846116000694223585602358933170626943655143563105765512699602290582290036157450300662822000353769099260188563311251865805806936367243760895685595469200692550239474207892038887018908654873702510321216942254891098257922018669313178386516056156960318168644202152875894118233536383067202260044951410412906871095048206888324117863382834193653538827914490255355878889171286884716637194723210172590589746134143290550402698152078838789272820671596528196711103114657619683069843169842650967374941389984001674083520874641986002361416183288779351894711495776594581723840001447145536850530895679464219268373311056822912046174505196473113894982948972533546963498024139716670379330849737491033923864965214820471745751083281809079200843437920413938596391477438622981583640957449812095926321751061115301186011470303864829462669276619672242757070509443648111863836584965909397817858236020784220556086512665236456010847644292389191145816425864362009838877447047116014930164540007840506525648142048518631922926102540511858610095743496152475778499560929333847284655571080023091192619315893910403344331732263193499163000021767552326286836006933789624032839830961089450510535256727762275118825152513229699968980443773899824421834977692264923890590998567329218950511125621202296878588378306437390515326275331228036352007576525081535104320288187716641010203100472922965465202572097645746023162939241662747125436317761636359596650892362728062091744490899901305296800535036534514821328628793497066364050323485998279923715838178450689216463902976658891003797403420551980090282287743549197021405408847459777586050844040633283230174323957625051184519643289627684568947112588736842923835034132672401838075093559499287606593985475166833987364646736527639882193694972091272984258579979938623394035760213037912085950398469183845465718960846186490574603918783671370760904831485963352339428384924205845203477052464551078024731779685181911512849955648612295032199836959429667190683816779498132854793811070940688959648030727683412386819140998397944529707772007069705048048965580511916107773504835608466358018075051795980851318691047691078784059268385683745130107409444552405667954563058966377081851556383283241020903009547223963787159691286473137363995369078671916074229943059761795203883867162062918864740610671842130779266686167378177370875439723633124266498690620927021981521862631051332708350876368755959008641606474037526591851454801895457711573955473338941547519500324815744378248734394122680662599354991429138029700554558278900582077997105061067723088258303053767081849619407306754809157255350384804821746881364864292943959056661586406645196363828601057548195629690113746111447505358156499552781124959596340104262103769407686938717506410231191722736814629159632068507664257666431183616891601060152110977581264490554141877461552529068502890914966202707170180705487339933757764567692749300134668781087702242029283190092766171728187848998001681773323054487666412097976859594867426123569912817555516493220825263419504711900949568457577540916638801906382103489281160427409636568414498147439787468661479343819986672966283418995133901412089872322721063566722563145343400972221514982782770589475312307102005057448074777347753581128987387449204308078630406619439215652372855837283405355941111746726365064844353556534060175151554760177378682620092784154091349183970500857185173411577033594645328888789685035678248556659156700157676488460208812547737132527570577416805085694969297941525724742160674111753325154754965403240085451748820366422591615692620903861813460408155363911709448307853194092526341546003731206283249593465321519487385298723649487693997904307631179687707760517843370393238866457023393499434282609868603317063889927651646939386373063541526263103013283541551403142127343769373712948078675879213157218900840703526376603208831985522972940601130045178437433060194653336016655206561907717081358911141068882469958009126769619265881906458395349848908174207949063116974311026937876374945663202611318046445485940424369820454788788156118432499291939489444701679140549698431964670510459639673141978224843878947534059094076582279257266211316031948921496536267148816549054307568104646356311906452141233984664419415911337188117575633888127175149729811665160642175890477643307384826021485889704245755951314908529140753644147744012646262506966644087853228263903739099743587954475868271398463520058999969167033900733403193614470591050518966662659826589419737117890325507586043612738496728305365357149053312009872564043080110363705154923084408194292665872581024192339135390979405965575474808266057538969804120259361430351277956044864034619796776902628702969013975828597567655804988023198103084333581350919793943721671784400415188353033055957051977995603039124757367189926330569869463941888922335344157796339784686534136113736877472484479817390924681375943080989988122345382123122675412419960161672919009818095326690987154683049498145211112948401675742367161371879995805975319605148824761823255920333157181441466356929723106662948238781031211574660688531481004232343789051319859283546109408294677016799521099317444742412317319746569426232566677069134373294920409034716883163858767794861223290077951384539360253824698584029300182741048383164292740838739083383730745115074818719890114390075279968205910509048107787630798494845493715645993504404546871748581740437582005318242971162912433909770357138455598640320744544396888131671790344864757036734702626587622638380310533498067468967878365935449998744851094275614215303294779733820720118853781479255440498187603721976553842386046217796212453684045485511895333095955820255509834949827134221042152553336165727340685592243066214772504546993960775981048993234147919532196635724430253081915724185648576074484692905614541536675948632970396541158809930386060907525423520657457125845377636619557900200232537028025108221265382297827258019137554819575678965168901595567848203673030675249017245724148126099333452129541714978444859500625148144480752879284169769795489694625681218691148984339445119043393893849030338774254504760555116296665140755371575029356031351041761676591164688002371124829772335632171726151683371064112795560742816638953489011895017882915315712381948075009520541944799758179181736969288671991372887920455901700153989576788674498503049073703491640590410474286600930784245579707670232404743346036397765972060529865651835651064902442933208479428593365580527041336302980607495940089141403209045283052151071706285976378844151571171110714874185907662827080593781971007135587195083710337030126933210904708903174566792816783782271258634767709973388545603398913275551871308274946214521562406066575372774463817947766781694777881624609139725444392888083780522286571532271004549991916084067746749198795978025008501458028077229542776924863157784081941715093420677257335126038702017993217296182952940751902167241900608182082335088940408579656179344865897962753269516273780466489448575642009372005328089205482752187840117622160439006757180725782339960848749406279589500900957760742174267750088967397004422704716790879368202521780246854321128382521129902223425206038588474099288095616903423268414891655754007116837545430721947014971029712876630010413632207968741122254356204660040634741081782947626623677232908792548494118279170609860088052856854365221263948991020873425850595066601994720738283657688262315634775525401448576211597100603167697395183443424995290632910960633934277233279217497908365981658250985148451826192789908542861321996029178360983053272136874472796336428673535018097640626585816004008639792275240032992611288440898264811860745588902544268338887006647858071925930745484980419566418442582260816877943096272135817745867815156497273458642344240567260532381003730607235037599795469119975603894690333216277438810297181792985354854738187376242153941391966580913627806502702283559779116691904072520231856630609519071933746668817963438469824116754416954940425881475780831908805387950758070399322147987106964952452532807961012674304598134878106603529007216813000123412546394221066758699660717866824810656010464822773084269508680905655857100667227515967928458842253100156360061153515697515088819622185630797725284174738334647839273674135464252277747654427033653258202640107353818403687277300072845718588580305653788350913538565272591337128069200415356191736899872735362362590850996318408063485899646625920825100558978264267321090035194307642472435904403228694687109263375566457012865818712083542770693271242384878234371651072300920213808539504181021781207242740033693987613852411087406039664862352317616862079397490358004870560812299132456809055603635417135150347421425623542358569800778920537825893283878052596532699664390223542611087331899472406154813242104109142657122249413897038210808408666193254216000535652728298145387403637048620661102248388147161825775437388590155532245322792482081118725575616061005105271254750650090397412791245677678201923507312555708616812875869321537746601586790729242472514908518389196366030257014777793477186084435623326443074851018143243365894848006520798734667218849485765193944433560943332863858890499337157767771085170547856571696778326957031431794065673127397384022156201703402562660725951987655710387401582393218314205074912949275598519788471600904326362082389275739167330872428241161070064193250584114110547302013992492945525593983147005780389085321669322809244694221094096370390891033355480136640533187984677833640309169948779797453821696651669200617362845839153888428363474870799738781363168140970546817567611080734992665979304966601863475822221659237343089285899779251467434230984504192150933192213890223622319622237655212716270487319295862702797984780326951527811742882244018784414887399413477530231853429289551032929189324036471878355981364884855471481158253017933336518624064339726903026495248764132628688640036318515416810542167205016423323687138285332865641226278521764195759385954180955730997936309417022185624109633511558590023472191080475744196794971724971336252242132054720188217318178322348626989603863289194762171748721508902768160437007346230613767540183751767005244619506562708368056742109056004545178003423208342361922237111191998524805249964281600599401367843097192669472609452899020762424758826800613166375341780367080445121014055398108854265995573410799721415170688720820787988077974445763009116558319052429621392381877307864693959617647601159051639117551949348854672901034253623838901950845447180744333467893663604781163550258014067553449674962257330034471678903557996733308666290204160805384401758874618798274741116520829709468533774909322447797450073194308557560497985266596683444952974703257342734237052810390171903584885819405045931998137543746550482013751817923647943598265625633453393745577471419302447569971274200635734937782477985148354124081434662785780922639979185942423327993703684191832998959267164707778179354654821284344414504893677657862388471960562387606615506885611180241063347904469223608808235008329335413270249358600221923717685784860574452961543789810683190422168219549716890854690368734151868384923219151153991290875855612675194492213851307411568922441061705767066644411469694968639137176495701267122097306980988987353851736784527553309357145749366428619326467538260803528350115307453010829281077134507103095910119637764514349647187845411256386179173048354948817193566092610854487755692542739257202166980580814067718242207452438372093473010011794506327617468287111363637112055260526336052624208739599498782812923979624492872903428077406128181267300100027659689168643999924809528302465859732607393116007019100747745449845645179224864113847242689007322800766682208448117188061296304290071991552612321321174859584156838475622342614805126258522130026226378476962140339133023961033260512553964038761695901366552969923609904719114736220618516682231698371281658154680428391789614052702522592773662483600517519476075482231627039757218577224993623129004655370116846815261228526822185602041991013664585751607265590293651176764570652736677809033855274825278024315411730046980300630048371607243323599890180650875295909312228129637797975475996910486850099821006666371389448893423596685815629158720473380884705719447918053841142956716283151224039236963098890214712486590184236488033691253764376264809499847015355542040491313448160699560104326874404414068891236579593153385387388514274682411950534923034708176166011717326325955531237911812618296842682347795386200401906386844927677505267618701658282863551893548730041204697583878649951883626956847926872940429679665318092372199517519282246985872755625410093017620490004410292763626876090799548230116407644714950018941453631341776151926000932174600002739529735178565212022540146784079273277621246858105313555570812998596238665613688184332655339229105712128938599660140236500260159217370578412275634893859126437639521761066880476148001398106686745343612585102198660618054844114520058491568129422901455839060089736214006989209999266919517614463843316173859798781433669693175709098002613026921772640009991292238598285239610992060361244492105098177418308522475526447964595885112618651328901867352667403371235766287214798077364835214417147216039132553161759670216435571993504012877497920931276454817117835650824734280440263780626291415839213021199935492107513773787241622030456157331061985481785313266163932792828936820886004232607106343377754629966273975137231623087155420926197094110645660372507370458905439224425323274003765064507314117535840571670705917356429019520296632810517733374728184965618913058785723513059097176548202062111938297850254457699573980988379109713801260481775247887155873479888235279296375590715200281584982930885784669896065566579819692310225997827705879271905240704316340474366810698221921553316772015100676180501549416288107828302050382544711659482828378798653450170503677580033378408701684657387122203045595195404129261038704684146285668356482344360945998028177135051647444339730411961084134570241765757303297208421507967456183062936940629297497628268668666016643984814968375737156769454731224115172647640269535953548034391081581880086344214148132126599352462514100233557470813035380457567669041890397286009211211609743223158099371908991320461800806298227965570735561533174191836638629934018714309464872554138428760299433412245592394691041355284197301271837694191154055707738091597168871846939278337088594871169819570960784003755798719145615476544664363830548126519205076919523583343695843029532725650156025592937819823696953673107257833909548300878537203512366095399172294572826486740642647249479467253697369561102976284943709812391477429798091413907147668036611941351651801236327182378974263236311249404884167390200044365539919234245805474233775397456851851492166964966454696012189303653992966090069235329100524563980386251236439300808683302870418426851434101762777550632668836320670291394524006759926150262543235545062785645081707988063042741515377949022157726098574360900762532046025196178994233323788010904775092960997101993895159072657526980060774398621532663289542545234450806857257279782470311404305071470165860956111658401023937938967762267947375931909664563559616723599263551522248845545183086435240068981183337407812341499234318297949148341600023909431506583969105077569300902465468803472648671003737423358309219372096427358436570074186826632492845898592479188950455210457966324252726155655020858719579563747715989305675898737402949991321540844482507512967837759712625559992363161387771749394908186538660742439126531827114168637693962337539336094654026988535394076409117786555872318922341951672622164113613608656097185485432808369809966786765864596449621802237239907392706310738337097642823413347186886564752454631194934636127308695529118767392068639429855905554230905281985266003488382969569839014119028728608854993156958329555191776164622124641515403272818010379770456983237456443316189371093282603010737723392535220821306561725339797977408209016725428839202928397567515890387293916461407724747550053147376333407804670128531069178906216921325548989812955980208574906338554811304266432714840134037188462626242661002290904134482437161159036372362935465273898637517471840243241245878054876471475660373421665966005403254150308543137731594184860801435667784623934979523552095076029693554513658484740137868843140267478431867185923546022701034517742135613772491761769462541957594201449442959819824061101621360472228967409682390896910002866297208659378926462154511988300396747580549374425247983100076405454949319571887707628055177562190062008711852812053978592207668872136047104076529893585199076827970487714870798584941601523856769745513445274534314989665495549718188686822160003927976367919001615541035588583764509731024440418905815724173316289922752730025335488396339195279814289138447732192118000591848607976334074306702629192249270818570492941004189011694416066034549588121121645001203164818254675317928796763100573471924906815219160516409753658340556376559220186149256467385852458466503452107872536880281088892220680142937420149307610847805311818397183469274711972091147374095645382913875789374410064012995740842663115724662298475334983177011593655170146818453716954090800226909801883640752604760672214562148080568158286405950679190606991405517962582432507051402056913285192277930887772853812207701111425086732738073269535474709637866943338762263042382196342016281509294898457900907408189803474465857205033844643427285349849921351802987434781624201009886572204406445765498004433114723648661815732443786522156316535789165846824193161094426908805826674850117200848985066058632210108281656851078989345884722641166255250964359844043967725828783090338646362994827926304543407597496081841174033223154256459384808827543354402361901878020904839833773282156549340618231939147500252411755750690200692572253135983265005237197089687060886749918700883486135421975052574461072436143638378918954003197087426159684683551394165533462979618717538093340613363165303828901272019639649778570212339820656317609381740957864738885439582927423236226480457953194540953687267045939579728984249980805291471823509414552855583507140864540618663752103860226161255988529829336588813240070100267268724684973006857428079139542713846780793052841679596334743528675140017516912453835795652205263501072261819575721049998711768716121418989330358832085414104989086526822330832998854984200642657117105544677899965136812393501236399348148660226091654470374638284900611397100897384181585402817030065546157374154677554706375718734816694015271759457151548378935460959019592946641542670162539165924082354830610909477685207109640156067643538967517457736022804496397798121604295945169398452151979446971974432058348589903309779175347068835823191122528069922906184803182040049834605670153267992303689195011472184151782097495033495005720951894705264154963683060541291676988361495808339763423961284341317971121544760944827620190725861581634293570741571386116459168294164392030165707174797052598110995508993348154281264189095354691021368088843294200050110924894547392930895742533591722824102904114048912494184815024955810635696279961719984859800454830547559680078697876363782046254787101606388667262328109975269159720869243418425608341646638828735382866707617426736028731419225551680370923515452928585803151739213633503405609758815878288147189458762634665574925352846969973657984258334530178069880259058560093204010579934562415811028848880683756174793377821599646140774539316848195405867020111860750992315761587218769641564398739838888255052418041781803839220735973855045809546335913355525650746895914856190965842370721390752154286530408038891353340306849170100285986114142909930919739422599989664805079307268283261299541888085570413508466202529757225771873698554625348767540514439468893490163052830300685775582357955090778982669857052520300008656120538935935297899729666726628984612602288153047664452579664923409609998794028084742087228819497402626571985559993146248417894720091116228238883773197788540734785780766552365521401051804708494631736762660007213815949576611895320951449491880379264199973542353946132739296679279221822495671531543529147025663778126886446816023549930757409931763800172868798150041034164000419335957173802481855286932899333319308968010883921747515333894354196379046154249008695191643193925999236457629929025053151117168479159373388168093244871209688736337752915274004376036102972464096878442006607615253739308153561908029619085785261020347084160962896603258714422453427595019584654506638783451698716967609327810589945194494298003421601806652523581344891275377029017143486836593729295851668681806529845895531283202101003747376950438517774565012382816669735522680978403380107291972412926487368805666964235471585469456559803364026051624301766818807835746073740300877108093325837416691656317289454566256586168325057883793809409366463271314233399711187745675951578793539745800535736951671008241376488069456787934569772246753919147415300010089603139051192864109888467410769123128636852622930638917287740501543881770352316178676933527983627485028491247709074216185590134262095628170196690665086509798152232172627063371435263218310301464686783387130732169623872934243918893851663367320037110993135291921148265838931390189166500073247288709819190215799106147045434891036411313888676632034599589709739742611122144500984756758879572199495131207590947208298907796185845318427633943524259880773254791057583009604811544190356773957626182591721343096186358049808077191274318428984668262757976778637033351602410880839751366114848089592796784558134676977595644649699811487128375641678855777959725648180780410924085030174202437909755017422332996718743636855237050089637113815769110388734253874163364630625138489237519507057463028337670852512756104152044312157964487085850107650616869496738690943242679140568604678887404598786706500249215057386783814865150828327967927968640286564028013469358582307980037320943977680506149051577590344767069364989870554981476670232793939793193831966439550455087930222920660072018371493505384589054916885597787711231616074902364531422778004784800086519597696841116034167527068800241952751417257610135018473442662376723997998238847610434659544080386466873536534273868890634932389407895341793616406832132748179182553645678511807273226606454299494549038303061897501310286919386807277224616116859014817529963594796009971643376632482155352048842319887646083852659315427502855990703602505821636487974909823399274732261922904834788806204581194961441136486892798987854354818568549468576820605113106678432602604563674614696532781984918353762920007998746040235162591397558275090741886614835348310356722670754926481031328426796458344427782608509653392958433169146431573984662529749911647642546000653104081040562128621172745317630570627555264991018083982239579636113575697016087566084036200543525509762222633797973304039632138468530690030585335083549530687114017363819404869279196276941179669295153463528128339958443024319342911431677206506557061620681616543032784700585241052455129660184176723858820434328731183319062495525588851937918695036085512783688999397749545701819492532949985788642266935522550127432099407100915214006754635182407866149155045844095977645063060630808191705212203782595664570342186740088709861650864708326939134776581082954657017288926068795215209992484021441222621658597320920555935454000570769413982233748129442329053454571625394911367697078911776032852040246837112299466140375332025883638491859870626030313053351479416264102855641959293092084591956695073655003211250750174609201749287994211164894110730751426178434292397103718915593175034117088036633088375228792998594278781413758826349191136001945454100430138422285242546182656464373789395816321252601987730829236323863522851976082231775298780813464219420261502485513206559610180351539297667440343178297621933804604727045228820687734841167647221181013128717124910346887125958532203475053568708615248929338485023670622225151273178418528068314590711989268629167098664504865160757456656334990485309425815214204836677347422470867370295698567138918813702179923416111599225938479071898069847505072614512715427116397042729801499423798567876914403633350879958099571827297050253753164159047496326237186403772892443714047199066016035557488179402282411856428448562670778710577547676775708135601387540590232810812995683208951282623590777278682597921996923566440728595486925152565603393837774251634641861864154737212344014645849603053937673317101834332865231231275613816599733079737051561994793278917059513032663571567418544095885913860653872258000983721701902949947778266536126718644523810883979916747196310063294099576314462055693316971961185503287538854243956969374191489949060898542138378499287661832442716085477202606474308378642331395761737840790653271234711570598872922061126285813917354946688468381786357545655675481131020635513456925170808508485388053221718950407064981367872490429327833942523653409392355245074026504500444916436057750165141040667272123261945089327142861635644104914665233427363139785148806989550034307518914066480663688851006631982041712352856711389203860646839218210633934063580279120251258414413291894053797651752555732266375478186382294903114485244599872991469814889443373638053329671612229191676229148077775987672277246690749772755162710187887406114067356089603395432892318109733580165067024251168986792521657767763893833376814587716296151386795838725505414224979700400806456018165841236400099560930424430265248383209947854077989209608494778607181922474363828344170193323003341687230863914034404960131181543376541337742457962225884090715709857847735648493902705497011087333498492801680988716663546341557210661410898539765178773425226005513799620670986818521720775440394831246812948859359083285936635836301965369782630488985907105771214396295452297289339330692153437684297954331130788977710689862849694402514520500833527627835669246778922478551411086418615049655468198110658980165004263147170800128666509615601714213025867135902322192480129291887749681429526517941365349116400745068326591010830402710916352576844925131958406716952375501899567325639677935320325196000331861128522036039713528372366346757550310871948357611297851820771532290496840322150869626295810288818377927671722950582649411417893826021637210221723913626424238955516239058350355643377168457704369641299043356612262967300114512301900388785459995916715969187994978223687996064802780302611771851204077706448208130372589930280858048373574014386827196408707526993906660539600198466834683515307919074789734361691056092594870387441166821768752266219960239597912349015297579074860812452819457756443652790770912319132498741668539402251713790145861533115243684708432189847608702204457937504749487016288905866820933025237275326238490268024161816599644969221013174531784852567211185651089675955334381168871702234285093902684334037081666276428185973710918688402995191191551004060066555627407237361625833367134689754779950480813024651070449156221166223783591328598072803327094291479802995367896583852797431808210406222354737588381086165075490508298342725860779067526675995969294974876912007406571377569975168238180346921083490909108272937837382945770862988398649098444693321284023709318682750572454775316309465835617159558683552553237492332581273190612125581002145104237603679498360651163664010205359478954514312102366997158209221872217699930325097144008413647087587279302188077935720715128782895038188130450819658267205067062588001388719228424863912379620917825212473329217249370275583426715782010257738893809853779975891168491353657852837903050723228872768385065745599799111493595316185751493716121779846931318665917797588539314490598086846409699504857663373172271640885245116861181303056962124589444081290127738122380312527201153825727983518825970803754152608810297165223108817795979854488190565860977826384502568920561859521702802030920430455469857738671678972313969573805195667087115672556193532694630242717895215366120406128513782241071037294473217433397630437087915159850785776988443928200296643834931901296102630445308716029545022733624010163524365931097289614330996514986784193242314172343022345780516896604788075288064877120092523692639112466879250155454234182191484620120285208448011738362821157421883213910021176334644815097257298304090521075474791949177217650054098000014727465393065025421078172017731267194170057306161863487676912288493874672435753669469699096131208585495392147841330823861720725375523051053902917266309266112686403528535720842298971858850884845553852831105767147632182014861742956774396037247394182280261338149343157972773101968028058493842619169420932748262305375419304054326720948777902843166658782482710436347568871099463547816865273976566394952339444153103732487634844951714883014205281622198668187584683786189449732084171829636838452880013970657004493213772168914156434898004610036310246765819805830959491086394710536255244485895881628739427251710102768367121260139866172129552514696468498182482582739597254590443795334610666630256983017216518858587421372779434253352344444852765082200949071986280485434265128284677533504418997721212872239408645740168366615046935329324091715090078697905633097223757941725873428089339816643916705443862925390196959778653429851553730735090648571110476972609589461614229308926371128413880744663873733092143916623022192240196359792002718696343609119336592706968029776049307608990140116189537588644687584403963446292994025389619341500982010716277468745250249269363896307020798024897746111736163326448375670525089649329135220527076493439711455429575973470519055066953917380249120152047123148752131954859855004377047682684238618172526123792489294100839246232052272758508283089114974639553586100588257349888682138588579840282091678691476786525984096781005944289885008041026839136766718194623061449509005124691474738537416702217596157659891244935231360273023928430713895863590658495407309108307685444046618986427531614015043198448097356624555586283789431602353009815489504581585363619527945545118734500557162651902476370292578265548308484262519628249376027145299498879066408155477679201674738844730781093476940579942894063008913922520217483469875920140690398714306749149211943882210788248000266533949750542240835366012034134477513453761213385138455637679752616166797636401627836936316420190727936772472231014306947383120656501269445696526594603997016627588711774982663060559015743018797709218092834912270046744746315456137321930648306395336067217043252966030724855164356306028901578534530415903550837454958303612104976272610493083205703816277400305522504931930105984270896581879793649864984889228703993032663743253873404507252750088662225633366424924373508546427059609363500682638574533745265359275621892843573956842573318570266450203466767956324483648641931764869100676023139018907502816704552474773856612179483860000577866718537238699239627398844294487167359052184209709847874196659614728485622899868474720851206446991001243552958302763602846153967319463571103608711449176030095434196813758588459882479480557743839218134399053022582492084101985741243795966780234561079371341530023744259787058638194348187347428988817929644420636866530164459615572633685128668427930315368801729916486918890712801907536769282660423805701413217647116916941317946094244492286669599239110395031308957187386567417187694551894813719085315058242652987481652437652489419379149753113124471053098882333269617121403184552369778042537706434600416788629407522499076190372832311844376263990261811677609502532104443537213758003801910089199395884999432802087002109004304920605427385137564047995258109385129905653911599279883354225300212044927779243078504570570169308135908982295008987044872373639130271062320074864736446327148171942447821794661821731818984116173152529960921600714767705870119198794576409254906268263296225690746165876329585722597736736899745433070667799232579603478835090450702868559625166354508934839773668413999155726260913434342104311112712098999097990963925774099337689936295991568035176779703734075739892113241365166372325337887766182681496788172710490222438710760181187681293809561690662569213693349441598355550873196109286519797755874777073050811857330468821496686430999375029949422393886904797045168737960174248125095131172105659689843454785877305545647745607212204601330301834541939944381333263412788785092123428885170409617490243931853318976453809310187356439748025948700145781904740826656109323220059031816809632607510353737699512860581553507081956020976126268813749323361101007322233404568376994657485957135787798798520264578827835515156566580627836216472878663507354662485358956575216747217189322635235534795885983197143909049311914864303993189742682341420736541978691733992649075803523812396493526868040631970163886573934756987395507363547946138074366359456617547693325010586418741166556225417190180111655882519281720853459793140140714534465221133113310067698437338025178024666413460532269566466918207219729882280881497345650450355167064776399042245357252883224049837048007737348103240622542574303537010830454763335238144644354030481483572791207333146414416280930680615320859992169424270355529638641031161553257029581358589819412712885953197248788166738463814417981559246897332054199826890492803659175012926169018945100442840876209620796345250499280196820417089914041058087122062167011741120513583093162035506594054049708759619911503086781059766322152519932834975890612014897372805967201659501613029117907219312619426476170914297936794006548580508878442032975336389101253897493370149394767640593511672017358105511830862587911153268035199788037690497612680667505354128994710102126584642496688306637769258553748003588815940223579507497820783597588641755262941387986391841945166611288345543133106574337964923269746807602143266245718678354346943527413720096249064947325542402519498776078145888952148509149284104573470740786588065914434723403206986906998294249007599550312782271892252704684847934318866114837676516373184284315455931754358757041615118365058942984516961338629564289722478453868871484993695145904605702314090258820819799241624912705447604269029471599530756113028560812535056728842110005931535533186111710097273983532118038981344774542845951084093924744988626113790355684028935751530576839070016847915402707505163018642934037191960033094741267876961285492902799606154063318924549430840677149916000657976158866045402384751418399915221622858586351269086356165372588380279348286881040780680795564621382560792129525368839128007797761123559041152316973017063598537571749844499376687566361917911353765025402130441334822658420956525694602808692904304087330868530783851931735890970671508941650808871175758262610098372113768374510325343728311603376874295972737216763483629005282871015800387135155257045788094029347089295501813064814631502977876739283325115500150271860534643355470474747456044416547571563932967392504259106626255977211658072612231945041884853974354958907653883789393821568613826502805003812033272269632707981193692923114808795757924755602625459824450686424770140143241221620170495216827914227675397008816819453605022618116019005787940357125323612498262711959143995147715298827972004017320630445074076920008496421842741398658085907051648320033163087509442581848195090875197878260809184710503695613623353804064077079714629546089329145044019359465876367491026905662851979892574821855376915384553131359154359902683113729441453692001042661294855186848252360460086686027530561058919879927348086828671156687520931387854438546836915595930822353843585896627480438455714156326159093750694838734102904099925412302845213592881716064843155507116060412676155372628324586437867175734431870390697353156813163918482896719250455604955319489081775481079559359414651061839589910464713703074440081886132534802131450262349860587464030294315559416201686186074166880391975374729913804316468080272653158218872569151406725013302380601665819265922271871039597765977316950899526359938078000652884509945879682630633907724105702322068262816687726694979751972131109868373047454860599790634047206368812406474499547403420353513657515740024745007303574249882597622550998499528709218616939402806503009931312083225602426743735338810551853334395964995819899787172414468438183932438735525858332728154454327065414292457132491268917946594474012447884421475034158081840166001660212814538089610983103916035245068502563150081192065642458102713935658303879401797353263272587550076172489298941286246520470079935712290751409936329842751398555622225074527517630342977827325249689903751917442172617137653234525969401614502985862735371174343549988887153962835607245367664092665789632562137828405695332528146280110747619788631993873934209653831652587799581389637379025462059437207588378183999364025766361383261364870253333969018949164440184556295248528811193708557487304560447996213012771668844204831636446430963249808885230238525682076423279882508747443163950003395765868697946004927057460693796113668178185643836810003004517975909783131054670587922202259988307647249288495702209677396260378137578591283765279569265739787652584676498991136189351972162214775624945012932583188020959667700974952692300073943726714638837251308470634515852947657717937898879246458613864566790541197606489969711264083987872460221522067764458516586616938987540897035590597452359247522402396498841857699050467062361611358891343252638086936228385679645435317812927474568736941590349252973498142782894669057007104926230636613928264240696260864366155005663839014668716294734060987999067493153822993770869941756512145338442893144178068436803110401140176213471450285762187683564649042049231032126562574954198893372404936976636924592654518818431770767426423425751377156797352646851631806537228685017911727200785366771332168423332768241567263323325536817527674257349722337993617873753658452106327100379398392574127561923590508429994037851275027523370302226679159272353087763960624542119975152870648278735530719214737898659169547139760288615414480846217639655711166475111648739865385871042640038279305475436642108356179789471094198211764353622909437235284987462841528369874762237048115091365381074933639620220300358872724444673357698773068161135229492618082722050619270980274587879730899874525517894910041084356468134361859771895740748901749252026885258032663411234656032917917061045904843869514910817453908814812848257450673979361693424128631668845085038787342225398577485043508884934557885100963542154692795976186296096431595091942215422796951557159573987927723134398453914042370506135375456277416733066825922462177208283251621904042068597267444498519696527094146755058969630841580884418797140626185855277396147067326004644064966499961455893400500188768402367381979832782885221936816717311883451648494646562205060542075658596029820464683599062544674088913944787863332815030492508468096217341910527956375497450628329467294256665926782448940435472389569681577886670917540500433628720680658706199485554490798476666286584251460295517469043300506867771157811427130891854715140955048075561281080761577756173332844028118056064873424965538627847491580647613054672186578279955894831286441361463157041812545919764348272169343932590290704970083127133803988765835884830673001289675679763278320559162334187320062525974654731794277347195227201723339834235902473074949757296562834674707421674614768750248394462234172223394616508372307476133951329370279320813749463834383382234510190913705498350923841040681949687138666768973566535631250971876931547771863617641685414479554246367993079999279532987600414368459086919763738779044722772163593095047159552236396851789505929222601019465543810306001851904128627813284464868172025206524325321687059075797111274026999746359768845950789701049905350089417689150787150144421178174265381776414317007427121368735245273302321917843155851464182502446567140672247325261397317174290544704821861770552507376261636662862397775975054689168807299070576824039377194549377505648836970881995313231086836041953196692684978606400058692103964354460736023662055973685698514972319317012137953485571685799024664476641886603925789106521508632229168670893895945237313573159474723733649333696527581432495283828226910604319599918517477499460672631486738480884165211500024955830034010301460152609282949717424482568332375585116808637490781679636243706939583218957462035279610728356582986574642146360131596656174024478257801728674448099820458409498336794780340143107119500929903890278851961893206281282327174855805023385201379901004035074610374881847748496311452032738001745862185725456211867120361153454554211666072365396299636160005219468418549075211872300704544257563395008562079701371209567542058571596836926190909825301798169611667041446298016413488982970764681842493346149113836037975360233572888237692104240540850649482844907563765574486647099186903999753979656308254926242117960731259382404381991311077283247678025604924281599758492526565932754533481707192570993508892499729460002468501230752469089201701305624840375037855781671466128089924674152984802011655735383762018101781269878067740305687588367402100341391193552210309303767271278270177455619383720820702455408490176111972224912847241928649981046042184517360290429021091073109561763747398362940721557616952495884044020439761023408164643986274179390480545287644234233903123522461773406528943333357082646119516971404598879216770315328481282095676112051787491679775417641590640647123274390014968446196329941231290667644452251359543887899337750216202682440437473384691469346912152378761930573648679096078943453587816040131956985165794838529330245548472254767807705110609643229710395488187580705666970262027733834066089271362225785323572529439848163663159964909926284474754362379926290038001437761824987111173483561356199124095398223956855348610525166131530514926940051060224891439999293864732956181539596576021710547547377400756557156918029981249599453870627940413045338378579075444961848932236867576970718393008143927346155368316047607187150092545860738208124116884912049659829930922703530666832102847584674754902242024069005439788382724756477695511629265240673530954912386731090132319904397089592770010623869971823126285759286202549095918290936939348901621597096037899133206528123308155309492129727137522872167193843233441164185037206299013073891183988122248125248547433254164173213274538227811869449227233064208000151058402154256296386830977700519806726166545964387700868263409669743068026403173373885818119426450680357317798189699128620666159639321851851808311255467521793814594325208376096649557903202696044181989478403398648564044816786365335603309601799801840025130450686407749266087902343659119816482898656163863528823450362622809662251743205259544900871840657542083001145722226041267889853964570475279476155075241381227677238188078263971618316309341030728915859165597593690883099781497591298520002453507345859390949283463101495063045850045593380582154958830224381151837935870459655694949505362583281018995678991764727824894691388572486617152529547487691998110643667176311658972577987724867596716856452230280099421297604566753612553478464903580956883899514020610889498879691142117525788462561837056757651681144702854218521202056793834878396666513477109494461713059430215324845227374628602899872553659324309618560743722066220438953401612984117014532581964195150664838260273525423461304077038495792744553470421830422479198142256574472303958308419695483828923864924589756691218465779233062963651999822849554242960152254081324757129994428096724433244764063210616132197022489038660999794293267138818533203201844545279275144265574651879250533655514794070099689874190828714058099153576978276533354727344156865347058072266599131634020714399521481017155590829289471641283143094587472917961234657681238397474500951185740862177920791894120935907671935046454213291564091627537311419479463903606705849004075907050842492438485324592400731952124236703157637131591865840054851067582360430151154450705467420362129206026815497702753940903502797182251577038689683710950514345261039624290545808890432469135721711296754113882009822819464498718477585671412402702773697591829827500718797627367600020770059101699219289065725793542130097379433551674124992979702469703907369985483183430395863851425236153510491176596798223597922135314742461183030644317323092829816166054412154233015311435316329431231490066726399888751851100239804559729673568104290092715970514391585471848311000577881770173383970500756482744096000147710664413286709750502708385716721095885995194216026508778823455115455479492868766706357028789742971316705465344782886668048165970968879552359342483916241556346781510015297902995068810164986390333296287573679676897022598149764245455585074706017761025710385185756450463649303517311346528593488815489831283187744956791021281847753755450326351611298234152509005074540544002921469440821924722583819845935199803065808366354864040514154390595684234368031023747590946063031270616030426122758217141977144195570785936359715375321852997035586415851280389891267759009269627699289368494781545513237810072969096242583098626879668603784124188308046806487654853982900851187945635879500055392604860170866264775162380762275266108236725547552078254576054736649058998689839646348892948576326299061385607818413034196245621868744837725894181358204718559540560326735396229034762088811572381466097677397956299939295894655380994841021087021287632618837304358992973963534806448980099370014083717548077718735074584209879175524977305456814338337666137599995455600183116331198170674592936198476958359638312494988277230441495900972706462243123771038836585075529148780484636648370854643847984479434882511741601554724455813779287113260711433939228053416249180273041161093584041113483475619628516542992980433503037229578792697703041256148443042169684885781336566866997015121213208127523728989866523325403888741948948574211108687028013019259843918006248527950965879395324421265543694676441271570317532880996868632572321178672771943346654536986255991457445790997495515338581863007654654474157028825070750867655466154029382366656746175284620241201338874482817087716730351125593195932332685834516477931197010132242246603555577828146842580096210306966931416362580943971402736772170192968448778264509772743470903753684061972426122389957697621916058515076044478089289456062035584382515381171345375960608661452902384788813230415311733030185988816738435402846034975548487062704461832121499986451580075378640434434039909344926935650718075662069203267200107353697288854895461113810426638176907114799158320702173354719489483209683499566286906465271525486888473829906472458921794253111188181681679312237465531049351997551504691674873522371778912717924689502724830080756134190093418192145921797717976375952027812737683664479602311536705724050362811984966396219349013786733434700718928860992782130800771688705768273002682913019821400349243235445032288095646120866661843041483577007426063214011358104674818362339430469525456881795024900369237963230531516452563501330952502337014166742977134774557294915274832900454594663483664718927994986501665210124906825512430691815747761503129743974038421517021912279952940936226455176312903236356385718055480390137727626198359665242462686060952300415279286215671253717192954331250792451923121027468603607282939075689486852660653827354538410920403234376766987442020995059598945560652145504944229341450196356495178485565381928079858132397789783585473212910506106582601710738392867160350069406882913294681035334502727132384012342931918224184107700482854696157443882338270489689165056452821787663673169650625062099355408435076711663336634955351203282276380192628552311453949662927177671988507341961796093192994220858857856166885385663687005051780988837796583498493293619107957876791308386504421479928478684574120436997639461558811917589541850413684589669296245322988184093547223579472531110474991346949803381629538347884414584538281493675263643670354591322688551805025183817751741474196396543069786458933335036058737506554646325547812359962787880883821865620898335849058049915372221648051923475727206722506209398186327079921955064789858956758833238394150537948076127579432166694769117396890028548759420211068848555342402040333556001782589392385809807067822452606379074440798350371174424851349250451919016140851475031577217888268807686483256817005563888084929465486207643795827148338060549698530894108714115023718419694858308564814613159088509972060935956140755996368587781561881106883207216372506742757135214466549554905828590407695363585397889237276931499571401054482090739293604878868995276833748853412471539094592764679481261200283308452512250052819915889122640442143721596725358448721009004017409262358555851492018665715007465215887391932727733192621323565278417326724920460217628091069640719976475378707983839650751669238719682261048131666352136859137666729124836877883835370647999824088574385079182985170916232255690251735517317079359885663549578678807190319783277512681434421250821990375828017865058651289518703912153365799125088997947279153180688853369282748587417971969114717010681195285567871439236237029691582930868421478984400273560983533818979502168068095721219418356847883272940373552683697354599437256054064897389479919238911606565750402934052037856931502370137136560281761156253499683698448336828823539426670378165402138448124415839092769208495062732198159844456199197097385225913792754457008677616735108720004409628535622696947271802191662277749152173779817229609090921204483863597097475653038109099246801290861836945737959800379619413834252317680205809792620373891066829585442690980888901674143703687109007696703701159332312204166922954756899097029480208914120490499752939921056798509842395292404261241095047210061263644185943318463842657946551311321738514459050527819284065301753544662859064113671622102380658243774500830269852163739239386095982164929821147452641363971440438799326461831224080771614949172000578360682403210145239049072864094819583713355576814519574175464801004118001352432777522964526273998550944886046962766620735006443456713668724314164455025135222372620518246932084615050480733590120085441091590898353665136417820347366907923896779924673140600292830560803723400247442848035910058883616836088850701878930355395420202962271980886652385808816884415844690100433887029810028241789336638754295160419290133729755785284888603420616429797445676938681673969479471999232072791236743741378655785920141711344839227770502852169533816655420172784144033638504006519618868023001599238085639954581700956762029941968286762212778604681358041672470833695621778382668309169124374008264866108625232309559765799933720321958913921551434436343343608805530698411939087897991633568090661663546848193938588327223525872909714941914823860518420880395321153802799139072234828776999148087151873722338628965266053946182948622801457274784751867508900213101495104602307536785763032474484911222460692448602817251287145981679654659447907815690549222921576696839273019451759530517401572579487406099937089518337654926748827429252291369875852550475028808027624047750900689438055950154277481053423727651789768031589940439245147316270911684524373995872263800377784522672711926386788185584041288068432883544555429811927794535938239560136817332323430489007956232594513598808808482124387536390069433338535438838911764387724797797218919831474066006461935424360344050561250313656713869411275593168352180233456451584719313154769751714878498001244994884373498781580153624440347827363856338381024510866030499433301912856952758578165925279993660228125624794807543005355723075497558184068781301706610737953350798136834510246657885061663177847391120579703404097721382179338792148266230282712272653158465557173998059839915048646118907540683600720612262874428650423683429655490184177752620302681052501507244536262184391047336142373986841313203131963084058409270257515853268305147805686987325558531939353528300159577844627501742217743407058617772726445490584659004788872084448472602290176449162715614149096454614699909300514689440973571040465265786400655886693292820338341109360204524047272536276654423915185826228916903276839008324381831601737341858800178649459709002958356439834792092469043160614477095168228032352067303335940816400127175674650681506336482205533854848782791631897840923965233297476307159087173189942348219150584811554731677028460058015062626006201033998628392497178893522604380728364571718211420711587668351092661130543720111497370565625946739305232208082404540738350832092854863759181200968142964109671505546732988564350237793130061391416781342879289071610466820252485878366178397557894080126774941907758772197640640949349795201456943644873418310039823919166120942173576466456668094610994733301219308434080729003613888249592607986762776706939053830580592754143641814254027820385974340040267806324845730542799964583502362682664917696429203001552741337747452404937250638881151719522155636739175241939569555275835575099333967689007051092092711443493063582335825012984679118000261125362576978034338167260929851259973201659370557121524689770444354706510447749975630112405276686740085821738354321106473167754241567981325772272597354097856068318275870213936233721073396397240165305429213025191734029014911975040913197059798493238263560618582328454370611118552216901514705581557154780545388087377499195258980712875055597540748762638966905235388083500692455105450906366526373523161041104587282514440575467621861655488675131373322063121961468209900462860355013346755136098061548899147290534579676820491828518991927550291227289750180913704889543741773194044431428602123281221394613589599817687184695380679391444029690062151462424499474860996174059558661277833080942854666432631844602736303038483323464973098410854337944508036346152090371689851535059574058233930154992181681068200833539678753152609648371958781968930166997555098279533886978864220819764841431851629249548536024527773766002094394101459552984518617606430309226009827918358533501598898097717606444711020423248487281707282646933768974589784859158443649122296846841458794681839604590208114148343098702140870466814518622818238381665427631658033352862397076669299147781964238549697136966415173131039980958029524380670074478646634715785204119392160038585448792547349215158065895224546047785384796357304261836256988892027017965382783074923608202598105596089774678456752095409691706830396137923618627237477858279203638044204198550339434087195446875638350451153381996634087499859124212325694183651187799858254324573364474384945748363662508233153910677082576510744746012217559048105423898281363423651839180255143878040534147752874652322645412539833152054505240809883440426374211030263306165321311466964478367668665140199261083939615819125316061674160886819597707443066777278928678807310409563397098027399409374265136141312918433958641011076467882888205147790188239982346510929539311528931581218905883621868556722071777937593002729918385731468649919236590219277305135741290242209212227567127335487439024375416900054728830197117165650783059224378876163767280703356692460367425474096723558345623705008219137241801065958367488908962278449220460684586290746731830059121006032578099355872385599181283803633906203467964961511610997201961525630811097378080551539640719891208893516929453238121520224721436497306492779162129082098373891296588707466418690759209879923697595967795219142877036849401314798642689899636802340940913283372665067279765262225940225225034920502483788145757963317162061320153964780859669395066073941172037765343884170862556333348322820343316868029535564545598533360990751875209025432439711854956060615546169771102757013031638428039542678082463839331038093296248151526519493201549318201628354226673147491954433631791433841659616079736413363197953599881170852644324081599231677437972087885855326013421977062503779651349056783536544299050564851360470056189574675766289564946953991605872855839839880189152896071848340410626032765836660010169070941370196352341825209413774888855987219550184850690635409108167383209086115705838462508990171154410563694499807589751081484938525818669446803791012739296885977114427763324589026785725192854689477460907106064347115368735635284233567889388093603738699625432414130103417607935154489660384392029249893931718201159906304860637413913393192275662023125400651053544363804264400156652441716615137474903583898000337878472728472172231977172838099857963334635680858054824365836784577131564635301866945092581890908616685385000316604718044352475784503954810562102094549327153398205458182503046596416999882733037850206271605485836327432611017303349377482997610536312595681448455145111463885293545325005096886487472104119935916113418929295722927811767515514769911040977706904285057145786726147928201201480386767427671577855782803238311237642928904177169351891875886469131769998007053474731635774376386906869721790690182283756329152360112670208393703256024881244332078943216892839863267737047507348590914119928649049463343684787010679042583175076780853958471150731914527320111550657463243992367647393010920347237919590704810475403539695785230698765858952601697351414124888626175827818633217981800747503459120649561505988939180618696687724936518510872029145670002010838769273465787079038377417105177248976734754091910938225088446062159496045231926700010486757737178265365364786534829383092163002764949358544808239334412399747404816959526491333308103514099055939253622581475971870526841087258781082983300381756545098025498252374775844564872609191161128249012842171368138649327621796869206288105029689394898127595581625948984007968361524203074567898500929315812323695327180384179341577465238117257137444814821942812986176550484385275822261713979079924290769250513363515431904215775482059642778550436030519722333550136873701812440603416577708533396286410635569142173436143291796356632636918269601217207868961911061952589901665946592234332336423335513983476400360756938899010177744972411829712123085363468403607821534157111316902494638758226459045163051204377921896551082348550192711391820743191143923660359832617223107105037657501097127351773836276828709006083309179757990379505562075787162911340736215172193279199383796162240165170643509096982755547877071834237660274443153431889530383178551041312562893179477810775803570311867394124132580343215667909037553431807304309694141345994727668463110460624211189576958051677392861889338368129446261631510620169081664871662940908956200522929093462997064823573134082298484231673813090525430298926485628427450362174491607454724606334507996972026966369633057935102397128444606304723821498422620473787683580615858890121288032018918541358343709164739150656950111871098463891907915521103151785835185143850087249815610359600376520710075567272753907073155677365838153042236950393461785605414705963972221635467671960985621324116918478599324287196928384983422434593122855949912402998666297711787027701931667420750160364299526597358093082897516440704756810296566367336166698399405046156890464744001469405335437577041299639967092681004759958916889425809082187554898054297662688306770467359917673499030227208977076112462129240400951538046271179029917034520086980218026015976226776529080676839834891573249849545859019843219431645921878097089539118342777757178282185335828166682628281393718965623562795215440157211906412351132592137626648090822695019351359467173586197824646573144398147992370844437229728753586932648386727174042745642967462665264820298768199187568164752294582609065858205421913138159966904857119490320088075830671598547569261296889617622526885634411247366367608810076143747879227549219680082205182152447638151183749233502606904667000386136283940375531730415150214337339175123887315237072015705758883348375326705320775575003589228085146634548903218103746118711436302551966298676082140813038128424990209700726446604794164502757602307928025771444839890570856251059172653056813966817062132729731687087504241952322953415583047512442288057187298413365501662825295061081876739596979990713720298248409104533541958282156047949790587668242134991576785887905655547245133626761709301162533145296622401212496323077875298103935764497029947805274531175563915380186987800705188523304044713304774756967400389984297960376289424221640028107186733453408868670871400400717205867671148885660534487732504182427584920124635984985148193147767337699656265380576600102738189828667434549760807420728148770621308401307797279100861961079548956373730944290886645511027045959728187125416027071405332077988739553811966021000391838267393191085820002280156048530720977762771759969233228557433401961250403520646608077557531040116719300843212533020620966702853163393736816513063272572925115609416542991649025912191475651205483629634610642015766473044552260537556491323858801359961223202889734139753456618629438623841098052348584410392863117814752448935466240497528052414487385570356215746960619257380778555836201002081416639602816491227907162800023716019527617002441170353545959047414533014698899259737022506496993324002675412698320675620708500552955385170939602496119370024292212226147615289291821424463176146219523619002653790590246004927224250815106188591175063881744846445417238642286302672328416330541049740704604551327234114564950735656258901110626128587992533743758096799470807190678121656805839866477329887569044570929775333926367315196152356398900870488023022603620618104810680313076286196579317530112025360682000215822966868916847079961343319327200883459609547054589286569008204201078120569203639972281283592018608704330871813420744619385469474677657764140138273179634669892808162628244445598930586180072015214787607887427329628727501157754397844256904397956824966698003822632300690849195219678554854095199161233585479564268313554346960832938039355384684075960613479256259576950936154849281543809695282309309965940124949947834742053025435074159778262503208172671693573126955526870827500857905988283937231713386115825426052327832611000850782394821494471157762900414218990744791776603243932980281670087869248002478469169539545662783891976813119239150908322129397380227871655835012906855216443570558369472060132492520135182539914370282986048761201584854886804789309898966573734545118392951954436450752805675369232357602198261870782724856584734986258245620207093685401744382399474467424824728758498648974857850936862390882264902146772503568811864675642656211761911335046080433201234289612640525542026154433547145882495435526739025541178142930242614523231833031992114447146136394287401796193989114164092799312559427470010139616871020500940447958833623855708621367619500021766060658802493623819406459879656940667979526181859581206402518297092497841036074799200352486188501695500879993411631680156027335459631472836296206470773487606461507057551657365544261487176030523785137244332608689270174484229340685678841242629805425350207282070313582054046972058169803684833025391977280492790035134356173632292004989370981047143828195817833701808533283217538176391636418443359457523300234646512528927932724961736823942378855617397473662723216300269611515392364683146591260922190194885821737540779485228317341667402230506455283556434082121047288144102500881149848500816488245039500694622270883139939201423472663742495744434514353971814746958843546165643643252378013880864756582855559236359226718680355020281672552805602000044890437093143012887611856651458963013672124976841233006677003802050371753501304718878564122004914657631600657378788369390139977031459993296259222216945685293121805717679796268380145959791043068406248092871422254814384436666520034892361564713236682773686038947023693789780191771922249330720373977534951481646560708534548582876851450350654253355358554593509664952557730168564762315455013324394019487804580481942184857477512692593317182650767747659702598376552947263405614441187683114610685468981396576285565847035205829131699590994602715270833749278416974441784119626290403474520225839434986000956599083544708749636281644084658959123019561305967037607956733001754221932223271112386108102888771099727746530425908485086263022805333919227097848374904414495678540321805837674122887312642259049101101256521765918507988505855905001967060302116691423300712966980984827879050939370985625629605755875948611210275433355599375509830759054614645924671797169071581183521885047830242294661113908605058301665707825810896225940807877194681789388668726336375659688278645932136544164915811237120414022815776142843916820683180997444489285540500367795697482876365461075129371871416687404487972076799439796494305601111725922929116711779682198184545948496615048863298950086233044742906087208943629602709174202182279151247960980495701447300006362960234067421082504657665300423731205831190572913660321675724184198324930565347692400376214721082767238660377377295957887648096793629314340090679499370978965881805196589251479595145998443221397727615373968596045640152007738989249017474052104951506882980604972286054527458277980108674786790328457741862451770775236262091121974225979868846026762788499620689862389875228039816925270855397556853918301212621012060434764101908949624302227677576002704902207119049768120015558964089094914054379716671254233660638013888473288609154747534159631910818698702527426168641913986840640100557085332581357736838363411303616730804906731419963087956120197839837633797720747379634067535658168533161853235580610705375031299394874881705505413509260896804090277487951581077828142106482658470743751115925003406814384641147658035343157274787931924418824662077652636116169068558150884807272841563767636898419941350126626561796097180228233854510764482506322086277276724486252835549819406553069028683720710477019081581134381113632462288902220075941006103584476016649958533669815933579684311961242030539726845234303359045664116500835703802950510509563278496165495870610212755591921349839038439053464272730283422338738489503550908983293627767188018428369785683556732312820204033728500268263940129218220095036394723223114209391787026228957184864171462557799030669544709563500523321647767366127331364634450851675438332080030131402439347495999624526635444405974706348208324228374595106928055519630668052731941469730799467851320556112442575018845047220959823604498389751610953758639953535795104854335994451942591771373999543997602615422918786914453714770661587082606808111501540380143128976062188304146479808809663065728760562293916369254031809974062984570881240858605445933518106000205756574212699054253588583820387619694313207192024589228382226654268105119141541111123400578288952528220592757926973527791320310739061456835576040361847491663920587966482089820089042688084949540777236703462559601491839437977874277536431134676868081747664408103743489764304939412309899682915957235558518537208656355162928101508320452927790145632664946863898521416791307097442320642415737452843608530333924243012638400537644417766909410443116039464951279926171819488686461323044711225471142077904681437265983780820430255478177007659942432881941113712344735922525238355100514311537131951800835319823239214618005120174789715230235243040109914975641158419971196317558301727632808319257450595674439310960108422269775587556136963925692373851683614837182294637032421602445885323394437091299864440918277740444829573078292806675828951764783212457321941587498794189013216985696659064859270589155180015771858259264162177402545275808670033978525905627270001247809183157142035236859062343600846313616747235832545770900222718414181603809945681399502954618221495899067308173209543054403521948057506605723204572803792631181858656376486602529054545021551993390468282532109563152173949922148809074452979662821104374419576092710462492411889323722845867552198616540973157902346904095845396419699401773115678316439663144549856488015367086496713503843795282639144303482159392430230926217291628521505058934607349990169211357258995034971885147812016468364069435084925619702338460451002867181053224868213099948855451397831651985564040296286352124746416718651319312387570428592042021164873551161534646019890737292002758010052142660901665166554964492517425131358938876099839028050640518766780900754497231624018375627384888819039943865705329619811599706604796451320144433136302620436876126473284798189104700088612463807872833010107246965987162688716897147540706987813122402321950069953144811242179398396510822833655553681082276616186654611245405457696962083977078982897144208480680217518241201474029988897705175659278488565591909264077662736536237507502294688072303595075824394731010940312319383797142411836107337861939355154254038374214614425576617379680057096349632205760667630652823111212937445065915586688837312914665563177281671617634707711030874433640197971657165431955383988174243481291812766458176257572911490590218038410648380281482537184474115919509524570039108229745233599579773622404241950942908567023446728892359366314381501825820567621176883867126176054811270675954665825139756205510879040025268499222409620987547524785371231618725538490759240016037667500435147900136706460319169498772967818294511281921307989374164295994245442027910591609284706553293905562126016670433683507868533229473931538574976105721201711093054960510600732081376445290704241472789698260795594844705798592465771975632475926560827218496031193055625943055676039870757789925096907481719687986388215266067390801755890762422520266479528145992837233949083491094788484110619989978591529289574707552098394783586571186335173761698601710328446499431630502786284668571003585076304905834656083157078539403544446484883813246475074210013585516343560596471790719514131197826875641368193815588355312599311587296840868549179222458222812939969109817864510843774440626586930729201415047882660557257771889910223839707173811410521585895907080285269168274272898839913343449255801204723921020906257779170436108726768265528382250298655527262011895499556807804299661131264284022918129269443992521340978838704322828043240044847068551205128813177589721794573990089829945603039506075884129980968200716256723992635462727738009848439077943800274948059252266330340148232793700687549639445915865387102768537816798439186893575523321650470270526924191890563885642209628818670775262609545216689588382878232566143137142411039173279440989050133063296450507983869579468490565687501179011049401749007350875954008024437196942429594757665515326495983202807740053563009317915834920844774939213274474265985532162802474341069555482292573660302755113449075891737395080933192056145166777438370895873756739825602067399767964825784607602780375213104572730997006123255195630886472750037584772106457714133316851296253556198091554008022992202499992001597117344310068543114467661883915373701689175193301262020354624814966808450750585056707484696187555128621590446533571215443668012459833192966494365303455585605654547438511911687121362578256395268969151267492460405051106151798435974516872375442062238802657642061986695697828805473873831234276893999673024533823585666514908319155680708505021744102317453753957685613608706617621201910263043642119299658820557526238677304613233121064146226980987059167008521296041046440924744553714165240883538294061897752524369700693836597851848106194674451257455963117467169458814491592398224896766609440193068119162483146654262875216880064672928081209234915220010392399313367564608783260352268664257125614497304315971787809302110743459538551258789216860832502617367987308176886722061716982702666625563650543993129935452587990738120469744203639139372498869762296622232003775678874969225705542089841523261918582951564638856789137615561237316537510383268924289131671164010687136610579149372332976861079891004532604990062903041575837403553017406384911850597098518436917855559907258047819736925654393467060705950788455257480591274423437669772248239827317894929584804886089801893129724544685014145001145992650061016217190404299282150789624140078364045518426690360102762979336197318276240959295193549132004615112071055476682085612595464932242983909091864617238716494337224415087738971391400385424232193453169027804920517684558732504371328379197696250214828599567467055187052507024989254945329542030609985637632495138867790019549440589631130366273879611114853945269612818312918432494711402151704982349309300519012023378369049406467411089935895728921058417511427136815342874419282939163097491843838182888305256362365068727933329839739818023941573114731098889861212120349822009475648167807713293613749799824349015637772091583202861649145666513038573859704153993988039792343533336239867580327828344256241808530657166155080931450286096588605206121841127801322249300853997300528058563578548409395553059068930506700531442972435768506248097302947864097441552445740940223547497528985029075899131975226250728034865080259068091943762636641183300706707235483705318001956218505913782506377349921222869849995292281360378602658950239118651181963182695944287208209034358328008188154460689305105623953162590099297410936246444130098298827726006544947558604939250403439605265529396153571818344139651909661765470894289244083155850673904553985100518345389891244720258888271509348201055185631649582274270504929102081851901752478543076106217855779299720972390061623944292784013650850746162539052510870247509364810362727578632652820223379119044777892570509006948335853481987967756902462327749516268299502858580086292817797836902867712326180430664248917205678012992271615544549894101655188674259237900660025414732520064169813992343853410072133871813651298233604428820708255578066007826500170281911454307506508613305758497066202152941179107202466712584319619507116418895831615633266552408782577682299788718218063357806233283689217766408281470281371394975049460496731634989037470057946554264778953535237029065358658517978121248077123113200857007335413377219423954113813394820352580078524314892825639141855503669880934614807218398830798779822805348780936929586286437570004238578022458528012903059414739432987006706015585116439785075048698884053103476372050773719902561116809698756337798895245272079883299223584030674571524438339675649174195713047865572953310144423186777711684537978670250280318531435812381380128519407644910237336185500622374262549863065366996143188566120594818356684891935443805781227317599588611660460684900266583143252193527033689198052419500775656857083043876641397070435392466354307394125280779455220082615115994687471708933897736443411556604286109789921224255947425045533104996154545959196076383758014592872296355016304927698960573630948539028104506461929036551728464538472495511840498092957855469185613400798322279245152878507467022489870376552756176150248942804605517898136137952797377439468549077263220781988685752194104607981824934965254287120419927077048053163067235845050922314537607917267889176722922975363125904004063937014046135708013515823654592663501347435506946371282429406936515157843072282642370086313715282010611430344154785996605271599938564771205114675112642473803441645927035175954233647905389788138010802916819110805925757884110442636797699357712830972923353298635360775227458184953781841177539597684817583672396592078660528131320309610149823695196253140230065445524493457675411955747054827194456620062951745838166898564011123418575741363848779471421876399588420341231771707555136944997091536840487795547203689333060728819090601858983860764173664145364382999474229539178152474305367108614968102682814432304189781967567631136937784255312824025291515564803375198436557232991500252163382153152170386999547432492759017966364222316738047449577554840377355201845005444735179828938505075284355780309040514482441704212446184728140260483699260286613811132909467333398192744039932495216646319546258386533006726043369638693577821985783958993756098803512020690626563434528146033438805960729294540432747708070724276276374358016872101687894848403259219979816965600103017453106786684399398452063441053496735029221267403050045977564378426182653691504075580486371874546485206326672620884868155772469230842769458023778952858678614789781286841730016035123035090975748548407247650874504403964786595689160806835869794363773359586012435085915156786666742688577054218618585527037310651970501930835860830810025775487537819370968395536452706869635896772370159437506943043597535556441416740037788688508281583542350957658698449003430420462479991257904924456094585173871611920250462825737559727864595820953110098515815251750872871781352929754435776790071493070736821974979802804577625554690411039821990696847315759659796710239484104744816541726281137579843646917847287444265055838455858328619224936548395807829182557125137470061305204795087998271843941459635157110856121811831982546313383011635118235250679743213366723847728350384318395418357644730110084430699831467471880621365441291692430255421600417860693829100232142628830288449717690573701396753766477628981481185424719031273132116820445153751998523077546215320079031245727247422724407526062306126624725032913582778574565063449005177049503351649258592038853691357181533004540072771100471415106155720590063849049655465614846712728400484964374877698915493217131718477155522053912507425063157448142567513387455822788734590824724056780305479892525022177968299609823344692626795631123660424731507407294051995594982318639681067481288415881979086807971845749330402331872082766361722404003107074702921925945396871150095939644245285268727371799647175132717644569311204728713365495294378859828962279295309521720414986513324909575077959180829105965458601944013944567044505391630493775873977439928379639263999479311918728232340765898939198639265354472375710331190919259577853394895504496274603482163652190294167138630426489845134910295568200409585622564176187238460090978822228398697839148907901539520719524811880260529090557514546983781840526283293140085036447775776439635401028751739531827493586349066985270721003870111105164892593406388771909823472426681303283312209993254607370346647966002923515273955693653488166510159009187206056036285192978568207316625759599875164557001839584627924551534438190097427492679288685628151346968561218990636968572640272768085810152318122998363110522322176802000133086132967164551269913278138954697498997011033984496348477719147557988153915055969493645831753255204439243948589589197779852852125243171928538820281276137466921257015937544333710739520556753186258360755041881172084369125891261989056759294186310128446180959923849622579440229125204369610296643856963024946961298455621159778076353715267868215675758955916970778758076019128246304074028425865431934140596663449848546052926093834985117281878744856580595724861955933231052810310824297461897296712486015609197149878621000377089440189741590394051392812978150080250966502955371547537446312905195539379657114324345209870153438984645215823588873629916613779735117220204443231560433322229579052686643930710500077323904856309352318931948399254315580761948330258168376168044095923480418396632316778409624473546415380416445358273258833620873170371153618402567948696554454732803068536836639457326528908963842669042733200970662700418827200881385050940115372020533451886978417420520715738798456599327739344083736468065295635041744679353815594268440224635350895220377742273708135115769423554947476704702442534402356111043505434961603173317661347831086842156007353282472283099006533314863759041988753353339666822693617850349349877693995754846128820741403458496842259129599788332371886014893448885687195013300034481050344243351894387937289991292260041612855903121126487416038496486289165794282389312244471961330571653009519162133021822383860705466194973750874116290751530742570146012626072146859457348345955687549948337962448825660543958228812868677331849293752853537937298436733502124212691452426678242934421846526813691676563343547997358866933382516823879882255529764450515285940748234292811427645644350261153491619661957602215956288498085547310562329575181160091342151340607915893114689433724354407726025236741696318402594313295655574884857405915042647946951638586051933985267922175987623256347143850714346813447392790597202108575233269864574654806678399604471125228302617745725870764235209476093262204733096238684159851267128586011141575703576053828128271619541663751448621665170948888048911968269537763215429266222649207064387969326950023802612327597307197470983421538977768364639931028709635968152242321304558451111031035330448751336363350793607540865390000633352431629388764191971728900174189813447445695068969764370512167826332152924927776970412133839639176961956032194847531901711634068373206853868217564432880408625746808213418961722605895454667621298162168648155799478528618627550020987409152233617783194632225455715124215440979105151432266589879093350775677458110356552240922000136510823384203407062765136030205460340915057958132528838028451768807951327582881677366245543334915381547418418727769310985343406397277764557413838734632547984649780789839848034031220578528998870721179787049752369309515388164313811667275567693624597602712895358266802401125556507284921414216325063720289542968606511247206853219580965718780108902717699211408741303421439551889723195541825831772999455636839408703215776078185745390020185944040465713432397855719932639022943100556615088555900600582203971048788217933780559110053658636945367276005103137215873778375707390722868183893212804071390889580880735012595737039084341955235365598225628772104163560329632763596837259899946046796638463503662862822214122615747782298158770271550167530479070876337937372112424820041034128744874580969415294873896419952437205845640643244265824454532761662904503424286835320304108802848099651705728738861671027821716915087718456442372021217769428948785573825318718212826608499882491569810464574382293104618752140496106980262372825354310041760032483590504854982376584689617532387351511846988786564837017041254720716686598521652833865982161080762464422936688517896492486480454726608101879362112554332579917080882567398233674466836249745892090919595290224318826367581709001844489773782067478719628086137350802727144628902697590954728732496620197371214169668327214910705696322043597277593407630820697219166333206892743072457608425125604717231785954000848417801143644609054863378578781891698374279216807251512480214625140854060828828470421052883435154602468970964405816582722218952814417338093393901482599254243301892131403973440768557864565525541338667765848526897670121985129344079879217251741288486450231847812273007612873712318773301786528260222755807927800611701251883608605832342020247726775749291893423577435609848136116477835802976167417128909852832443403150759229487284897911725230439001400549428068942864412211597450115680320859518593858035589177369982486346006266487921922372207169999585952321552437632798658069366450241283594011249471933077275256705075012859409057594023996009049154558487141927864982769694670890382300699608397968049705885875127891265346395062334761034824745959970545923405821604596784834445319904625860671877489589182300472048349610938542825351396413257850214933269614329112586176105899079598415257477960314767461047776809106169204091020805929421695021691066095659041009939315183972128735336987460634967712368181597011737284393153520458043270044074658969303528316541033409941373029870802117832361747132798783207929524088297428578148960082008496479192133814783730789966765973707419879185235905561000372094226197599658426613115678488805519228202868597315539429726312101607470261777373137371870386609562209428176876779172843603136844747438648185323500031352747932589265589743657783721780743238967879368682640296005562184626399269469341960290818008375798039801906776720818203487327165960675123695761373590711862762053207420449568334165414946639137788544355402849607168737200929004168473395858113440362087667577489798758218110718700674593085343036543669058777941346501273717739613065101224871393365565952429737988340791132207087066332352232675367638989853206355174802681955995795177503121405519747796576968615448988718381714951193414382410496196709038023136270827227575619514460629846509534788622230317470700470046444586473522032349785552175307957497167439395428900837947175870257464241887599582119236621206084349482936851700088732937152535190680520820385501638405468721519043465070235508592696543543553302438014604841420172312757477407916954651688876425964462411801498549925619966753451752114637201172334697802715738500459294472987417128839593884170547271351489431177442942025789165260149193032286095184440225825382575093926472715147680991310147865501412610759771087092913033578929769735017932888975223638827525024070976558742188015938316983145068572170444491019996143279424762454899269347245473250359945041241225271221062669322482944360068635177968636338893838465423185260362460224504792603187643996692743513773626022090987101875061901270719164924358472681617115510668898674263740411202650000276265069993673068538767611200567974752384285880342081993489722604029112559729640988094148886805010250260721562560626091387672901884712337519912521568100322734250884198121223736035818646755243620918830908372774919377270449953432398109918595894591970104569308164248449353295548099230953156994934302202454022824316028206468322732053728530045876157970739126797754749289159492818211807434306510109095275296831469842226895079262968445231982339203605070782449256921437784679781680332196003951550815578985863830416965058552144031842506445760964661856483477864180557649760623865935454015874557821186470291800252411779031004482427187754681722951778510518018592331775745866205559393659204676800609731910512471135898726557554850552619020587516757841612355322220875636151591024280961674142562608700049825090462131010603217090805743672270854881412157789440010679067621463244861102641245310060587138957027683490527304080328599511090322739421537744614060875352365618749591667994249947112500878822472632757869092515562014548119953912566002633115125147359334945694101338945980299590320917241188570998211556787486672973147909564855226162859041757072128506503404744168972237938938980421495779001941380360247473789080930741859576249703123401442136073576253885506839057630852129561275271773717275259795581690933335860488083498251778625016752297541387419166011207678353307820224591465267185602431355844114112617903333671222729523531059367310971764907296646919135766589661056192653517154990322478775032184773203994519529141513104955415623033828081979156450119639328556438039129664528312550219185011259895914831164562100967358661012193396707321437415994543653798692299680981935142284812521899657823621449805786926316616443245007769422837106268224952719536748865015114154929026594733311624317945988949575449771364239796166314312156875425877958348852083504659503191691610227890926524112347802847224730238301696884036683350821196614994010532284867399820493211763931249522633175379168007576017103377604783666514881082372328904076884876710388962628022344594258535658340761493301518402371812642974867639456382117240297776957561314154028057182111800603531071613382251631109241572125534472388692008757526461483833718281106456854477660987950248452431859935837197377752516636252159836038540191684754234538298297814264191863246809121676585031977955448418403343668754644849846311423540746194642196178086115742390530694979895893160599449065552533577492991844508933021248162453945316862996005152185330961123791068429873138573210535662511150333364842869302264501465721322270990301715538709158022742809890161172939447621723320512020864338507301507348167347892073140687181622458005881991366319342473107373291332502541481432359710446170710479499005027734210826927514979623141485549794979346599479688249126359527984150032271887126526592930482558762366865722251086407098123882262326928001457699697583885118985581993001515094438116613912782182555015210756632851949490022866347344957298781166048751982845966469997296498611163452019606530508872248778605422941061032018243735810789419040501489250207681986701947955499349995231750871060389249617797367048768945599133653099855148360070987123769841165483682079795603179548124977015784470507443731031274465221904781411843502028013441352799210966103531806136352169808921353360555953853197748511913153286420541586325921826612841394866534831072873203704844741429130294435977425066544892306916822715113224629601639338051034350693820508543326896750659942792064128718258482448774052468888782808451536134653851998464652922011627759637230917011494447902249123745997918178910917880301358583190040325915452916077894602534961806047445199515530703315068831898952526360767705023365357582572875244884744745224173767540441854874470599761625186233411705029935989017587740902394264196393510531066775726574772999347205894047408619799888932235152199263621310642896331728495716182426985350226511917794105309134236870615614026335003354960292661571717176834526110776314029337002131075846643342719929428558175257588625640816465503221207171622448935172608786036711512896221438526082510278115340975814982818817590406030630662512062185966153950928927543986600652578897161823884757878137613213301132694066974648052918583447900923458084876217530840915574945142143139658047425758369258106496522965557259853894352941021747583793594947524274084103661756936183313277212173756799766182038333818272482000211249974750888832861740134251359587781244524627716068635326032682139849707959452806208578114433823146741724248772359054097734872044965941072814665289741495254817629162861238384266875380992110275397889015542910497719982179381696976432216303065474054321034811066671273881178503923545241752264225443261835814070020022194888228218748955997885462111713991092176021787512687229856487648012294360018130290410212622620432920804031256635897538307972650291262064204253158464949671446178335180879516944781962861526795040523799507808176576963874598278308379658027822854224851820513636197596090186044954096951939106260411622467601653167843382218199955302530187499454294235266061246269585952346368824895567315208673935823772034418700667154027578506873053488130389331784948303069436755045837801641850624363334277539824756546536361622775754024074002631075354803658420878062155816355417446101503226051645119259889420343829947210569300069458306947509856001840984748308005228657953870583551266732679704287884178025493213695789400061328903915650577319323103240638181719389940323981346419510671018492214769936103905278807302883915520871375715732032701905932384583834251809768918051356761651832097717537957175231329009619185935118666976577281034180885500845078701203195021958807270171738077233961667575842396064256755318486099876865532947990650842978515465988485577558372480656479060025290869953778611622916623810740054464242159841380587943421140872132276903016111462772876387181080850265570365537551289837488643716273711951758013142523809871450191546600277542076940555261970175646197869000520717645762629277818651257946005755229555910311690652921993570308988696860464675666087965593707406147145242889317791045750683931016094065590104899724089679332985890032121888086660266760633995777386634192524074773815588476354514711087538938410978696952297686855448824505716618807104734051681499600173577884122674084725595506082748331034993082835442825207101454414895435124541519776356908535386318539097306450176033338025715980107242774981388651951363631231002148548414896350733042272179420501636375596751823371491960510633191940110974775322103003865318139794070199145813123113543894989688884481782109672370974318650985666308796231746444029321088721522018930081662315834925479659192836276011977096359022341263391858737255965126831576021210208374126511134560733626663923950329984876466826998647196495402257540871671210966227068596173470327355695214911439990385262115945616648580551685382981859538472494178314093808567287964948010404568768211802156133737014539581497321100697703211999179991657091099838650307699302040845511700993253340420438480294298256160844147225947130262954424448284423807792522470743340361801703661040924191730625177000007373190151774488320335849876996859987526118063321661023199743037245167328310711643822703735694793683057547383568863963635862415436846039632554991619419510268069503801255760940184399671885263199167686528867023247956921437662063020127494385537496128955324001238416340332672489299838469433829563523679959014454935468227120469484318830394743597122821131337487973864899179431160676838017189005678571231052389280757446916352337770288757989735277579506678621800013911346662850102494308365611168009558483604754648983150406984302293144336545722709175924165177795566583982594590157634952699262470180704562187203197347849778725568475256293874276580077324215407043774951854769309680541199532672895582559170636528033832488567746508677108547705089732964270627155709636432258657706146074716729562693255129514757148686201329713373653641906220627845056937655947224586968660485598428791963445184576691433179656735921882517313346243831164994602888866341364380151238814939218645705792238666924303886560892994048183290228200751809630259252170332820594744294682740937563401153412925972028448538945768193593883814502588211369610961970509120992842612986315199424950861846723469673529812664601370506011137445444093405723876877766247771869687755883453903988250648956763801020614981332679729353113159245375028462284208572431291699077462215274944810213319507892019782468266925810207348025384631963587525403007426792403991957460646033630723328545835467111631963605344669262325362798675448470950568248275716653538278749525624838628981476971863811700748514156469818381765422931843098963401147439049250280428419809702896769148504640120966382938282383732990651547242627699896081984476109919617490568499077336120415585027043718301048073452554446745701508911070507528572718034484755745202327445063852356564118454812237908107084952610429148192505485250198184927035219325055556432808358510116978671148787588617838160474658976606235037749990188435112881278618058258085642773086193123939932039857045297993067353879494987900122212352450584618327374127815147022211324050648292116175206389219468157666471643515046483817456873265539072170880390555614738281182926205439270343619774160448982237510677087728719903157650319457852563448059214617553420222919373449408769854186048756263299909467123595431398263618089820383536288376554259782131048496798911598402546368982627590825448804134489575843939279015028615864607192939466266218339470702262812258075505271963038174695897271038736788578979399529098788118309189018161132986027845099438440049980850143765696644648666956893385321271116846975376929911718321004167241340362480045795387047731498462192134555826726243091777502959749997199400695699863544294498046328382368845482224674970299380692190836032161201049468852088040246537807048673754454286291818731801721484490392305882113273324667219046595987955499098972945768689742428208015885122666917407310493705362618349855254990823422686420934565075423450121436449132951224987882624732207517384260867172136413358355053967344633921244902759509685583429041036412859339787710311075192823321580115192678396025563653680764285062931611787038849713617231572516423335870811849257770556795715112221093929337717144812327531759047815900750115423044720201875703994291293373614219295252309884975016685769959284580906666392105728505533440753873551381686883237294430624337323847367060764203575814521222254692397296555034944031932328138051333269810835288874607972455298730351593428241415847598513358805025244187498649582181115111453666326124531805333577491335257593109896748522839778929285898507369484687334250872210311684290232388460102010090636915997076596830240742660689938118225604451408325688473423474014742842974717780611523475372579888750694462487906376971457867948083188945297994870070499476888498065270792637811942933158922925815187062852920460459216774512615826872982712842871295865559860651161758612453873250177715238152164191703838424208033949657150481064001129475238465818918456079042186890434790803827212491089877628813124147097226074767200964711500046778540436520420299802462990191493678228823999162960953301741731999128345631986743285718877555094614573274372026578481254666697495842841793434695108943495377647146012598172686006683622704672537747267255854441583081533615614719027978735890809344060566898908241085329714734779265732886671654682421047859818612195195015637604451765618399432740039933185126530809601724702629616449776332040900625958942583317903885700776785494588183270722737453628548915223092948514939512194769513239814043015328184740971949434788209727980070653421708704838808751249059445072846517346663057367272469753190058370404192119620756067487042771129986538679067460039242881375876918593273960707152821317616601534319134293126687157484221043349530197329176712868795550279050492776674520978475656044130945620674401764623961869020568328262541965189118782944915959745877291744007966755281769570438448110223035412140575115379162819614088949071996130571587196039036799275744144260040655857105436084139658959952884624238090130520466043692615424231825661289928689064544297800710898385246661793073413003463613790538871929269143469943882486375614596354883875760682924069179828383546200558664229265048425699526707576499991683436795685712932686688798794005036514896969577069433670402067951621421785272282301228479784778955029852891755322291655894882535987129666431505456997696397946629333144003504947335835870590623546129767760136368910917018878618430811601764238588386323483129222859871747212907802312587300360837721515995166097685651257467131771566371520331573965682580723579258007693655570701694016541300375962730430989663859714242415959947401184242974536497576604329403139412184570570569614875836244516948211510836880006812896114362641447788742495998045110389574324619081525534310116060495251602350508545178539763473627821654992011554503394458364293661524612099702014963794827790548510462154928857458645414994236766350270527220641209849822620186212878722718441773633755823284440722855177994862203570356344080782447858394667281410532426748346622821920566596406909668325173636131410433655385483608486032383967468454090579142147413849742747752670132400069690952001439218789336043774845890618234377801717546366887999724758883990734337206468498841583156755948893650962844767078596900883093543917269452806731201188636066531768699749247400375700854664978950684442235514865909306604334037061846834289770843763855628662478101019446006300153715499232097673739882611492419549653028486009667044027472058502147973995986352734878058116470974370461744852618658032497972510061795623172402040454738952495960591519727640836560504598149860326264873370196329987735372512353258185636461381647270057903994782763558214784605585424138018141076964062579369982797388077510296209284101000475563279140110284885510875679253837984240266152964430299991961355272974547762126576253994376761471861268701136275368043706560842984297711500470111705459053279383628373244247600778381867725103727684245676827944380517102132278348486770450987384744027240070503536142357647408594074820143071863514693013261886003222167766344921671416071591234270033525334641608712772338725440910799353325525489129159422006084983720081746708037154144303375821526672067553714976293868539896214082700698634168097451556523597898687523625662696129840864689733707101451682102028790723263292008013682227093417667380422819615829544834051200013995181169116529733942183642958507615652567845212841193884377166242835426915719991017148211741856741407747620321858439116515339958046516030400946794341065863028707434518092407778426258922669538059485871079963421092811187705215662338856703867950329177128608760792218379329973653152019362541794743550300398263953944206109607982290377278919829645108161323099679752135953583518113952457726887538912237128165349715220704568279869956330436258868986445925113384626542724855250737968301769257738904446804993896373531193205440493489957802519747523849832862696130888899006576709181867848052626251828372335094483338894033764054926752931796788716595555050457896402214243485163886707467283372026903320048547252577128336491793501687553590451619939274223998067584746968927768381170379127041582049169155109029479989509631997199286669151873295487551781246274395100171396003579525837013737041218743223625974818934258998346567060402848425768772147865938489759142512655693419757253524456249520824003567312061918407319370329128238372617459987582145314546973646562039635150496546012288874737498693539372513071711535637161848283959196637272217050133121388690958346778836035701120522450308124779405550204507714473666142395770047221761687386104318724769550679168501823406345726536527080373876972906138168848779992619652373878463218622751629029798612540429984430546517713837447765831088827106428726059583473399319056982961433614281718075992516118600006222240450547226389627373143266231952042538847546231533659227815301840172287248965654893087306605796777870474643941099855506472830417878704874509125959234141833601092570071728902451519351293755622489435614976790750686900624132644027549962325498846994861364500806133143486825239875944755807663865220849294274413782266177633289075836896678609287610058078686296478521033743472181597986731585528747777966816430215612878949019384045153589012776800639279354143911648328607385686232825432538983794722362085131013106689769378668019143289343444795079202289712924222787822140730097789338066283349747191224470752652160379440679764660061153958267905548063262669137457864113885767569996340593451391624310333667633826941160878998204583257322587153816313322172877442966059436864396342127232149545783130343604707317576762254573213387511155340539350612807803063228685904356122248745135900956855598194456383127101650895384639037371860256261634580471716096894517880239728434589187236706764325607104442090498765974391638657095651011176396744739967679727003332662152692484632361439792939933755515974532181513796595922002254111549109307414881356441577473500350035244330859081641982363956232823281384686352468950741881780201779945437063183846507867252933482660592309758430128739297749501408898537930191871462336834707492201350037206915866784931311976096736746725665549982793376774507328766989404445225256153334070389482911953650076757685093487034607602478032294534622220913244043025057733842874265133012965131757756647281153773461368081259203663489238336772649392369958300162760283421348908880003697241567443837179528683152374644257134125054709939173610689726606823825127094225120736057552999123184449840261005739850518599160412453947916023274922934029532112516479403157457223163916534078606652324444536866714981599026385152764245268788354539938019548083970777404349747038455669853546086594257606180891584314431435509385438117927535421791384017191035661242118737195304827755481024332575373362462410218358497937347794546381905768278960691452416667789529145694616266530068424257209113414764981242170020368453850604915652326613555998114463920612290655804128047957235985176394330566698298811913952205626963935584140684251825595510759214814867826303110825555674119472550515463365140846216612183481566247997701978097763702663624707469570283844991657841952602806399600401973320726305698889374754413185550047401429691475700291347481707558748638216578608096315456824170051259736553803134872413175423863986477910508263464534578832198424859907537523110923276423441660241237049820587392432166535406313152376732151530270307537748210417381352943393158628547111788606318957312603806758309316443086639666044995743695344659046003667984325546205282240190966451030915091292212789686893303383902091841655225988099842869297276679859498741550211375131822033803668946029504687954591291814257380641280201819267376465445570567172881344614983796093821103089689815101403535788561928909051536461887772780697012010212780017333887787987569277786765288440352182991403318114019368459473002615980111974565677271454237726124269005942316460294347544571855693793171669666622586366135498919655881770955275645111134875399120860145871531543743795143310601186487998023116600521108559190317621318487439640834203435545695814079253705686659058154243298606403234499215107160992644943647972735375960090609373375496368663483033263353276847331285546403132424533964561197503232608937410057025426328969409942889007234420096587982212841245464051754174112471496898687246168727672916718340463369775921546360824447823878739726956639357412086181212929720796184501846436377719603913418398888329818768871570134811396041151343143878756643092108834937062584565740809861360869313038638625690845872563314169173008931548708625078595494011953335686135991258103178567635793933716314378356429554512068059610035335815814239291620071562512558933595788581797489744341807762042769962936520647635346671770853753388351432082144943005204629685098364545105212778549673817697243405814238210490681649630953304428052642824967188481916007772066149249002767731150674580549369512266779929675864219696442778148207799094040593227145509589878255453246859766969695475241850984227852567382642390836019366111931321052617797825397419093696569884704201287246159922193223271248759317135230809643168394074484662167101094711769720446954945104176035116615554382231956601659985612155582348230445464349018238947515321989769027634270158103092348328488080145824471944027301603143568920455255329889448346709408868723937625697126729351425229661936894375253062917072556791710380500539010082544654964957613992071268217442977625129014069784803534806929859751903869733815350835366705067085012410655111944138907503589585045126239794817263664974545363853639496018635006018594348907589368159981179385951450464794511662558442318141775664007035011215289828982031226163925315089541552038051734799216984395658283488567631317025898632843358957556806312672236952171262273883755208880236354714736095086347862555751575626725974512602025790738160544288773521111541504915277404928158548365392059923231763596796801163045261013891018557500445434001051688704981872314032930718620708509408237337741341353776852610107421017564975179955252861303189326797428316042185802195151546571304557082244605754477935072828884800871051347726773767964825310868274054890379376956587185449247917264607924728707286349926785604551933779441636820414339033561709907908080470693447796123095377994370809998949353275705959707673631456753450526594179454135147545785132118558135578630829350710868126572959713987119361656409914446353620404309312919334695471470741467880273960080002112662972501423678841191511975398982957924596084305869808154062140745513821721157033385770006764915004268593034700135441219755910460075448953687893058487178029637508703888880795019811033031324805569080828829100713443325160009176701373737819821967886445177773567671209967927984914389279726662716655544888388485139769615937483364840060832337956032858588394255744295948765231244313145368719631069591860784448967129058656033737518864431520018901305474516799180391497971891167366562053786486194406625434009607228192899826820228993893976387389533633535124840710480219966873506000395599358763240596507781225741631942621261253129502341874052945565199334624350464541139108769527310363606851261463210468506743261780232239315880751466421856091529543870892399238388359555220818642123504918006073909330510395156276596157657720408656272486805767990848337737722351915393073147773286043312106911904601462744064372895025678352991201081284890124481933221375779810635492132638988628961079978371106900133439366614549590871109821152456414318294754658710151875043938812689672204638236856881308652071484367601154900522169403363469703250156887836927705353626049358488375522099905406184551187565443694945737709419989974107011856942380270683784974745758009835937722204605365948195937010780008549646353563913755963642270778627196888106172502703151061388482083174099836798230258886296831136136183439097939393745195882342557825781331110377334999347163369121167277974718392082066341613794410647896232813224380342687164179871365443321840280302780324560655202819294624502906718327055529513149022084492404161592761810419008772336973279447595654687953262483231922433488667307841704894549968008584527539019979909861357748408714976740332791761770221576476022011375214580071464485951270761469678768554214983040256549848578789264979884778827432751823380956405692826128271858320277332634328085286172253975733657067611014487919927302212723488700089115355531232983394465222380772312928815454990421145548179918053461726193590037818052337599967798366452756224668282623875511884067765171212907545727538521287078162444586047699255627515641946251093011133706077176575615495988039170814007260523859015496859019831523525738267219946457888890032381960158043973075423310526865742544403545517018309424905789868757189880435728639332055106553084143445144541598313058029398967555070204508713059462911418366830696202920900004620376991579220830801343741405867932742330034623257554460270740320771083408442396973833416135913809516703023722978530890434303028361388263434482851762208115242762447971977396499796624029315259737081011612140319085810609431258887427361019349841444639513731886016057589703626376362332453115674590338508463462306049819903554742455566046849499992918599384130394862414542306993824499149364698782568160987801290226724604526477425419720468752051761036868697648732569760654818146431254826605322355018938286429165132164319895598069295176614628044278206869444661230082052845955968889222688590854973056832374185253399973473845731638215961958055202050100042135309159250128812230864410388032083046954337389451412502599313526208282114795599076484654871764968959560085026487262003339980180606257198615944962307548369311514461943951583852515319761877917570870678364384046715680415688654851946698459416157458611831115365561320770964466311112564053558678654443987105392060813725680635563424732988785512250856688680886467670278112986652087290256193703334102584123803683268114809643357317942129379205800570831366739072665371623231309019900226567131749640073945773316237946430451855728545838783060998348728648303171883299127713018705046135482021096338842654244655364646670680132753175101952544831594609124339904982222212757441284590799728084682697910157682352636614529765842692310289051218966337312611882902285239874887473673680370035272177010185854205230384937818752223398634642348457611118150520535270696990769550862341862874546169026740362839804208275561946127830054477353449976642334108513944187963563796209133878139750562107950543518859396700163687643670892501120416763505234349714513985404110141813467779764831026666104303714642232961572955599971607071793479001334475769924868778615832895374293672042519269109200116482671255153509411419655715111644558033671393688395761972868512584432469153341404412433975075791255159796206772380875280488627051141028321586219638655853683558684446040171315265342367954806592518255007288582952900840184987785748618248970089315938014092626916685098578500886878838801913659464876721969350611881697245090398666868828148084754252269518350898916929426075110984031939517965941881008263766816865523038328659176921953974278816838457147481115962970429832095097335609266916849245327317381269121962558608847065304460581523082302681043254796819051335196786714561146117252804943691182565191908757155590831858598309232243529558009922879040357885575373504176466728053015263727657377406253465491227252697172336903275169213521662237724998094083102492078660670188717228676680414467538490688791603798806265596656784467176905108168569529901222655797518118710921385520713312178833179985009219405033138980211677716973510202336642020182355677070629267687144210591826712139191926130599469966600220481079812490949857408733754589929248415456354241675498849151035115984267432263217823218434557998695967910021018650505725939650779165569699129600690504915334339258255324855856715512173856371870015880042964983600852182919711023856798515808067707629447772393733090600868820149946132984946229921098811648644495813619572410270626530597086309066337977443835014658244617260960156103876093046295178595846910355326087012425621419291351589738244491252430733968197819276694287075307776059561257413427809942167584245161020560695222514762986817112994414198672551925829990223349768100615771974522434209579152715705630091554440009462368333773099388785427928969753419794997392998825459646230406591044032687792641411687951516743498021419910689521228334187109602247489363488981957162352554988851453157511512632308319098963010722671424861027689479802624802915464267949871557881482772488203754186336714893126214534120801027136021034380080589907517873089161989697034879006647036920800876308504367252483124943752072277499584391727336035130220540005766502689216625268415808941894151685300661227321860260104450839384859532317738584775645652538134199497971119975639953788133968521102975571590020353902253714970015492126898746588665939468662070918971125193110497573385204194459208312809378911223319769321345101673981374644924580477418737939347712146852532949886958621792999813209996106943148234974248465007076930784319808379160413063268345308119892070066307452058203533644340836108192806298384985745604516203274018328797391167838430907117017669538958405177611621000269554664593192671645741479416351439306242699091371941139448470194735388168004710283703670233360037927638983553001137418725334846632320925047270300183844649594170717765030979379116184916184764365267197223141869794476815988569875992838602238473220163881361326424011196218051833364099223319279243440162678539381553175743816554859494157996464732746257212817079881613271768999755633005946146354923871176283882385762948559410329649159429766334953014253335676688755516085256011799203929943918872250013291752643723421228983700333300423128227561515107106552457107553962346366936199736122257614583749654910368932320050042361137086576224914732617950156932200592535587166074485085702993824385706775687789641907089267767411319570381778425759821238782716335382010054773445391655860949045577412139678000981407320495039070906263657792273767095690203109058392829046387409182400532956709204830795079390247235263692167358245793198055678203640061418432167240984003591905642351158671690159795007984706943185788794266461899815838295078044925983161816727006779663675677815047257155327396294648436965169134570347643513718739817685845345684025717828913998194498035203736889400357926776931166150287203523958724402041321957239017079858806277617746406048542724076020961459852872826543508054052826677981039029080950541111618911168031310317495262036567892014793042409195842792152069403043482004427173223997273579774665727925355352842901022671033530150217452605491610729727430311720992799160751732135031400018121609069935834264259546813414881696507560564538362108530875535424521560349646645666122949853002514081747470177483652560845974401702957595218247941120839143347835011418413116511383146228472676577542749429237656389806219000976220591114247568929752533622172050042902162386340510355609414775936937396123167373272156846797742936507802622599576164435227586425195519050260709150275144245266391731821852889510493511116502519139323949126217232687786451113541877178077499209499355068987544946839635620752481051839059092901411518640551132312642858147809152282266393951043113224816968034915289448619298092121527093986564826640407555413504825944552381480077031457226090790601680502478817889249881594034610266761638216933114604791538498203060705087934433081596178102713924931023827654193227515393321499875036019146929605186829893391159310069680185175650563813136548103522811289480136662580357375419486101274001292235726542308530518962091836700389695635941078958841687108236287903691984732376891201267323686512681787863599197531483742220608851773558172127947088062457309257087817397131829382673177547519637187919399239470499990161093529425938426179029244810815427166143074565490859369591709257437835422221162177271822003861838008992962193462711591474076974049018531405420510985993549350910927010240507560335243524530903404489941332123476531734850363716358772133389844972166124694644389513176524064426077278801797859067715101498069463314566156176089261129073840485408151437057926413711629352392072412363360879696541965729860034414494451104933314378971946763809018380575970631304624801128724670382467280425179063778051359292682591524225413941503515882229444418998048036290055891667386366613290818526700432478055084478235762212127505128020797836174844003083164825002131957973473598982553627416426292856203613700385032778193363467398494151695338865513464258020237039194623935891799348282939349553564977595946192393025685096890279238499922396366444891720302732257517293080123278389604996063786337188893383376479149518297667634059187727641571388725180904754816587333747456035530137647841363853687209026845572162457948261031104185389799649687702651425853650256267466211720328870167254672364804661756622109156454071391738668971850537470517362548999179342669079983040333177930355791053677909033274482943918690947713602816033633825725332234168247908297182057695894097882781771913890090046707376867198757599484339092838967194553112670211759190488006779845925057788966081305756076572065873159888275617844835911815180102577136168519692323676078921800874408858649837157346827469995197070926837746675102890980015855280462909024566434675815261239223627910498475796083842129529725574997913066766331464385777723713009712897814319224683907332919287711254735014282356725255479811121684790047450717229525704370796845825335735944217099413560538608046943306569056274241339543755979830839649430971992353323235699269600185138726965489562615769304054753449490540814208113755967650732106938623139107938735485589107740512261372730109612909027412145620384975319798754079055559576420753598356407389541494331894043222012286464924758264468742727247142699826686285697761798489625525191638678153451553109740543982107447292753265213219703294339063480224448275644296823767248127489847501149304857411393064086994790838321213364189136729306713584962798002280678912428544934197718100625108622007246297495805534063533523569802682149421091756169456944983788570854041694479026760513493627286152850121895430456399278038360019117526808263250155991894135981172767638184840449133586041697896173846210579743775781305810174799608231248000982789270842054720114171712100278369707795182021666855497034898616216308666210357124928817583169826551108008676531350478093524846482755829866500427807680806102948127004777586092088296048392295235082041485573715633274053352181645547615592614183017021206526173196781020215658226226540542662556185777995563627407037491836911206178657754554589760345311524204836403554431854575586626053658115325701076740366860564880035527544954040779817629268981690709545010381312485663986991136221235668136835322321571273447979046074770323827808319865079328884826428762034549588275405921479986212829563135327019590405529505654733025255835811193227395906674805205984082267698808699106101046935045563336750700626966958604069723818218083698526522720434893884354110140152339153038671203891611508255985008962139363049564487580490313670926256533758572025511191283066642895337312262810910779426379224366928523407168280561418871721795901339612312019144887529370490932403144577274066366800093100751087642401637586885837565795346877735615409253088852020039783399001521640218203421520901638209381101576168024015377335776856027773099915482894950383610945298702681584063620766447984156324651696401252319807721863192833322575328161859177345304457688431782578367622899886634595555888856392532063939927942877731462371527073185684881637266948875438833323617440160347759450396038494724061603958765751217729111681147829493940186907354612846860199104757973045536719978287228725801497669422365362913879740275640796153004910985417434838102490512523731342467028010011412958056376881187592946344064701200517039042183075982882899728304398036286055942706322087669418593014544122537395162663129364914421541510102381528084039920093397875790108178779671090059999722737478194878830916401800568743491459026958323686978196505284890132862933521590976853150845462822977517443838702627148926942633203206186426614181027609531287614169807890162982862854801329559449329958437897608574891634726683597417852462143734836336246116679897154890380985366529526812272964598757592852396470108576490873797520690821662808279141219105129016889821845833244845183784418878855801265734133052931164527945539776963049333391162359570396496712779576873769862200309070652819561122122175731174607663028288826329908520632748817280357912196170840444662726406367266979135335220101978516354083318799988107870495445626795019490853340967916108279307340152821036561886196856628488817371102200743534237456908979172679070570687054139686445412741605635776044929191596848563602994095704206922158074893060380956044667924635609933308153114230864955910840586592989551618226503892592221724723106171832833122077483714269756092416345491586863747665536253509983354319799857118497438387137633731767801108083541135129142180096258732786315907327264985305669027950447424840629156554807616749021502572347312465116678200343857460693245933956293258771527023389448141826228119824522717054646642561914737681356119223095989622258790119479291208592852998858905012495402900475951185878027336881963655627029545356541871549300003637661244657250907783319158592424114398414724643391594676160580418510083102457025937613316174475697272594686602970735143860182017185879902695621925667242587433088473454152878029140628616211576771816135405642598144144206495165535113943165308599823266813956279560926222412384851875663805627462181557995568550253077261262941689252028654290730999612896387074448165050929409145327417043021054563437413811196855827572724024492392005233130455182516189365363672528323082569050613933989397795593823419044078248341847729385158671083640789881827057448621629759610673706458811708520797164811926568021577674767548333953308172350915924811979079016255136584163870291605694225399639005703610014567594317675101338694614633055526968724220697049793664352538619871532544388361586539792829548803527592440232955617487510451298813232928010539256243580154527030507485983257029893696013014845951790235916764838687720867864235108168438472658309339291650096883648502052775890321338321238458123081180308148116036487477333071814436475952039667641044235469907298857193741167572685534931653433636534698097793789134033664791218926726963860252239845356036786293826430147580131570729800950880036286228562335551627128912439214783021161151167038332955984266061372880715504120441862532369364456835135069055437053616193746420665956739773289305484078266049993877503148594688514322328557160923744232257918149164729420566455380951412185542195201457113910307329435871597584361808420587026099274411766559703458613895672003591962085222825034911234430626501663314344220509049565861671271083132283041632560190308152806263231857108141807344850928448498002799113903356021792568962848688181088155104479483494546204646066024243963159905027485383037024392896538065423623980586764560649630150409459767724377600084444307412087702349719393417963629679762744698039422991579595303767650279256546638722512265895277671840459483538482056598107072451321567340659696998006547820327772652192722968643186724562398222568214668604598092614198999265784367250061538787009971587678619446700358402103634068184302467729472919123954501921960282946961084840782987652756123097823744015389695872103880338065572412914656947654885858848310735001444521722253283223420260805467840137254315771231161863640266142309062394732351871265238548529674287468678140797608321972538022252372897715656348616888142997427428334641077091932446565426894161191512199821743439936306293803900375027081980861233767169170154047597819541010957506680238912772163586938968125463688507131197155916876258755541745414433420089450405758643423630372961453549344865222380682425739568464418166200697100341008200977177879710914046370522725914723742378489974126722649335472149465215066929434006346465039638000087249516451223758814918671115216696910474432979890773932821668723876318695258463148643951383729893609060132141304374307694800464471046323948320531001155857200034384806853516376675421144862817219463524186210394880727113256349348844110398623842548373690585107847390742891982849778548975790123950093053257607769272850912586084067810877872233472237415646022071398818058754672461354918615771805687365189428153460501654988849946657481403669626012703440488506762864175853959831849108330233155592819682942749554066610291560561472443094417396670483635303081493018969287333988112957993939548780942090914680811614421583027181662837035489806900252776150385693514936636345056172868531801368559365537861718368947816554108261949184311863868094260370067984595157049091847409964767418256040014535994259936062453545307992756665119884811337294501316869734786343387500039402420565416264316636238655004188832052490265481543039654637833893967257251702393354207764550233725400894089005438450502179561876669155110352364999031572882523983222823054587014135995340622798908201180728941990826649964694018461968780583805726937890928115314050663755293954470251467247812481209222690447724244916759866634020414020983223938488485782931212757278071809801663207426800595320619642658100884321410139591054911343261355006599163415489778701109853180321569485848886546945691907808083991040611201904299729512699245017818535448842896308638188879714635437244141045785750229260025413185250952328135016978360049785323363190430602968054083256371226601127863805632986320157020303113453775391667587689355238956195392529190936126085643050467864004910218041183921140727266101809943949165769186242802649912135170590859640779340231778685318987100200863652596541432218683570885229807006100923546868765321967727928935031899475511393106193860811935975863258881020782795717853915938166579592718596259400692417558659724480113461390898822082545458854830693995711175275022814789497825087721824956896729134408793705606971855165561985187597029822368989400541957853245912097485633941015227295192890498906784120172320154634142539653632156488779622275790291539473538897332168058404387055515455337558452459981550877596101621844138782135828143956504177988905260541479913034163941142709882368894687920361808856014060783372328027433475834300760771552482278069414104045747226440482836761405816907546894456587445654991166107410330807479688666382928683434589096970735298577866955409568949352161502798927209756855610691794561368414492645302487066817244540988749552113817288638315917639483145943937108595700460801196499251006166280279445508547596718321386616327225787351983675846385622708899678029870708474749684784815590097124963773376080430180747203114386103373186376488873376859418027877879510427852781682007673833084469764169591575863746476783133578908358221342310873872404349469187472795155082775148177466958485258734135273611979570705646677282529418162365280158888961478485605053990760583787744153712073592305423454756618718618460832423088348719706628185452635460913446684229520331245290251725118519767031901498566764709373728372160135588483626366009675760629050598214030950147239491229386993088655116675849538584199924967498321000750438030094850263738693692610431120135366702537340143781696087348393816202500639278800011442996831503027517230482001661526120864866785589159070646628968636727507327179624255639476017952037383126554389810874197811133308149912887968267928407529027795082287645036564205693485447213642427126469983058559920876679145293182850221102340865998865570007998491537977042243755543162936173745533059180060535353082859674100672694102615361616838462809479311767896683593775958608706957583808590596303548721728910700998072225789212009802885675953284723540079049871952856995717505625034092788015474460104140649576019867428396022547235810467401329942413451206422366428801219725773142511722793832156213008812477599581019944643661690506016707134049046588856289210552238142398082867378386113433183340841930421351354408401746403052401661492330541328969742555533422844477281737955191733606804736335164581717570922692544453235209295308252717612116244300042708862811529091874705806801915666745876626339029972583302641902430234479479552151908748597704913374912934095813032950000474413279966523118826210467949113651487061358613178508498265651536818817216410240771237597224848840731029362197136886064301940012874394738137699152400209739824493592393004336355986614016415325808564678945535365764837820711029385006527136992327776226002657249465575301048466377105180161398895511474062676662549739918540120175191083887849195974957580706956108723796382303670824507026850646105872324930002046492971210070303394918200246048184980304913152394059892590265484149141571506330007274404491450264762403732505609814644173198950420047794751113687048564073536834172502084482915488686681386959544369135791942844199918372638049372977143303617176482037840352445465162259212401713621842081512130646757921078155063980413189172214449881540141536292436616111169677261586001323647950929705338006865741791423389776271898134948665547207580911308576319946815348177154072002305926517219349986630273433734009909838250302951065228767067719458844077197132293957356490475598343429989495551532280028061478042631575595255392939052846362084929329021847231655300245203632622515347227525006656093041680451323053169056128683547826105021003604281875365175861072541052195327535935269318788491923266929229184150953082257933893800748645055661453523183355992753062911785727759511176320990650134011929635292358451132706014661991145950020567685612313443265039075713445739661939465174375619096387005135294116699823451639972651706066270387974899292026563041070456164644497071309735112308922712404554829062667750280344931453199997479803666877396812885746765080366202234468847673417135117657886607362223815033758239381035945787467664419058354119271394631508408734932226711223344086635132171736225761823583096551352460368150725718576465389087575388629247341657143632343998651223088421667491513598095162308506589828988252034840388410771466027471551568918296450343436938469252851925000677751939172698233061001734505170998725809945037651810089452743585438129063707329055618499771547055657723705472473095210350724122769042672850374147049622514902738677054175153088427820906101655697139066956543967952771685583509861612458284374993121076549379983923864147136973780448808964254277063752184405015386804339987081319661022509411475008008354436416189567646275134099459291594996781053352872748183443855555715178386903268753844508066199910533584687557991961954563363447575932483934597870421757044216109621847781989473806958981889586671462594426972194086581980117747942167973133973219473074000190207288632762710970126792813325992934027295220459852750611175849252916992476769768509541869224967869174148877439760227001896136656352821668967281317450606870426827342908540839798251566013257968534933065225226377792463119610803139448725932774278212944430653426129780091716942171326984528895101749259730097189854736804661202977947012348462353533291488824576911618487551138547700255750155125261472399672163899968576482216152037201958072727892158009372397974071920040590198656734345969441824834667290195646613404577650632009911663095880897116024876218620462938531195834029694662756519433222695241081705383092879361865125656531854997815104966406432101188815764431136093768137038157278558013619066815219290522838558767031996416137198393040399842078227053041726137223583988644419864125410913510303179990942458653634698780589484190776974987284426411978410997063896944270613191830932255914865856691038543572688137402038534737713156050315054935282155605584735371137290080085634004880138393089139890855560725745583373216656005353446754229622649750805126281980808246512312268398098965132647304647180223352249106338423947052045584503946609526898265481679584462063447732336447383393438549570136485799053080869938223537642026322094359154641206755389528270230668430977001895041253425954556826151022937487178723372329680160685171571864647882187295218981709313136000299030257689526317346440634640764788792796593030641119206022945843635115495412650993426000693694090728540800011814379096507702343827790804521978136686278840393057107159164139316649448386949929356366142342736599416871920444889525895972099945947684164378863096707456500311594103782353237637502493107836146629423087944087099681083713828752489721181134006297623190325061627398552795488520929438056495281405857464531850268723904322132457146684828826748448051770325281234804533833787683788834933490817989671871718434154512623402743588544758424439566356316809937591928389286920578542263262439673341765888481795682363884905552074055838847258042073085963320356597134160060536537011973856899451129566003367960213041485580643495623056296129871780286626831635965022224290530488865269805585624500014643035048573898330722192352002251405446384613752974074603925066038884219321219894315030460999994907254031481013592392206145251781394196734018892944020743719772127084620845737640180408859602498729204043909213118941243219622286628333796446932334941390802454225280640349065396047611653950486433440676545486585220256173503529940721973072842479740082866349177642255621054517004722512606393542903050258991167729399081984130737242748890994623411531911131603803113346694843344898512152800927280634975767442944124845531724955219519385095610505984321074039690935839170158368084371033374492289874377386754269137879179896555420201391742676996758933170227636191759695252039628599000020513230486533417819208468101479546153777598220635042104842891489166811631715430221455457671718064208383904946258400033735537094350197367886149293150428069721106773034260245982854286247350973244861175659947776678650875492454933157714712949070197220868347817387758621910927064554200527552826139520805655594733847875779432714617834027951383584614630730457209341734215220532373101290742886722430530227540824095516525996864336068054558942799817199761024336640649805376208354947092444079052268251326190261089511303534417399372418384384809872781425641573296977606401049399271337769433315354458389747054004038181514427252332828118527755474029396608811188483737017857298370865686355790733711081163106274338894063918765937142449425328076446974942493351789617839894922234140758357157180990456546866947690241105271524412249060231600624172971947711563557724193029479532229549015493793174468924966665864874660548689057194888819462846015307366711709634390089406260287777676558602529711174165669734785347418158918971154135216232097267847559676391863981042360038618687666481415797141236116591128809503440282925065079109010426618001180414123009135490516457816444557192186901408435843687868948869872850485057207440100592157799381172675673281792674683482883042345668879204162802889434516603072153125805723400305648720740897728123963021232091278349517359271510303267623467657039745486697675063772127129880671605889644998108778483707568482493942103027339265980899478284466209402588842396115060817240425012673113908924950659727301177879509572242542110135105105161532720010412364614973953114001548898402203228585841934289405226585179496975003868152507304698196309764539609488775091798051131095795696432639119508677374291105737451555445685601023895591661117286601057961270924839895499999173720930592919125387527689003576837902643860246710184477720226504627356966899585074526988238922521736916496849435508705321813218894448496851009624046357369397049000570764334675288940398015934502410687563842785536586414325359543360581579295507367882095890084413121212509790032381957243117301583683860120168760114127097758803992063387243226122900593250363336612990689173151247260939407861204100730021185497370231104111241230377280668662915516632975044807200492399448152176355924505385720014332822383741792126108553048340292019154915853406256092897220431153925319990321149288782850474211767042974702100347325733467980343075619431030364581916923826458381767027062580621012001566402228201471348372659481044936686543473563034368832069512026037334327843733770455863126785455519563842900483769739988980207510162886180937478198767125171638171056966399764533015885661156389911602147729880185540931297228862836814625433745213688545383667845198636174160193750878203274427634405738576795880606865396752721864268613505978137156318783693692826796211712608990479858289165450960170319957772350666092522237357661546381043258276760661701927751399399620339893728979220922852120869669284028704920999651305512691984203413067474208321273113960313270595030520412106367312662293295077867644870492627868452567788655565907183835354380803842812326075034017246782706181589031562246192222115218944880887766419864879298970487585562876965685458663015528696110023858787249612111067546892023241436167761399444469646364348780296882852199627205695035899648157063819010315002342816507650331584345227648096212579520131691462986635383791069472427875538309429846258907424874139636427137053050525250531893606755126974909990047499883138729430030562996972783089759561126151801885732889552425792627950752033558378939121419146085416041438389670425144407903543650221130560538208664297053092251353127069428299456089213541747069436965140563432207428411491328093907104576588177368334184731446093765841940564481644828116269038696859383685346798570092895035250545966353887861623221838731718461589115058480754361594120748019459364628077040820857676800626143694976768125772477435792575786671598729378588271349094333624206877441118485703608424600353452251214265656421286474182526705569872077457562940689125453329349491846829856332654064611360742603551661402288971359419050018806183221277793221615893292874657289637125384296019398876111118565210887157750862037912430997931546642499030625493012775989666215832284739350530012531974032815577957739628788946344948752581985943907499112760915298945694324887648074950424157824694347671119642542501308946726395820914222962127599656326615477898281747983111080081154556146661823677046605733562421140693819433430248211637250338205596943208058448445880415660431883216420475479054210703777383538841048671087662896431235530350607471584124688086280684431242534195804376265939118293346790352527127030766705303771497458803037713682456310179455217463332444488097074693416550947083958196249295913452802647952799974995685209079693822487908306233892388520102142344275825321800626988684774527176216316016805616567492247188342348465099583013268530100146806487381547710334860683446386267989632269640468514834839176506224840264016335076405114504733513076657129835222455434596591045902994827152623346230869481387352571784250123516478411430269613214564106994733257518704629752168776018318921562355776139633734070969801136416860544991372887779194007452892608105627349595092393016074485123318324745124633288332501557552868734796790764689182838203378715585522681540058724262773854136120473916611900088563622726751943019627913931736848152414087544115595299442426101284086236108108809122476318377348800792940621694923390410112788927469867009471044765887486476780382389006541049048292526901766800908103676653732792992842091598006873762034996109407647448999523220372773248503070282658361625014424222072943106640494627635432189305036534044547251364157747830516078774858120040917205798710585477328218732941560380212688286327799138639187894972554974453266987097266062340068222904493270716931097470025209948255204203752245943571005239479550289911749105975688722037866983575990528297460240171527395168162648220198697337037705168121234595765678235770176850014425918998356343150220256807892760674706666395903347394761947754079348952243676236256443000234972784317051341122134604575877539687355713507719661992527282274593349910269211958712907226346996446174962756367299809640833778057413235980779689419856806908687865175038890033205228834692757997235542927327548470289230005845332199659603786534727861268142955899051217972755639345390151098387289652607120974571613771992214150410527352816651205373746426614160561392047788516811098358864871208440054259420996140501793424243957606537566211457523082950557170263282761129960986168711784900425185349133547200977129159602358093388925236735381515023394879835807641427312937099155073479849898562689345954529470655647554399322205023443844829493807931366587667941004973104479568736143567928507826095503086673923847951009539436727463561360894620280383730322504324093412554070480107727631380188326582267473417787180433943918121440627787806030014272376304778653009162247313976078057420359305211001095577428445127936175218020116654802909744340366251709312666650626935324932456922717323039510295954273948258207169578496173119411335718972893100814104806577414875296437361605000188472967549024741765265554604490951976834200305863102725882014356216790133943566449384708196422345970713277731909625912805754068050602071817831545748653611645805915209683114945454019834893955320486768311463138900494104252002565418942640059223717919783096647611255541180779565297463344698979491619914814854578820814391864768485283659600704838894117408099642499706114482874761259930990206824732400696524387302397914993397402923334729033142963041851669563935794489333922528244846608030499741578144029078795646971615842592383203746861764376164858729705064169874805502525952634192434118513451471449581044296352282398034957895115986453847102443445808961801539371148752659089919274606224755561806309794495939049427381911856706428825155029910919396005323970583696635043568246434342781438854097540209518677122400634521131137622613906324275961960965254808397259563568131070980086645589859299914062842607859507435243455533180397011208529126740855301926788125228636681502314594527781864847296482125810114786131295769916099412399911369831803762507172628725135290215301555400164122493273536938409600054376017737592231558722400673286389385582290391567655494334872352538090234773907962762766869081864174693132084282342081263519440897535513383427291252020907280700825149173031210634696292033811431742878348475360739970371796419348980384111473680899023257840924091572213495519661109088851239715412128819092686298995717476076773501336244656325132879272060005647882071262449143102980739471747985949708381624015847616062449344868784180004490824070768020477277350432895144447120557477482201415662910231272349094560443223412549090353170739207764318777330315373012102008375458537278614463950642594212124924695819486420878489878262754369637624048674784535807661331304225708491415798876752268542268575852861399836585777860271750374904480268842692820249536765822500374752387315191804028874613256731994637163316255301250604409331753246532254656926091596494031023705913196173113982913746493055651220745605506067981316141033282929491856475452743862633117450400998171462760917461615058406698985289691671577241739319120148070149481280119337651696897068890690111319295960293132438912530662758812277635522437590842488885918955202864390477880183000852254973903648205526503325050143694836463238566504337998704711505962367004106658135593994837974436315105975941597690302495608875306580412700297043136073491982205292220873902980380770301358135176137896942619919261109424451957684637384347467156716097586449360311531588462461955080994060903931720187980254590866939841313033649986197865414084614489863131775538078712105446931200208182909017541458701325208015803276328250455382588980048109375483511471823140497097343429681113502530898421614601055916376253930544513088391049410441463329848597645851367463354587444716466647934495590665494384138978304122034065326869835406481784466406562389787644548185013312874483953680625252373164106956939492455358122011836291768964056341714995219819874592032292267922910595384817244986607669103801971521530029002463931200630774372028403943695213648941113590878558659847596837743178407631331140435012570532556907698987370130457674912637421314140841320046763841827771511912725432731163296348253323343065056415621904699982986753883765838824190830079334695045298537230922392483590721005623499800474023631224726962390418470922029879696689884176285493837547461731638159205271808722232364312131655656460314232695556926144927506581873364628327123837029326496989896086854346046416285069665546023031681366928770570564339568352169960134927659004900969209587264624215928702963411339640623550678444651677910350981199064675037002933414107807994060466303604674248490457905984022034049395938153152149094070234105865558797466165538346444078051102014669861358116933499955688266991972032529079513259855322856172518006046876246958058306239938273612500407690900534956508385695535721637117600982440799407217427495940207593716272865175884738350541435003559483723566074551690049835156996937626462540304819280828064947499191270188752875159969488208370894141392408130682516336242093175543716635276702134865530995272785562046046142181057636880211679351386334097409094144992795388817933726453986716595270037521714382507215296226358111374885821625802757320788033938567536716381941854635808736731872456664316226247345105640592436129572701673227973005863332172493073876793941677938670563568699224903697550572803323559335187274630191207021737826683886129700172502443106605219039715175691939403042058119831235980302443306200310326637440143849062883244544307981381265766396440565064448341578322729733167943484874259724475949043039314946349308117566155060215757206523147557026983710835426125459813400638978618169109173370023332938578012262842716148536652598896235387334295202797953707533636706613522174015614037106128427251338089393379834517307786350820980443388574279750901759384855619418941159938349581717994853416186416387733458138626567396190949391321417587619791790322231050187897663868139067474845702660326328739479231607936520980242251906863536948076743573109627736403371158194440076027239877235573047194877968176974001720355977729503414909434027352250257835273400046307728577364598722109408579880787344005243790402311560308106413189697048903730017432576957944031542407337229494904363073747442368664974567023828181339781173985413871204787017582622750929725793324181013746069432372312306369713746233157206657414780768289936878840029834369459551769537167490683437707499289623271414157053672004567065190913785937742529329338446920256741709397192947439107285802804638947253342894627695518026490833827076725823387031035820015665281563580281612538673535390781208293863897568176109940715871075121090480363041665551816005741775317856113709172197242711317675817106470194091339075358808659349501640921750456073403960797156907079075101438030384252322756460142967615960402363876464397396154804770794247456878994977158771231956977641245415540459331620717185394234053951105985661561455530941519964685370897653482029886678317774697614644525396636741189084065409369356369818814452993018339583726908452952044253126510214582195985917814957314680852517309133799209801332146988795949847259912301769605162028800687259152080847334992834167726513085198113630088637169989546881034118262772181615239900795271748178543465852890332846362124577167347933729056480865917487423925602698308203952941709723481300788507033124610603686529284838780497418479645985621129353349845971815567675486057178462822896178620861448075309336606093273715796645681466174670030033695453540124094313792210976345830740786328122775984834285103696480919610225055696972653655936705760975845454846011346841051840526680650123020194471123857390686722289113608432286597422446220897835787794572796035198473833445174715315432589729758193907575443790502980000274760544283286924891305209583279553539628131964796482600231433658113671921458923223444091740039382523424042742355436253655406475669306579181167134337747760653783824863510733518993611401199090191485868752680080272314913123188839365517646445632063689526257060508915493900028939877627191634375774206295841707254861732007734809537239273515661610709107294039163645744950031342157110002986016489041739128450928589981083878191830493330237404845300032155728283286698059965218725864156709550890242109923890934115708594740081005090118422398473690063494786052529514504485195508025744425124502542673375137199834270857632865407713618420065606981100331588650845670783910848515281845361267130732138497652541174070464777696938839546414656469189137561812042383232714637763306992447631538192585517430318272389979759967351031418748917201251068044134699814229964731534308950027006439115966255449611844319763858288534917682481386759369367555740571973475454611701957798013616069193321723467051545112541924010049590354580396871181596837519932830091487209703461647263689878978691160815102791960321616369590494182830012363593740721646232003041926142765733155222014649967811226883806697327801928192841334489978578849742387649545185963125215049840352881319594855195348332673336420618475755438038375986480341227958620784045159516626718814417403208111017428617975357066618034609656689881320083445516326207278927625486661570524411848014998828230202869774153878944463072874545388478520029675746450971868416397676145034462328925866025371863040374829211047858121487241941722592393606564273860959653175234369658075335287911776034375130463214293293209948600154194201276539880793926375785103936116781465582129327340390056198627401401722248126577058800837919592936812603843392316438501704580206853005857169017862841385662404022527009257864875008629353198992184074364429739105726766422466224340932882690311734326601007200440008256011954955571658749088474593623312202642697139480294974584989534888412944941654076136567540523392105610257686842971154737316704456698824825703130976414396950778202790614320673188196624594381552591323738711415651897930726076097182836114109786986119779033240878438395267205541576036808666216674647277743106792692824889518060340796010815831361845467019810658219249474363422650761795434411405105859122482560114225926993156689760436518835929605053203237253726228806691620301446150782701582155837726735816260654475016238315051408546656466630335038202496320567930069805804733581006321144148581493327614053295197011246090426399577141910666358513353029781596254125284710361145024542110566688190756549294250266478429498822026672434971691484271851587862755735839471549772176290731934587194185353382952864521197251925075409636801254583609831439464580594779198766762371230279416051560190479512611486865871506763849690298052080507252099413078557727552522489031853526824573987817224939583400651142713864814849587757103664785281111363609595976475898173399630087603460713357872575809195985813900851648131664112948622739345015824439744226182341997197736920594281636473231239268780730875491600831678235632408213655888219998067412151934110207647716204853203834199744510409040763703230644201594756292627496758164026069799454850967841076826478350171330092094230732628813007813427661440028073047054981763121575997842066936275525457930677090871453321119255510994905011950903863630738264456929675600869116409108269961912670690380141159021950637005804360314226840987202270121464761858537297321305802333095610106327890234820011663407208947399578448167048929313485683402314956628628707057295704095053380722497304583710441011782424093728597125849390680953166933703131589786615662860558142517662681269908542248246168449689935989329808529001277358334359324234079986300601119111733768157738652222830586907679922358304063105717648519846169381046299016641912630973791743220588614617963453826733298779149386391961431800376747910829541440016229688223509759714798500744785813348165427628877921094803355617935674602974736993911850901917073994016925293268385332304385246473893585932819633119510733595242023530732768192043771015285746527974122582761532514769775762720509982345129913122651761433068455876760827643320441144347840138335235464108465845355279195900292470935434236516453360120061523589546330904411088166852631705307498678438944140330620695839947240788099257228804026482785636048911397259447164163127525044321186234576133317983328897628603473321918910235411583404455924688844370691425657673772848895749311021583755793224548477387984547246084419491079275130009885305451847107864956693169174631218058446591371421963000023230301512082905557730880893313271393342098724347804096721990411031325945688260331577410104354723421267133334831663348165509925649361997517945000731066505641711754695378344878867227717779999855418213632889930690163234974089244400754349079404542461075800067299666299602064715760910734688462512152503254464958638211553049269536605701353144694834229549869423971326668799384588656486302091801998620338857176969472034849963859534654442644335984443965448656087911980764899738761897827940425446053973342376836636509426561240972999398573742886596960377837092806309455773245513042254499003659133587476565382892842765144168249022883091569096866594946162983945649128351137213514936990856966985017947238922740498517488994806232574176268619055993392493734532171245504721732061227121546373994944861809842569294760836188230283942165023766214650811649922477164976816647481644967524706948639036351207061714208218105943043244525690746752083671315139156239690937047899590326713417207959051837524425823416000869106509677392307355426996998235819184437083363889638633882129867748567566823536874870565112191808624095039649141272363259227494583635437172509375648005247205483230679401117642324267787110149157303455032229219187649071243710687761294056289793735203280148218322406932110228111569624936604396838585753206198682792212362558365433097023250589596479192945755868091811110842340884024612036487706440657767653910809323487085578438898058047664335340408831634702279198238122491748879936809294722084248886575498386997900347815905820261607488383887508905168020470550070166328401463128867856105357830185242181327785735076940941351816974308044730342994934570654576744474658359044162692772755338578231241142951124786486409172792507673056157120347927539726344001080456877766770101512068828029292480809777484361622780155613226325554349223735569910623897730924604955326475716282524542202293017019129997363126770550626162521986488830176366955136669025023948794931477241457735076821828874221574619451629130484241367580976053454421732564358129086347681450027281881536632199737863587235534162152003460417533941477026057612922947307610548060969271181373658787382436059646599136526189282325321488884060949909162294742842994486630899639327413754127219308776812827241587303113030665908072153826243395596923951027629684695204614718079487582799510058500853341828711771523638859407442915578768210175508129343621233934034743907729918419900657496329976637964615303219840054795560073255527497115688597275402453643238952312805314973930360835194226019581961361924683752433039281354006815005420231816673291737041580188252293846312492698433564605369010278546293664292085623072967140682637012435423693199206675717538098716001454253790595392987898183709531812639227439145407935643260916464074900736609801905377969549373467353096226543420797416662473306950435065324610478930600978774294107650453745860380801630351012304865905184217936179878513983526142265588693182259198031681876397933665455025412794478433487665461832316834222399198393291238580784935842226046117277993053735743061041673889328653590332229589070098789908815766103992080458788932750352353627884965971739488504264861357877685200917162311493355801047581272651818058997638110072206838248778926569318913124066686374007498471890517694988958747048891858334694884525908892329280110103522033215512479456919924925265716588977933727656428500371566253367046308465028021470974176853766359325010081197614009162949877132000897447320564072590221429103736370428634144342795097461162036616034712891518813935811869960141489301491966296114182014891819846942982197170689513844297889300031580178940189482271933515467931306920086541640088160093500737701707039856967287736537741465329716468586925096685429268525865564715732013593060566496972932284843653741205981607558242692028295836719944740188217026937280793899646502883834773042152046495584144813599062015319517575952781300510663924388724848250897803658283049215738902899347371603156574455716457957729034481738851690363627910070621519031392898367925210409613621010647278747098992807032099861930988992456612880241870572625908983975298485775119132523330381563820687624790358435339627120894179061808800559639897877192656705326997187094649271280837449149814283301064817903852858174456270563553326195402304606054957771217350780119081679644859619830084023651938390040356859889190554928965087666488072796926492748424891757155348551039159161802798601124449069719516119454494382998430286993507425394254640007823328228720533337642900377473559049009137104679107328928836614229005542096001041561101407384716479302284897148080636300799440036660887908652309326113591189838819862724113294810313339622650228786459702845996003989962740607302622413143002284117160500946883886240899818033039180711310827796039437994034901402256929317056642371458696105740308513859442193698537143964000130076504241280049193637526016850913848480525615496905174198823196978684431374622880991688447966058150225537747249526074201197926406496014979124758766183804906405553376906871649954275055057771200457252961659001269976391240590888824230411897249771110006384672412067543597761989463197416428188844231782358755111221751470545090296001867871005973330203956474522491030056042197046099752767083689352222602056657527732071682606612710578559609360088868014576844590218701901253093322502511672630964050447627429305247733293828134323255599948650440259704214306801682403121468268006186446223373628474560292088508326101700537163473388612450957700790226261802231077780890178060167978060785563725625331113126910037584555536574485580005637809565203470502936976706744325063583170500401402436968162195165324473478206174896905784619682444228792060737905855016805325670335935512573159173064419245080666407537574101545708746621319926421809177920164499194917768557138184803023895310482326967526556800616527332421816383826080667830699218908656283513174666626615881618675210295539628684779800338025449826833424177732274375508004733920491105047343425346515764007620109873139074958191762912346308927228490360179718299895407267999619145893237462967869628812081926052751296683685601224562459136644059891814538115893308470801318531151714548386052066811516601289087876558928209025431494584285249165926192379641684458098330121677349900760285060252760696246280530453956217510575257605425317900356078868251564322803700824559193027724507323969549627605014358505181176938336625811700578421198170970681504816518848216972418360462559735505636236881055727435881566991760757373982751565764318948551225342458591130641967621607658175625994218032175543691188676064758060570866564788313864830274865472143540602563888407647203942839465942022383606935662697751293312623788506085557730988114301280022376733347181825339367342769688655898964006975232576727039603716690145000114597716710159212512510466342824686206894952543038876228064741911647096749602418918118131666423407763496483165932880171875630929579966261801678137219925303971953029141500706283886470710818155024577770602738793503014546358965915892707185382363903919600211359467254385433628921377682271529830870137053341992484443837954592486115178082904020890249062365720526068331595977523275887471509897210070076918778774956025576402857889530362653376766677676855321359082024355529566906707318100933386201086273094201777821283672814956472717077488104516999517634537667614633187067335402360270473493713838401886264451005058512893959595477333763273553415494286083127492514908180416955199524462785683053294671057404102881800529717165161424235699314779928175936540825901690121442696171591748528309208722386464788818228821731798839682366767724286208827098224363041316656886421339760646776783390055609312476487446032956352688613363367421596319224371323797807211739133413920572427024802476505121183410649430675512711952173229522181266922474504619301124322099655362181970932267641463744481517762696823962838564948495063567160760906252850899935253353979601781682459499700386569493234491985572080723333556046775610751744330462190294318762614094940867309881416984688437601752226051029860086541230817760097611444741539145566427232030430848187699393828057386881969234260831861258167809863902595344590914469605939153948389675670376030386702718722080348502767891389817754681937965590673173337806210273926846826399202130814894661712966900171355218450934548792571103112330409534942981061676786138662640512269569527808315888393958700639367290864277974316753066142583671267517347528931742938679330679630291863243342282758594778948293685942844782905908173787027528595974897872054894876038249262300864775890212639405621228314691703982926716951377709303000957913264163422470203818996058902096236103553449808646651030997616737658535247505423025528840831038575302044248594065186385275644224817853747244670149659512851336808500885761260935454715559457302530266305107312039826028771365615883123165997566260547762509841755825440171965449474536534319772040108771340145269800593322056387264054850703373046588450118260290449036672940777189429886502358073946652584359894861341844327400400791374287416363813918937311944855009936751959447232370166184603865247406438461677300553235695924352423700090117045920516239241355653289043006014920971347653285851053243714984842421117810308549141199254986613104810632133992499189631241969376895792211355381691916764194065190715179775443113887532428167085130675002175769766866807018849838895938522317384647861469732865272473948963644144283167149368833287370077558328039794700018352159511887214988144118039860909140085787072920123541547992052633811627827873668525889800935711390263815588335901420437184434470984403441066188634531168617864126772629027585249462223660322747066306930194582475608515524358797367716767868463943567983298863665109115232225395886039212318535440173027780803612599432257644887173315834390173312310844764017030691359329657999442015410271120378948948370458512943830843075096813946249451702546373407506540794549603528293389031021268089950965267755798957028473770674247982814975942526086242996257071696262329135610388450737765440435729053761706086557493649060279624334061191274882199827798575672410553626784695853011861536663245665232477553708971851226242320214817039083999657309001659854405258624992335157216436901087339266617634778129494743056001168173116584303796487809569039118055748376612922992735917373013903617180944313207196787802315924983923971638498340225171611466996359868651286504349091323586703204093084840646043536840642261730880125332614053552083798951748772664902150768733265556372628288234420028333641152727631907198616536368080680101014119380569269647153466251481296258011789733497322630216177419788063084772767128747944055036167988156060503493738915521272623716450481298359911200353152473412513093702665889535537589008851217665052194861261040049864757187245411968241293380032855459415516451128736748467083566159307623496175784867691786416225389141355957743827071337460961119948140873770141332517879792517346412773152776422895873615180990240753826532964255564722264803723387122517171284902426257425233714651955426611292132615878662117111720388822929068895620658679366961910835053840958979272590625519972153750750083515214047010873682043439263420841861650046585055143850230610851373422448922256948449051054076532081041324982877034904651845033160955988269478529141328457860089896202012011752303242813573815133934763296414494153381183023017865437171795192937668039416559526178332873031148130364420675160243112448974007695250600956918172842093401396940099997624528481600392125715139895418932003452951119582455541784333620233324725505335837532051479498628978334099292363752569813930012679387369999783261845547854505893969863537378485336823011905103158873522381844472603170230410718185075839134605635061442335154724314347419146656180746213602321543811694939366120177319169254622741170819549560745495972010421197936337668054034386222626917001192930690345071339562916225565666992762614252836545048483927779393076627765846093774960878692488742490958377053354268641209348882531777309311010332523662335460206650693323325167609650383798926877707423307103959301514899068315991164548005872737999855457503672320852233869105777138497822445512477046193250099882159902116281316295981806057603501047824397992010217159366986791645325979541499750013660372896112951920973280366008226416353366575065237138665115817100663430014336816893924757039165173933698144276763376094815705252546451796532756817327845746396049492951561042966595051728820790033435171178557624273940910045309336182853590227336854630678746682810936495874779527974875004196010988615980371733946265444601009131611962420820014644895302737943864815708040284176962878663113894817994141142403699998350078032580240575489761976490181557146323874005946943362312047658458942879815029062951189935559979528380641011673050401712514810559601457344741668568476829289495531311150016158771878478465852578821663950468152064921089370216339138425007329080537526119378760527415286656189009551317848002710164235439065652846851384527834437563818153054626122219264728471324062780734948533078263632275993220179558209716509819262179163892866903212733336818283317246602614872843962828632345790611647879845435933364039474519984876641420964572137851176989827047983500571087637928564971314037912330785517739723969576770485303688467499026097580000289686661681759824688558182075136123396614195663821684622637671389249959609451171630927699639939857866623525320862111638718133066922396049791053204968529628407391081311838119466911994329401183493085995454151638202842189690488882556661415961798961313588691098346123340888024975361626839779485395778230998631664089370190753891064364429185352080704922384903105319378287849465677055337362528865564720219825780090568753192351678974582226546404273207860465995647575232213627744729515658682757730576665718770786800872737844536845752680124630280732005357905675296734226780707336306833703961355877713589702043208984153961911105916568013637887915806905117531098376346754947642403470122579922398809288143853199402810764259633677027842575909527882925784981424580392760409917777632860904994455014203734446691168043596833797003293172638469225356273284171176835509200968885182506310800766611264157265629469517807134476669983401373797719616208050046888143921956774750867338894268145648460276240189629092003899640363711663055820613542235731630302469477535700603962745861850691062341588791857888395139377271782952121856435494775710286226976207894845995973251332773599939206430230052165478857960533973017142910326153581124945321704320100646037219704484277195842761704006765565591410337761651313159221865124997238804413574863596713247621071846044704059746553837328183986856158544612760142264565345538521526477482038211298775631221182196153142739774703678912367012705305202882726623847902441745414751630399484135941587729359916700423817316295058419701980636739144753272889119749674866467859704199264494459921996556995870231680785673848377866039747703856978624951716277614314144146710842546295245967095549996709769097904157815235461284281027181176211996632108731815582709533222919555634757146904516431595146342643379955522477412473402575280885011774210977025042230618663169492203299235324957581984014330617067827846297302835609826519913253123094312337455925849009130326162060939028608166025397510255449640212811246152746144325548671413928839987958390342949695466869570767357117544095324600948557581168855987627989646052944385832417369051046664388637492892163119427966153684158413345030084407141287870579055725063870025364298452988350239589841116157573555189779922410575630260035294387080876898787010153895242480323503602167608633670410649438601210017877303290161357977740872170839048711159486657908136114713186349459807909038934428660672627202467580567712462145699593457821630545710166826782607345619736045918417379026419072352130157046544839148679048764118460180219160485379607168972492303590178071013682198048277038550581027014362180063653922159799956086038525096735445461864807295284146074362740841050250191037585843451035110931057161789309901081097043087734977243500958346774206771639304619375384182546295123541875403735260294462702211012812581079965546143659017599289056153669150980527585540977115391833846559276951204969075678193544842260008256629764592685230386731909081998278800864022731398914826422562392694238832775932962541541647037729806952654641818087504976846288979031672611692076164598895076610650964886348889507007076276874534926611291883368871942111125132502553462781742566554372302992604318752581143661998947141237394185614642718293624693047636294012198128728941280990430589656758218268291278677163392184421958585108908590173469229968181997404038435519996804353792964615582592520872232251679146490351135268092201376096377654659300236808657233553037136205620757926001801222178669311158659617442411776512413161451720713851172235885211793641987593659849309857743360712226442604846100277835876145881039992012202601878961234349042062854909347266256553086750455805681838583946546334862352934070485988426342975710254225591440941700931521780891639708089529635653749188637321755754962416150661740347502375995087206112745681321067982127704046239911748853845986064273372271216161907777893808928372998865170298272032349389259198319076858544136871534772229616716546200839814480296740514567316136429660640319044413651740661103721263249389619865437135212273752954275770067736012958261288717548062010475922241539960948169832348748341441685503791428479516999450393940091320455877958047021256528359981922396045205339872376651243292947591146488427541785738447093800625175941409561914911395890672458471899588299133821912150518331458833669037244647980816776331604447873878102115765972687648501453128833639432389478905986059831077398203223750971786723330202169326678452737061328949073502380672760974701972119887065557944802994336372387474865201705666878421613929734576014597244126508242659047987018585354434689901163545542276284056839145213509510588821315660083964042144308181449462476445983669521594413683935761950835903913456905432292469892569127912971677152057167853242528200182530985399111558597628330005341355809945008008736354334409386849149024534587672712836344282222831204493933179231068480707426980422323367972259399260296924425976788199069391414001050504050567415301187203759969082829984017356435955072960640192997176159691715530872665900654032315360009415139179301620096729971544097897759716987873798866984128236824974790797080474451433581227977342890134621250077714820756649577009935287002560667320603890598454381091237705672544331580714416693918372894097401662629779686081767991672315436655787055759104511608628055113658997789735217652987185680382540443768083320304340663347218849372644540594462091353262210390846742760976724469477083786103475311686301914774157119650356251999585377263238436050954271723692660827908844558278108667014457842368265699034252172417883345219512231381368482054194383539430126566790223387206571733517941413695780367823208586175322954983217864476482636132831738456438842553071458244312512648290350400854027163752049609557546912010341842200394095334192738957852069742567218437920679147349814230792989564666123051837289874245177910248675342322958765978306558785284386652385002032001255663503219700604269628057006378455781061755342117157197796051403967918878899275353991651996761363111491602369208276061570262104078594405654461051800015147853387393977861832196818638423157241036792430286793926080722372271345479279675555974165431386232554309572580680536198697362197039119293350384361417700921201536702438139192405696771285478679199426756957068270624710471661894597824530774822518195071063308036912049772648605079213423636345740299168221258520103683902627690910653725003488692930138822698927702832601879780935832304568334670757217232196111591402935606790147450516508026683793165851057442402305042078137790307302529285870719991484148041077665533501912118926734048855256043836266207870234700394898006718911115021238532126754771232744920393799498530709224482467596316651123992515542377023640656399658980101198621153534905665365914407558053911464023463147742456456230364827530049310139126710453077644394595951566398715584894813014796932112313467775397144324073796876328968000584922070640414205492440007748241773040539414953710665070047415904945278288482175501777596899943599368155737702603322199642938700683219128204807159262276911778308381707140301615423133788354526851475645884343625241371378638834062927429360632340002556669173896023099500138126477939863969450671410750664379538814452172106016150559186625506051683620300153027809712284361798089211972244907541490437707381117431809021671564867807767891595879940357211641686631620475735716323809827639649755478055248150301005316176954298112283150993638819171167690038608647878167189998107415066624434118655435652325942569177780944436039168842672162466376030046401883004424888421575603112005807437617856643614734622082985935185680178133978242706302073412183500977013446980552316994364631189339196765115419353211377732890379170375398993901185577763991751113602267466547873894888212801947875909149263883890607245216709828842091637754665002885016274159510647353761683843092927538642288133908412739308684797211987535653750916813070173195538831912628174279019956001428593581684965130393221656069091322796491433255352668861944446843510145438361183820872716475581472016649102200834555462823045168465905089248612989289157562981107805682764285948976708620767197138296135311420400521677062360251731941936668154575707924041279325721239159524944750967655932800368435020916133849033350539876083494139503576853377241394286042295398769773872287365924543950968363062761993575598706896069294778038030631742621160157442756745359079521663899236776835257086593373926964707127325647340206669471038375542281786364364566862299697417272034945911977800518763345151329469195175501291883494897776311579605547887808177696226369294108963404791995875291454270909170764913515045842250912105337891290676109681119802333095355207927724056986734479312981340011815079834340617277757171827429634487325161192545641440260009057566241104193547501798160839394352378486415393337875269163414997671092894957303636002069043196662893451335902622819832405906674570888501348954195244895444359277251791574874013032468953174876909872466285796802942295933771968337319075336366909455092946909705069671304261635658047431412706961702875339429927214101472592075517218316781249672186474211761910184771653816009601499591108743538482578544585191599649830120744505400543523054046110633361232913238402080940157852953141157196552321428729106181176302770553971277961001983894285650818569973414025837459991735435246079735362828893315831825780530424755543090596204147107552974802445753497392506049313972553874080054940542140988641693183425679863259305245299513679361317522435462997538068864109440131482418914641373936896864611491741145259934659530244287552033963379748927888364290994691884324911676113366823282494310024597849239796964370931949716601070606262746384357552823201986819873904301544643743166644291010123427735660254171691098643841159948351067144022025714689315735224628128671812622506179416125365418842430404976313745207896178089209890754658786256155133851053888239945797812216245316736210772858387372323922386524863432973544014635962714359993035910441630808440106233051559540468972887623150010952932567380053645517914769289436612296223013066199508808546042643112850382903692507888078400339916496438031043678253584282805735559798153700704294835088128254959581842268952789043417701052779791609473151684339112864186972514922974312629168943163963709000213757861001114922916666073121058103702140151658998718594954667920082517538699333430448084966261122577434959970384747696333500394605149431086163366757656971876119111709714993259674703337659610152959144924339584775880792849198334628267199945960755989325964298031779105648105650467704386626302552715392413192767345941299670254931486478542254387777953998734468152850257687934042949432021782021370559377306881426813139349055167595944533242031271064197487271901017092433175251523339403960236379200758404509780203341004590647329614612685370963082508083861271398548583181381256189957242070000625034659802610533389611527557790663547088803285290680474083093524623351644701778526118658025704817696455665888885029818281882621786476800689531378146510232326228823986338628190941686045093890659229506845027563150517082500209476204094052649072718143452310088591756752614715816155251217527856872602465858231599073641858706355288456887015284446617492680182302627464479063952220586748614456956192063346054721635787081303187959879251481075690156934790152695825836631852454665015810559500101378812148800280750036943704552789018158345537763762348108338158690506603131592264708671247873541959342971550970888047965633759114304401729274301039321469511070808234617657828663345197259686519961915922079952867818452311084743296505863459817341557132180338973277359836705595671653267896519712567813057041806517260579223786405652137001765147192305097828742527591602606466153846148773953259791579847049089669965528534834912750863145793990163357361099338887226405728376227057883662105095419485758450771673256787945921663554016888284821001428543651090746756989379283038122632984464274167267704497506472518583664460134972324481815383208104793650921964536557633388652215052966245541880777407475894706184276651963328286502738751267638552441417630165651245194190085351244415983281867172404952074099626995250389521719424040608250706392811578376518925870307392729141393087993791219313859586598877956896974572321571141348476749924410344635431435716693045497621049290520505447284164465018226831804484987140440483989455885126088518679106339140615473593567078785274697488965731675726749127888144257135721710052021000307072001327043316250190172642136757485354335069620465527578679049844331574878774334989225450225740290966833893278019059179883211577959376169588652359985003807330222232029928187664891784814511449187504462856200150975972632809670317205585804491555574937852918937296880324140264974197032714664300758559413215421883800727012202835186269206017340498537249263532505547051673618932064683645340527271342774793339547848497753858983284020744380498673512073949072135569964042643047879858071490784279999835883597736588449276317134651666735470443758118462391571687070767729780665761572831631798370122657267209919718893689107601068952075395957562933809094974620834354875040194181446529631148162725494796388821755048757166118097858658718718027842904018356150746723763957488693942086131642643833237207522927201165055581191326678991011437049594861844733461736549963449752926415396259554863967271291842667329718249683412757928878775396645103427905034359302776527059311282214241940162931897954260348177416264168728563462015287514928183779728705596014944843444449786063620012149375236291752368958409892162935376295501660742604185214311924923761589748801089061038922637004860914887437052001950402803555254754620942263763686233509279643310327619243099651373876209710639735209640729792148796543230229172040218327736342032015411662777745243683606144644877801434545086762557869033741418728024372645479365054055676170122323449915718676613260733899445445843596944028370583932608201646926963602931718020011631997557909264450602366159768315043940864956823911282154683910573777847468455729954060830059451318676091359339192192090838897716628386529208029401695287227279156087675919717938227372177812287840168133054910204093806490148234914874478101072135442776211004511432661865161234277407212051891470831349082767512884399199852664148891334084528815388973749060153101588810046512690185301028972395867601623491551192008947257218113568163510305038943919445866978981483515172930955615374802306905488968045328273025859658909087039183887149401659462797251351839540915775575727098966827580006683694820613106879761851374208191188099347163257003578906318843004780892846744829019987062832883803772634596927959515724723126838370576143132458556408642528521788404052012209726130970224490265678096079601595170556499799959414527897401284143752279415659570584559403965099457119960422020115024157654780034399384895767405531974889947097627747494284603077603036175200465063856784789255003987508944590670320580815460480582493044676309525289245784971536747438528010251483996675937926581360892694796573638801733335934185538904214914166637527529715182338674763416156837246028349084348587429816100702539192814954509272179532155104758505856988397740703526889962761004735280868486976060312781034632393275793414052829494201708465948501392923019767269870571374718756135205737642222329995179923702000860927232191626563831198761904244487021795889011424124950737845162318167311035234626462580865245793162158689565982559624398061286408768803721229867875283289016765407099969985768823719127929912258815155094128104746090601953095531710370025572280363976068282933509027015783265761822875605751955405077096783312686938594789539777371405970498228472499725806817514559930945262921101774004408231059436250286959202440738560297097150325630264174348724469983381904572284906685096091470122468175943842849170057477577832487791455473458881863041614680618153111084512087742203563877147488296313348847581257646567827740040642247060413291776984886737423703698161427892881942093685422961219783086534856049308292018681548865667963602713183278554265187173533767453520517545339825600506969467231426768467543506476120289541099816431295741666041852824552422127023651081029719218913382872187906777840434324352015295913890630775478508216911204169114603428997987336412156958435011952299263744524347353899313853387275014469450620452000142107461893325668284964637165991754172911447266329349045701658121948921944551189947107218004855032845660418343942318321795539022562413191106376177185942995438640877141739425203900547473837025693067467025160496119468897742778732661951319660248510578829426036657009236310912356655090031009008028318425062153655988006950732531703732329137451467642085254454624624801797537198431020662625988383886912988410400369347907097662051460540266427018352112377956025200507757172852699225465968351902582895106840001199615968647774141242613442198030927572157445211874845309704938119617365675257753460066824157846548707785373428415791732371786751247389699610464035557002350384178910943727814956661960039943260801800175906025351063309648639416016540350808972062935905859122174444171123645066721072924421378693305671234648964377817928576294424693210367144571910666480285391974121574276923631816818134272218633669073967651493272260676464735878858753940111434604907938847352800739250408470438004253403240997064219390850197545864289883279293330812988298682330995242784907131102328082316177594811306961513565985051823093609998337448635394771000900928116920185083705256405709905286221837958921860374747764487207493862258660805176767932633054113061257042509796737462036166591066261856256078678558442846084958197791373181426468090750178139058011801540001322227109928145677347046251875004520366639474855151729919738063106379160009257460792368227037363722322998127917631740633804024865859447041857562544802437592998094922256727641532576964404229202003457077700892889061428996111570083401377749754159893477031966127454847993193660162894283811200114883012732621498742928741632178618061104997751753051591915582093893491281372779513351754924576038441784729291484478612754010241438553104749175181325550401809419257985860573252620477518122852713336002936450839522430148943502140226999527581502065552121941151365517175525465094985955921393584126527481691023960636092623967713562313323864628354878629892108832486004388753820406672406393994288183193175216788627740109156707824881866075420364774921091893334216583803434935959562173446629105196848492803737282589782391922787661629887105645161012049463294192901522661363163765809445246723143709885152442810600507094304446564034910648380563435210305136255638831117352087772908926245744266123692739781824625043623489758703481942062928505238829858993347979314371276925643123928663254704750953326150926549955237045043209698509074787201459182444143845468186137787737660033286194411664696116795492606714572757653788711815481632749293175275684930006200349236889438436483563059501469744698412317405121422557172579709458920796430545324542690169530258711851260443357279658455712626305679797230635600859672812616361723563813401188944670700827769903915259838958203503309447110199749989425207038113208618513437303669284108013941797021826102330032931010043610541099471775562385821228401866806874523913093895460789879801327074706978616718595205695753890426903694169531753966840588175792936942667096796418305449408163903109163144210233897151358267361044761768895918089091525097726167579240397355788134216528518163832262399972436028129997073739106363627232042355180128632526342524280622347110413439468612590510078638690358990751987317392202995315603835138003570587194530574545442267768825762724668882767757371891882650178750469369015006247532803497357758881305627390761881594748698081659636401986599784378489026142480269840705688897927035872296671594603155180676430667637292828250589618268931597743369757766021402474796519917638381525152611637016219491077728554680713481180834654949310863987257321031842360671066344095322372173283814896640385244252292284526313265264123660090152875904362206651819444040895389283977179571358149416107527084166233956451785076012800022092902994217368060092899903376449111642386310697329769623926356832158294193420944350364770483906900146581107178623881045144255868432581572293191761940104306621331357822441567255617818949253534108103949556779784088796055361452586666000178362323762629289685386469372759532171110796706184055238856433309154248704322795358311795789182750781302275842030566953864163887807349820861534756043381575922934936023258651812060714539028996678095523165157556120421834049800018513072586398901717758220517389974653238778042132855800230605440230791300423135090081582832297140091646206085332641800792223144574522854199767312429367432532895865464633125035221407596890186982897599733277984202813543666484725438685218115608977236951909416680115677308144798402703793085746479586904658848333012773697806784706560132818877414866917381946559973111691282928479838854379099415870437351660693929169730392400231805977982692947805487064446028925116582330439208162781271968069286547254939053544074182104632085489658523109266355338712748643311519478614707337197494005688368519891403543305091844790444826823374879494164327167924306094589539614621258622812428516823057645273242954605954569238220997913428284000420542251793754806386790909234399531771468705434483644980617286957449150079574537175980114247897972735701756066157876626562429968341759575767861147693283780761557401052605781701767567073976020757273462262838379596317359973359323559990213895595017636263835392186149089969938812706020071030147571712066966370929548287008781613482367159933077141439428256865724852636368699941076457000747187911271369227737474316360206233854274722996249575866658385345989450934235220335031963915023257306757637981731518579578899698185139518027000500533538434996976414779947786422274463571905883111000375189140272579141569383198156329581674468025507287921390457187309346079248529751584210049375996919746205122842243515329806200756242150229183560621269693465712418376464028906783673985870221976306103179282515231391209972476404416607327766836920061876134657923278982603339167909963489745775003657687160645169943416925188316735926649609461855396916803133644282468053521142662147850688382416047158587097340516226193119915716202481578388155201637967813396369402097044093306516364508027313535622428511184394720038093415825139136574566226274460695350821513885524747753161755191148207458755468981290400391910495888081188204452003690082935284592853584350925158201159614784868032608321138755829798002256578267942199283718239431376295466302207177434423338701561354602277401063502596617915238245851650155024371247250689843679939182417428095220356231206600043543637704987923681147051415460403969303398662953601040835590349132369517527257364151556460596312095347701132762256004999319023177340206620315310778483421430009801939303490223234841635288068844183186476935996215634713165284719589489861778399157792412426213237728042601877972123465683200948060402930996742228589583380798122494757264288995642724549705070173847168855598639858965326302727611674798847154278452830340858101332503681475584100194381719808629292841512011098276183688769271972264396855422895378321036080815375676033455142083078507359729325803813801463887088934364451097802278377834701973954930577009229100406496717152143136661174464218010094685242661156441011436574606770490137990075667025915458084867473393390398961738722039112303682731262353415204348433559846396288637031381394225228545170725348518659857374614289441089482353532444785533780380553772471834777245313635757380442327242652092319931159525980413534012536855847714034937872368117585673202855419744469920094603306823710075127780135967167790582058690438382732561920248030372066914715426799963244951861191297578059911780845246827874576765238426661538669563407142824682385363847251964472191942393959896610297202945488831895654665265673504290716294347884814776019196515560472579681557178749077624289468985061223574345353799017213054455028266072757415281767279754079124109655906384589032032236185496344641159939409667133169006027586833712443310227590419438470866148704355026746056640139322056846932099542202245382683433160043979793048219603867245034759220226927221298281590938958524900701221471496720679404126268770294804273688762086646229488614202982937329784297327200512035142325340187744511152396502564708048062710539822173828276339265971081439921723614254465852262338600623896444555970180109704925274232554144125633066694729338044512170843927266782072510888809401154434346706878286535477951138644615327709751711393750296915466977456451724706895823937487749669444565697754329831467355234069482635342661783488257633810117415751099994453734318799315235021293099622856388215440250104939133490668348802779944518722782948988561596944488959042567419116791941266843386637841848531506924951133154279934308146315095658077144484957503151268880948559654091978399190829338050379196589259674314285462533001763353242924204977902240705492836952244179924823732606843695351261319815610474984248267631875817943150902414334073215586695863276470421771590737637371506214702330133421821578676199440610974454284263541289143396897849371776287229940515800760063794522516293776351782309440224782682370485853620469734100400727269861936676175567615300379830490367169665072461401064341794886158046112587674715827672067032078849531661050609128244613691334384688207919628981163067908861634412560050120692765920759678785193744958670423914070651097549874821321350591800801650880342574527177146300278738087737882173125282958364009883976878761407133327204821227194541331540325460511556362193096584376644485048520490875726974293839623907034793803782399593480649788562861618797031406369560964629800517185201219730052143157210641197646844329182843118618317650066162937528558291894779106194391664416561357193774411788792345564946418877745712222244475129485855744459528690480092714108421035130512304067935975240489704362050505887623229846863397404054776486230685315468559983162541460523984866921336085709885403210466158640727469156856307153044550457815032651136593244483927610072481165046251572646706132608207800129618953453647493285404352176747594814062547708279113923926298847408580801713721191016218839520845317907220116306462847487078822842350907591072178855315421414435394205137004871671365037518615747503606821900370307259257617835114214523711135725931108822623519089980001869253257146212176397200314955997007719223609384695689994632631317471384329672176783311590791180191258230287620027008205744562224410058745828763206390541624393042848982811658509242320548388736806639949427555825192885809394399962388655050057928662242466843573257728830065601739829397615475931649898360380297573555519166052261262898663894257140097609166574113039900304085020361325228621708384766901085672108950831217031057695355454853992128520478111294524066798959791402131291936505259115489230768446296381981454330329660979275365277594723820606812495475336587298763718066596265716402541783186045039738351526723421863684426397175776568878411522221229783640489407051880148944650280021575312104697144315217143435587070382293521892002739642446677147394878649494347334893562350009191273131208511101334430343564976671223832192707016609309898329660002813596669621338736864630117947569372412682475488346095171874547666998775050310781668938643340189060986696636119438540989185104274288169381469151555217830499325488218534490219858207923678468393945105129108805123795262179469843412024844331351821684253328855388558281683728208220020727092689682767262365195192762286021387410189241410220133028018943697979389454228276618227732251405028149764044356394948725633120453815021513511696966196849493429273659229182035476975506125707618802435986292802237109072956375077503367908267568867637693432586803622078192072959697558165325284141510711821636739572976973448545595974105148992210698205096469260993105216928274910508941631218093968724604424154455473002857432098092600228720644440380370504749173900134642769478712978135358812955261130517174469533934310773405598919972126422411110970029740277202173625754547194450207961288912968982611372771806034323182172696726114191244205747115438437334920000814204107070933563234940229783471266903915868706694387038725623652673146582072871498449189801857090785259597819544136636194381070499704281109155309299585748860334078691469569162387103385511776567349548009274590656691804385183558580337569041027643116698547898082036804431366990074080581815609835090200162079250804356790461515947858370062351757395718119412281764648432634115001113463002993213569232771193772611509344929925074561746141272222222140806672939809938791538885034796701532112109699623556339511440635547693135596705805657022036927576412147873859586331795772818753263128714902876134754466163998387446901895630078960141325166339921637492119454526420083332184578584919073526958345320479313234483794868930476432908504284686110785742906570619124756566704641041615936132482812947803548294453998255723006206043472522575512336136653107724403507783268038342899696557264051848734536163450097563155279908601395109297861653899882115537442976634504716312830722017744947452794941912197807315225647116178673359960703163103839820537699258551544638957850267428354725763375089708458684825508887963416160590357226626931522455078583043623443477528625702018854511585650995689213177934625843706403605139973385300657263761173892610372499386396328097222926281953645747368324497697705228385529329664318784877797788042338254978658128060472196372073193325464565468570635043135966878172670164429950433355376016138907917896877230648844631009179521718378984798528752725685197188550137402477326199253059977790420849633971952549972365003382976971803885428328807232476701927081274930655063472146004316657970911158488763395907654094746150779552645334448648136810339376899226752870316477415388344533019562613630270807889035494331161453235004900855563263233991908798160842839539621098634833654144168011103498823329473059511120427575605148282233003783657909568855401797091331549730544496494434586448509097813456608904643089845941441208070468664590189171373915780504951475203293551400109887462235406345320742758145459481595622259151839687602160646037675013230612921443647136507402134475110956574131083154476537226652636469215481667971821949049377672687804267785120761282969040331791956202615605018729215665839790680070560925676275374068895741040410499819010367854804719622490180916050566079666559402359126152508326960956498392598610347559705612223405151288501574655046407667168213448859683995108844854143658062013757016817178024133677993003650287157566194131234710918451150544942768965995810351868569026654845804541710263400406858906587426203418216026779836886457153030976262979130718394251165069638435731102835075158430777156416205527851671299154544913818335194177278195301822680842055720143170747951353728240745188997934661836320275163023439284905395498399230548974404835696627337024683717583246727424694882870341715861207304067626537946188421128466841945269890518774844054645199327772561970572996818447128115781267265000162644339840365239249460050410689327586187659307366193235726661491273629359956701606557258945009307449187181196553016910628056055448159996790965116023164376029431048419771121982143940037446190262665707130395557238777754262071086962955593022864130526649023242802360134544060297309896659353267024069790317615544082106144658742864626836624229793613684143620404795018994750099773584886439509806378217955237658769018758210399774800258573599640642246777980115654633080247852035500698239816525709826350339751341033299002949756751986529698227328781258327825806639065024458104616581359971918368528657516658377535791465162117060955338640434385517981017022024879630847438104175332266363200996868538525624558390598752929228819996074683351408540882542804199723620492237740111024090733656030993700100366584963453999527047954574234672924045441897749951434000626853910089436553443676932903855301567542563185315344198790885130514259081271867575395796794126343107578072526369503875808020224306751953622690941905795249299609266682806006311425200124304369357580484797837990663901602856144192884862185816583496919681273309836735711421973145230588124934945435728715523804918474742981456907288296126149139541610182305060372727064032502332871882476513952063260170772086105337800135432850685663250213746082643677556613952387618241346832914802344380144532603834094573900087798480013518062505755884966241340481592459118952863181208154333820528483131738875467371473895993885774066052511939521181465060165656381704480038774261500357734276978077089326665532085124017920095255203004946115798946886682640018481667807718341666190346523964147950081841602337443980664461880779558180208688464326774001909946383891201443162515342048732818285207237481970176542795055175295264805969001065593832332330520622747163360063669851092420661094762007283987957687344826316009529038310315101511144988533539412950294671893580931641228896672853205257571605784554656081456732966265706382973799327334728276672256512632442753589938382708270528290705981954926713004098030397040576912314548312604302518108169180924772710051081991702451949011845298811954877831791932586308306140627178389324019828212008019042513465133313137924736412362910603462144341064535698618807595008862262025460594324996877242775750344044154774428835979375021260575888637623986284954796543284446314018146294161785529839088417886465867053390980010189896274188660959920791179336084185214626776418646594462420389533004419636017509239560575774712996805981735088888943717151821490928959925512176313927597838466926700753173091881359536390626567287692242433059888679946917444772374348006912344213203028413279274162583095854698535467224920484218820295863656705184759071897579997821385653673619752294541479848888539831822241178494888212535197598063203303590797384191467790469341742725383844234331337645476776547105767435040171874816332201445270536073775041924175736877331414237854179515063259760143074552841964838582587573602702847696550999986035638308731683867922951739870445342708134910482399694949540240800545624859734788103960194830211415906662319823874657620281966318501799705428572082613490616025393394994327835597373845902744952944369522483402647324230623013712177023472829959925119488145539728746962152626703207428582952380284007236500301150462085653907325596400364765989978786914723265508683013463409472510091260867111357173902035003135628372344543320715034070412421893116384938817272827784577532352099444759170683989415082947052198047780828226449565817113300104957456112880450082122563190720694483616885671020958457369267122018277868265919239254841022209007355104551336690743101760543782305181955820854975005248036725073662934423165804502306662208929930802481987741890431482297034606098429378465077256584936385426330641131984425518609162281703693245851198318386359880433312239222930332569732236861532358081621071755493237328790749489656924605886091159417199575773726612428313698230342644617892287354804076790179522909895589421072513727380875729478837554600475898055616796004099017599080729918662352646475450642691855044950477433587439980064953427576104186913261963964550063467139793759660706911773554667462270006954426985800665552886148826321252856241890689776635157263557970203006209637249125454514240067102241753010271841582561803982637533783221573898991183572374708660619253553006212513784084006805339455913552892657177175225969378141193881664466880420535954801559930897092593710127639930060619057057241259328073658787784205952283528226334493837520874753113454413579877933303115722657892225343451646130381118820162729226052403483449151477860553099129458282097182028111316220817695082011336901010856138472640898786387285914735677848222966470302694982934526621305483418327503545945613218439821152475355282361407419861761458871665674357730837560574632910259404634384585488974334335860208504723280826470181353788118114218511006604879890841742631289256145473557546858684241451056526303360835610464407872808654757579046863320648839392235313107582698934314990466767270672820743879534842101262562684463285016674529772274161228470104304055084522669782963071497649071413062604895818483556492992110644295864463517284318095223268188844632901820299893898438211540592579248193678728343138003770372021165278666538546449229223228060849223598808471489717511839134070122326393974812287161131441787225343455012746730799806333689964411869014188594773622342433832430641583077227109782497361126530667240618567123884372208316192160146290350678220343114689088618821965829251839875123708441764057680661081980473304412635248550596943931972736374909510236903415261858481458158608517279288295324721753203410026721981361524801222787564541024386333155285518074487969962434218814941118399682157349780413653851696848698591110158585814368564403080103497044681521179022089370799978063041820943900030224716567227725363912037445081790473172077213883144535919211786021482004761205149590725491947280277484570608219114997689877389191527047779085161171659607866884672848576755103386040038350577652206509826739033035488656435309343658832784392280595139208644668344013507781320286326316152021703802624619540509895867889846963076242623810001600213833328301240237466027650590982243325299741847108627902442865764088666080270054586068320617994007396768930545619793561042497499505342473186874625630123189698031597638282926105096166634283519588781369632020060421899860833838168942329146865806193266197976223267843219748807763936666504667631551565765193171238249160025282577837521500874377590762423927541326546214217907237686415274664753466661053074942501935340502608492159191076971739397112505236158447652888657517033643493224818043354300769812332290889646952832666303774480662377437589294998787435040901817589578275959097899989994341579615418262653424693721777557915919768387664853572228520003188518426460910734032967529608575954066702152450998216094361437146284401324056632559977672600374402892806731827084976641505006705417955177660676466138352537795892441606748188765697881815834588254115460228580612656964232440439295608980398142663458811006964414369873465634111463553843737281323270931217977982900856021740537040450216609624485488778032134023446659861901084420206499556525525997546309620704279903227751473322733340321654237408328116855411643903854716192613119319877588752918037443177158922645389151240310246992532185203509485417366554140676291093464369540887237995535108849088398146127872861102716962699131054828681079469124223189374773873357639490892121473228566035388232588724786963942837056253662441539901469745758486262088819028436509537065075532660546711842113196805906765674219257361840455148379285434987854303060481576088644602041890091806660419250633969945998456555942568619980289235331339598097698238291347219912316406847203853559781709003088620959651070985267255404117245027580321623306473864280373308431230551050273545933879432064089421545947108398076616971096162286390477343463908988873860157722374165747359040765085615920981565787375307054764343543068833463192275910923232879383158584677569360606314006799896090839047549675869681481043792473794651512039290383308994839183999125489915586596369675572479119806500594409141981842248315457647292573177436368723870923925626318713530787972448624553725731752096570162203675432695374062687193643925084622257252721641641613048365744313691334084928961658519684136316939319592675238521514412365760502187619620013752177188984518769253325183220456998678120323471037792938263294665746237664346270600495681364457904266905813261951995325141185621580788798203828053598051747863304740680250078690081317985810103913098190246782702199660868758886085350706776329545703398988134611783675988453579186678135913211255998626607422705891714598239323393391557897753438329711635438466811487291947506902169610582302656326487198099982094001314944625347118469002887522232799645822488889901779770850654049108939224775336763510711343213815252126194248021301098174413249378204844139615855399271267844362614170084245276681300795829762424178260396489737553070714566754754351388374929106353295706158192770983962429007509997228841740404245956205220731629201594902900404687856096349798853759469248659516336489075372104083226399347543035236573973727694018113656530912235135992464787799539379502929620571185223665807933221908159653868967772232850645899072544064700396810985069622111966809021562124879612244629628551532098347723168189529579240407773362976397397121215480636204774993411532175046219398280310662579351207317254300783645736260372080172154908760046877950686980868096886937647599333541406456019066836711548507504186433256606723116335737317982530374794468608369465980652813559671623823942990450833180167768869187791135091325793530918129221377142422901974541349863262167553047829621713244412501254148590754153977956447670430474610716684932916314167748445488043606055590887930093978632126370370890740121684755753914389268701984587062772288505484905869774422219213555946500226977771249982773851883706493281413275646365321233814260560189342092016293710928406126969851135251558972940945518222678521017076064504440690262249860804626815225926438374032942474991728189793299085980606497623884157710324832844700252397763047914424296651857288714149356376435907932762823618312883890614595127097541196636009861868818577264342592233779984324699024818917644638680441298329347916546800979637477607705538420582712491615991896817290132707463801532904947271176892638182634483295335086837907452501180702843951998516060963885925295524698023014888714909107798067624650925087640776191206315333184635028279230375032025826016252911313698202279574205774326443717901106005622409643659815651875543295523345841442360813621886664694830512186413972904189592089881658292268062404920295223213631449324009309029877367520653694050668908153649305479249694838979935549967395781642053920733825462100805804596813519536017535601840581625111586953034259317025709395718580629332580460760427540140301713985322204261429118766442240164545227225414154460532989979853499643070298719519050174843455088519655296382007073194265900244881040189149170667943155276417338623564474970159095990303390712931748120267165081518457237654215031286995350222778676777191171308048527038532797765260733286548608600500477457737294622066978646716709313595331794542552862967930544789622844291713850010977058026125530982251657167905120618654367118500908308520438960374597729259899961717399012419524756424955088182235842372955762308964705857308612012606547149388392375747326610652192923609871779583521220121776252609795453999391732949024694041337114158306199235518687143261244411685780892421894036221532552113486452163355701825879941614078475383892930402507792240352179891089255284844873226127119914732710762941463386243524352983969407477208853227361562062260146074026976290137455289581454940168541960632250607586487469971759388464615676871558686628957368960139341105671075994105870472207477135316170958193173372795360625060571393024172429367683692427684859860379756199746104085623390839535874067397937293785103541169734271701786022858329754841671475186272840551989373272181012537532467976772976223155783159384692334616936336490958889783619677138513398309838766682335710247583607432259841825100482696254302909964769331405678770422498064813616405116970830587734842913591429353923784081246551936142103626891997583590754811232336561883317719661999657657493939682365315760160669006313208619542585185664974924068320597610235379492568834299063469928098363186517483422062866222611586787833917327835349871958647943373229589728391986835578037973924863565015823935963069004024732355622006605329223840050613035570658104469294575828224533995346411226043254457492680551687494464435652301368467464919283795260855237952772873490760648142922521543949346756062517496064015873920839138177373706422262561984922248221767693995966077305181947787062758193919866755297227744269759019215533623174433218295882636036138532634824123078425163670216423892058919920428664478951053846717238082881049100829066191661199434879676557534895043848939435565870312582676682925719923680536510383914904573206571452586846471687586137336422076522320118334141872262421853932620626974465034120637645851957397113357207452646497406996191401372002964857682697183817117221632135822516105422508549475381809561914908472320963962561205437219273324627905585795869410119209171926729668530228683585549325463332149849894668998004899355097922711161816266241374483842788397897213838888974527340697197915748873506309181445140301751126286094083615091381006239632650449441244390545254635816796036114845713266893762331273997566862819468867976795879960597572457272280696888560695154270621775903039363017384625725841001383096096036502397325074087448912850580312427495818541124467760003448098681486066642886775294177407509314699766248060145939928681138224284958050870739420789174260533203580173543629452419932324320810600506967993824488738179310461763196459620349172237908451300863093946010941930848559532399054331809476334348448910164737959984352567947718740229801209281946146757518225651245848753098302413081340893123999874562360250972181546766022481175716294274837224039236569802492047940127371935621227896654355719286272376767063426545006481139672140056993256127573482805687038602787707147509501034507367503607025747985531006966385876288844219174939646514049613520841724009702033439713059517849637421874795131203204390582225537143004197780357024690253014556616696501666302559407719326044731459855785196159549076003268266419233933090574078626845500570516217542284397615041005456608782806428896106738716782013855698228609638279156158360160599406323780023324657456886632321008137073811597659611404185735345517824804380979172386171749595407811039749788359204870804483591775233418202028285952955736983708165220435485577737762909802425296302106278842409773669939382248999401952587759402468827149430584444018301347359251326963287909147529173345033522023037708186259414549519286987374736302405449448500313521389367070427919419610679803544409490237161287453931498465047050712988577849955328424028854970031267558167763585245917271268230132238984277507839577729025958979325854651455215188928428487251768290748944044429406565856991595755945955219546037107096265846184714357966202052305688452914882396812481278889744836917269360608041014600631997614214516680788787871667936352433446305586789389283636427486984989565585683972978351799316225051516745543829652551612793815888973502709032111201209637001498292346674443354420833595818830619720897988795384824778093448289267304856322316308323587380053171867970382069158313920866106138768945159778357488706024580183370527016844687190778081057267174150388651524332034505326536826289362756027444293539618185436486104238275714785065710164802315474855878500675186383748390004924752338993217116653148674713261196896482228323055570968476306048494115860804956985956316308016846026735826311198866411013074734067150136752866718766766398032903870908178599171062283056273790807047191817602420849783486772569490462386013441498777024365644306334106888185784702492610600851667717585677034399618871341401800977880131714792961659185958440076165169430896278474949065621647538884347328675863595977229939027520405381721738408050222242372877453642093643633631171484644836657395449390827402959227057350098692392009850077314962789385495949880144347212026517196316871475747340796446106345738195240562027739049377426659723547286264028998421510676030456660481734493376994274327393063714627614863308823684014761212653374679098777411345731341117653760428509797610902460467674497666199642981335904039426841823856204664632443133995255459658880425221566043916502895877164032325578416363394886934259093117887107186201973500945000068024810871167032835762572639302913901360450467579631958651400016813610940275091248861147546490191508855065839846901131796886786738135892618436066202840394650632126456831536646945969740378934369757510035087995029942294305915429193988441185372947015336409937454408998049347808077959833985127149692249698939122947147977186686333548352020546652392053825429332844870361288096048112161108779827430958386395945603861453613072701353427481392350629961339236871044621427614045111008050761991185467480979139176371599496612994738368375539244344001448502662182056606827690660137543867663054176962526419490226839491345796756739991372698729558467204260579072527217476661796878910865031815008199627632364298481348829331409386872689211028133591241148555562136366215123147890319805689191688400362384848348314272461551596320075074221935204649763617193419740788259947130284978103690191568063731766857978547746517373788190213937703152753926534254182177786769401254332594005988082630683339833322814060810045206412897656679990672238308367718074756206217653541543617970322182342525341929335971068379482009096924573171619421923198944762196543599063909601837935708301950635729627728806012326964974015982181047494965203728345886143624537815191584276018169725467370020070039214370003339850326394282086575606302934511894028602916180172663780912852395366051843785801770367824528706343329081041410790472551850108044150800668826067455249476350504785104901180862963228520650053288848332677965903858963159865322498120560316445964643543779693710332028874330488173002589387916321522145218243643111081085068412134500076222162870581888785893974441923538185095832485442628794782164518796322505379906154840781545341428589368393421686421013205508008743185524340583262107026543167792789782434845926466726236878236536838340693760385022516328054931234190447583503237818308404110292643135619349221893484412795272183822834159803243699743486123067540503654000175112366338146639036402613660894629521437402712847179244048725745317001420083503882969533441034307445851819861401533573394877271532105929242809352147512772751000570941296205878968964484964786856474716743885825711430078524928706373805826562026486091714073143061302368124752649083742101189853185272912907935327540569977546142018822198780891009745571753942641031175219872908792730797682118637870861462873576423570353605716342629431437509113952729797630163415062850316167800641876041513229368205478616467824776499627850331027215300052483162214675482867724307482353562090399586142348636667295673451799991002277364082792542855684882080053218031721372891961860646708897724553721283564964198394211837316972279707124088738954099470359347714089867723013852867638174254145391925026524646567040059526805660831227493544014263925578016904894690967755730400417132605949194566961498320893621621096940162548821888325698297467183344723182872714446582979289311418904417229808293762233474682393483031948534311252946751182791696295985692479716742061653143963089104680882709949788057012127474156118048306664147487592884087153180739732650523640589427761526871626285052098334554562715137714185804446594293904704123349758061906500566481113466909654492404699518741195267923879906538189250733314424083030723817537640911444054172830345571962417670716927627668621461588300480991688655690172558879286624677282673167037800877073209023172860005489865532922126025222674422380182784691844681596738561147429603931342432469438429109463942710555351350708764217860634816235359272982728309538376688213340388679172929095496947325711177831543352747309720285377793445188448333635826773005185619166406728923082199104679406174944162621277234942924116810096886324972285806583280738771009210137369412655782611595421712843439554748368096956926415916684993035905641242680221585636817547596281945709916994306226936383470632415162568674500340869022926113719295748755729095667549948207210981137618509893161668656625189389712181309608623479774161305028773747383164317530959647365180100827690257155480812409623166167614153393079109072622351817224604586852526370223572556914460545303092607726832949883055013093713445669824146929056975928013668516094889538510419680983204443795229124977224355546899354562477096158729959530939751994573506088471404664235640256049556763753712814723588653276522631987109663067370584301819072784224913709730201092860837571425136235139137822653737048489075973995851205655381972814153676485008750056505996834507318276429345923330039024596230329083591500687787585943312786890702243279764317187057243985669976207584077188956914489269812773130836036241659122805161493414310762441366581866705155270591937712413083317992023263062657955979435408667347774742493295759548765836514564847530547597488359887093549648383072431852143250983143730877201150108159119463614683241548722292574513281459976406724117927599586988664665945328578617347293678848386695737767590060427789519154893170745329881572148073326636312901826622812965895012008542667419744306551130403798057408930915434216080543505898140956829307419631477134384185376484507544657682323169770313687750101323594497550063733131364296530531168002966451986284090527040266988691799237650685285975799820298348901864242815996916605962308011402478015003849141185962172568044424536289907979499933157367803019732178226795581242677403278361378969043333352146524559065920886238751340670474506866528769714537178566580365780211655761647875565364278906728376817037395406114877243425159987790588527606202310828965608620426312301728688723550156791927771549878039468973260480524184979267237245787425432874212740798966462185833728788897977427651856318186154400320632690899141532721811393718062513787858382498786209960344595438395965302363793196425227080165724193030050799144078848134337285737946812614647932619173812166003528536108644043899024166713756235317706920304640095656005670472706096220943144746635170829574602453620594620326464387110565322787817200192944346173519485374219451124024791015429291394808704094878560346861572634875526570274571490979445351136318504832183642490076626337078775234724832397879275716220009704251474741418026280561030312286156269898129190420077739405498258447442037540607346710895648442615038099178529251352896351609464715746741377881733338780872036932757087876327628523273094673012207204719256151178229740480230761369075457790114162340938320498780192337123870278739626767664810361146188658094025844461120500709444765621976354131110444271619909124678559816482476083424231873864250970177164653289590019619448723851671206785465748103219531445389450508652432054225697405085034559929210624373815457318262709745202957970759422489605750817833954893098234419236039350032419577522249772690747062679443466896248397404897715630271796697569133794785817015683493694435409138698940561292718180789675275340160440639266736911910178256107888141691421599466899319176659533778760489872618125477992712756701426245759555343276780790385334796192434186361022138977904192659338625924621729315123346068363586502169741145818024560035061841861859369466709043609354676181455671915750377379156063220012765634114465431804413556537666247138700007826694683805000045184748706185484238107478530086845863876529581721590169377481029296172782196556145271146444749727878069565321948719209789714980550195782006221297626264757130860232695095627803296464439534520693773105536146312176249814178584687026178661486081936943938857603770185229637873448678340308562776516392111441088823096884143274154433508494541993498961072098976945504555174152266917720206879960725492289866149737216930452693078254326349142488014794157188304595312920845630644388719940494707987789311030894834915297665190732494154562960462212753513734985395054443044105950819964644835122686252884672912773923467996089705769715691834034073592414885519619828775247017765028126576496060681526103236813114504049610176174046264358404886570708355816953205417423728380361143068348071958476728798005672401219825810369175117285628850802304605739520407938339625258672023449128882669539279233535558008060505600087865429306586829579538110174078348530885004828302991911740784488983615737941320304732863850856682440427070864510584230486612421838565685601467890056916858214921099586599300579467353667984810348552430585128496407708386592283572311922559267599327847907808334360728474086013450631566765679442434698255414717454313296873364391239028405977569645324133303103725564503924662649432165147245071120257158454492896548170341818469953841613021809849355225525090925614783985077869296922258077074332329398062265580455257766328934943503936384421621048983896506666427349206063105993236157236677176386760177895709345142723003892128885143748044216530192107296726521000232663630854565307048001023193101706334959790079276180483222045713913335871683476462205434194147778945376979357003950270190232484722237987597421116075624440795513804254592873731999192292503601019952493538568914906941012084316231402338354396810483677136847063322568613749129382443977832282346569632123138839028396233127508800086268879887350065535355208534137052709584520604841613786474730511132018724685064093140920670475000178308425990859465288917048704215497563836189143333876321363146122756654017708282030468581027019852610437833853828537164367744448678216141952877548909159298939627038746763280525845214906608409994245186049163154461244937206391358007051568012670860972475679314416123523482376630165887620513849409709620625162993403247281863061973973856530885538936187020181132444370443647797138078365584528494476508876957351209701934770485153094329915623956768904401297884579100834529602143887364734659475972722744656364777921358202937112936868840653688678988899002163551139919643672126389490648584964247257285565847161957300300295283473187790857795887314646704035899508988943145951141734494218377522971224875128897159921121476437868995194811367331733079068186856652387765795211305736966169082772779368092558215575300779146187318665835318619387681248734229333925390135742123829812492295255332584245848123207112935240145884101709021733034300428459822530614347458924783938764987668159239911785886967165580352994606552750259002015954231927316797927746076202254387367770111277458834827380567238382042038213583581758336392271230161469057310659368368666397998224023425360668315120438834094411928841153103748383801289906065647318676682510260779906863785564330441800582788715511829101211523707022562628672115942499910343338712395739895817803919254762408853331469622158963089411904067025698982115243593896515743752974254224740081244676717663651652483080663852200229988969301612459089049172364062983749466826411754997460285757847117013088358839792752323010169926693147739860676791757174477603794826433330264028925503229735799805948717410246472154716637833361737838238226206365882398324238872746423018546492542880039567364275609885135513295898693579906811075248571723495612713830528130014038882293976659093492334213582079755290006458774817663789184592876870796311900127279706498816023236371519446119982244281108511269387310759424404078838925223403348882305471166910352193306456738782065870835437529950484331961231261772726938628038271783200732188361572341791402874354341776508964288602290703318143826695028457373997063580879700328816352560778547059029082375022871257286531676298474476765497903321046890743500545279481195786276188271166470833194858690317418531343956598314336737709253498934489128141351493218324182003035543297692722334033030580152671277492395003895917527738746768234820953026545139011786500906672922877455948691964007371510613094028872263354965193534884669891703773957395130501977070676407926617584868406942237247658226988528143158857860998569813305739470548384803907137677621241810346297468126080993976674205085223054223700529465028597616063712337278823326303884195773981887686114845562899515438977826639719136973028793487647353624258467971476800786871623438807345710149380931927758629628543165588477956789669169601833201767567382438845402665599718225058402320686460275784081368162066550128471135011262780736593875584290354308278183992693435495243276077131038757304631479736162724973931506936023491863754182707216080968874301395350289808434469282301088627183751564928176910958377952272126317361913353995692343619694543256816121001540619744194899451977109397218958833521127786679020967246019562813838583554657557039147588033442768139879367750185908040859627628859191781773183498673571890115388985277848473628644521692846766094823843779890927214263641036386746818062766606140358192435640959174886008153520753331042564496527751709428046078097134008518243147197626928689758121554303002951615122218424860286855506232695110977097994708463763280813327563710260788797264293279950210023556158937189669497457103238802282285237233730347576738884852433030390752700377934493053430364281233694947283881585015758722736537377928926624283427145818165801661880081447984560405400937422165737421989182579729560528115169949660704991976383117268132825145620531262171244951659050944758795675697255845046710320761387253275541022034684985757403833128834211392855878715958866588983321631582615736136663658699596987800445088993151332111742289482275110884320908822968307822585879268137804235566500709520738035290079190501396318353427419336405889087035541391210382216022020568632254702556103451165974359995114872190947834525541187407643636395754753370267338779953941124211273607298899136720790496093927259788737360005959039706323824039745505953143581389580902641453549722295590874038907805685821067064603740453781168667198050132862895351487554561221318487298899331325593801190812555382667000207092521082850680728433372879573954220275807583387078740004246392636831105085779636739476409368200473679248496023306093831855976848253331733888526981626306692332227930980054625251079570295406177184531994469825171013229159048744446085062452132754123425598639557937605123922270585191856389038646618773460045072705267329316840501650169435407125699004012684034898642799973698316731040861748995614137795437346850324078735545322919296336823362704305469499299468876447837674841473971037110415080868604186087894288159666316267980398878361442425066999818388853548098827690214536417461404584434240419385512705150607067080116841728947614042008924190043893000620713867645985559306590222252781851114166541867185360038068851932446218355130427687342540087886040601921873758055408082249907841613137764346547872558834810333790909816304790502107385177811040316745559759452903935948218280022078484307692683124682931260563283760785745449301679675154774737000635217684863898557000742948159234858543634137452228449622872812841443094227104839350946116081943115895532769204579707316318403446929308222690634916186506885221692610567691496952127432834893711523134840897924407057382813928331982954966623464880559605052383497052447816559026287134446389800113835224835880999573046309631100826022997496499842370725189636507451846346291220492080128460586447304831435498072662583882601698891994718674252831314107401608054443912498597764268765781567992666723048105814001038498804929448229830976318163937378688193847478557258458791504624294071347714898630686074218745152490355036449257398975859277788169358343678198623792809296343267126262436912640755192250312945654109728308616104201132323316099582371763091729812738085327566938721855738747734154007682709072820661201966631472654231662376873382023524397672681136325861464078122379280560583490646443968519052389017437510855148914206056003130573431336133183094575507574987483539371852790416307135744100956920211228031486500057618636994151374866781630125528958752947358588332538354111020426047403303549761541911579365385161851367786012527872929347211787650096568236627050510503423035027549540271921274799551718901563600526028217305262032539685958499457701902867775278568137653197174739602146095851529253269903261576105965139782922239600256935582005626774407885214739540985399470473141613191689675911092330203928513496315617004062517818089770661763941823875913165964881914793541233161606535616087020012702080293124191653105180650270678056733741039850968061358906940511114871078570146353863324375460379947040760315937174922412776747960857223834395214454898288728306729868011176228404397340634772702275109625559086827657836415936648174497996812779916530927536086272299082902571989606980007490861203199962275460462602699586195186396937880209022746928810138369403008243394899257620118764083927743019283935819010196125006753080327755677255987249720620949905495318525875685892148449394047025506150147974260275913932810415686650085632315634700957685692422637648192822664255066984457535996849958305563056913868016514139903163082540688703691694014521602357492113110305442208642840594313807126038289069984303421608814912430679493555194435149159935718058435494406608079295127960804535836443756594811370479463823101893565334546884623093222442786513271731715233206887978656115371177653982921302378308764012427587852194695011002780951781027518418225040544524443492604655018545751402112716077301454563378332627551944719262235682097735362787621658274189041460784651393848417343911828244909508031025742364104230595899884643595443724615302103669534316238818913572781334108028323596388890169994403788258916651779779557707820724946371226969712840751480741503918308358061861900772093037087028957441523560669859023017717106305251615332046845056442408414947142667997054654252812052433755384768612424052409848520184995436252312789992518673673343629856962729249493461978210799757134682106815571733087366539141701217632204852487629267348237614804498247504475487672605315381085897002307456308947851021255510428499221717451619863629298979819645293348673091233206298614751257362032787437990280732581300084212635782467127375065956197829718468056957942209464788935435403373027361945791002438926749942231484773663916674588818023693460961819154680978831100162998468235231857442485892307508170220202035701636341666212971233373401246972854443813231271220635231386112112791703415739537118852620291355808400394154670838853911879850664681112737797067315311937840554672531112651438738053961629876301563330970750559460007012712276730360233035053515787928810359829588245407087922808775619297559373107071635778228227554773088235423577076813483821029941121510009585033743563594726545944993853521843550804113294987243999053978101376390285777589318787942198864731429448173888819853278407912561451051874262513879613914918312880048736027841196171796046775780003270275302361931114464652170171031319398802832668153841244613209295886043188962123341948012568031471041829591399367960027233889056818688757254765529507110111306945985642254688123860636714696669106378418496156720008332266806825087921803072883000848989789480991944711597865798267702802557145126475073403050579741771148742247305071915185335113535043750959486854608595335854562140681702469848068801266606422456345939224942909057905337276395327741535360626121758493890046681699736500587665071757168171577834933898216601423338466896057676907200827645156719405624715865330596653514208844194633165467429324989859629688807700543758766621692423023899041229402038246036026095657281052488372602927506667226468569584215246744449399969573952330451512140508751267126690526755253043770182471417974107491837947730329917783625441757427549691628276838614950533170800634407286674815627872192667650232596790969720911808525584453456454055500267657817393847362576736061373858508899820412457638764444132473470451537115260563017680308691694086417455576975484767280891937094775639068400843379955377945309085903333418870234322567221263543496741835432337406555910476190808821283044716732096449363031959872911750946761642546484949452176648602837927494406809640273372181767015512248366139498682310397193356517138652041982519561685410956493345658992818106720163513334511924639116261357415815945129745889919627252087313530502566221649927055137245410312311526419555975854694962412770462892413370787191160032730803458867936748707364125980221052515530646498914149950083978369650377316746541045709347128179004546027152870083256820927058028972743490192840798640534115828665047831488725577319818533023991923298692380493144317021038104422921289996078793848715731645600947168478395751557070268273680701830129275519214897771680541171950966231389439128611371805317115604350208141490784576861957667354209351324846677755422943356642124523092196488966459797399695323535805591866802351018028892518766417248084917994826555617113962295327429285496987745746224363051379783855055688588344192084345171983765515479045187034714707236612900515633444216176453000092037713227950104157860853953443229145102477585976628252231104716273195199930081229235320430525035869920670457264512119701838819962841893823291195163664969444251190415100387412634596570400744279911867513213324704216964720194113746154431666084283809843650381864970179123125470868412839454677859226929435816591998958330139055016612148802352664109052270679578409578553203667198359553189286294164171785766586969409783603943221472263732418617807546732199031003793403750298564530719248073142019653589100927715690843631552900851955431605115408729570001264861297394553690540918105188803483439841301095468771516156571254257158052499707945514046789004878302679743170483417503989943579098932599915024521812972257224890349268386518169121131272635935766025653381017116358303002365856480852951527623104516804659688530264367597013304326473827088092709104949429590155816939434013362832187885110758113616233162051609449982157044529218450533927076036369204011281983466618956470201588099606983029730329756885703763708860835897448736409439903724460321411533100777549502383218992263892867327231831844165644260680605839906498757641186292260586811764941404956092428365135841297005307561763146024172816682880286895143221765931887972108046351777561873522374417885709757343084472688049808481860295223237031130553301028476789228267124302682951634226211411656856805338788097289015995378908074901320547956125024118519034175729470542819468102005190999009782532483648073737988745066828203326527867468428957568697008169993751199969612963963121234970571490440786085841895542614540565565928849629434933547582272064705669867936883513412949896889002438347029910041271514204702359280947125706121350800822248897155677527937774799890754565119813003161341048904578049190257041382574160244040877504257972727954257156559497849687922179502723300260926468960508871988312290553933691784508840195775637913591620529045371322238986507175975045616280790183018121684105549881118713749189270472552003553487288388271227585105377622417303567483807869244455587577361530001799872498809591224365445144502793206637951265155718144452014281718421110815831523576516505482716186558874689549683477423871497267822443299380603123147074694820385024099231777705219523383256682607866578457656635820674056992862966363442067019158835964079639405476365289957830614719083501469967357454436136749592502876229256566369471064569332493442356189771147220406370982980422709076678022780582684885356689278987590943984002685275369094811665339612649333761444907166357845055483391050184343545250631753063947195304778689477192113322791262804743318617190292003619027827509897297223756226501860172786482451361719653491541837668201131376999188087096524962575970712194048178690077005315168353757345539970941961647794811249028199945271201338396781262181005810456671418221137316493887974057248889792785244986696622486406545420292145374508072282010914017143387729504701187702353446458762863397397923250172882734025410466056550474943264253268456616098185638790687237017878574226333210576217820337256011065816797141665778465632539184773447374172519221293229031407730877244170442491230952769792367927521243667763023504260635964253066872707060923182475643886337420766153940494814995500180776612977915607681475819882451000335393494003571493361818886045385682893728627872424682834063424368783819260792334606435207062902465935890379899347866906591785982428951931742994978440870609429556476782287878901981106548293048404991634042398828845090441702505170662053645678804536439040632093207708909757275187580919011591559726847492527274732354396391981802335167486302991089594760097816659177370689776284903576016395762345678995011371622382493038086866790182418342110694606808443105405043056545934914740485804156256615144527573791319298864020768250067222614343076610262124163415685582532981803648479980705353476480765098754159285645423790999439307604780821908372704237039052873251677796317256801190492049240145128250566676414964819171707169043292441716703006306951844466328358170868610634638484923484758158134336420538280467071852979887041016441395473462972419777228606925511508473310172261559708651792702260194444564010036133331634936725580778433025722130428974176999271076592513578637031039845763118566406343755404471775110351060176831999644342220584952951489760074961404669903560432991117718055131308660095681701186959610448688499651025525447368509143844677853466361352500319265524331943045630881901528567354771300198177858601012604922305837034139820976950777916436165552693469835724847907698937847005039496493044394020631519070432870298323723454897511080875840150935759563184889417398443042228429971123219645827657950990837277885631382801796423516960629796126663463217984245213040236132187368549534081018784255442044789308977835184242409084140404228761642777274208474439054266159255002199662360485945149159862181658144643381680465257970658769882154430280432570072137771768002486930888598525132743145859026387346751146021132322166861207197283517532588074644523989857955658333485666491184359965835479701018515135199812404193715140092536658726701171212703020496369866631871648049184495982411250952243523899066150354003838705243376033400759936289069566781575635344367796656969887596921118961888613416216531204399706044714464107004255193330032850327012835837826108050340272609472235841746385705323965303569136456273379484027911637660690642728805001285719289000390479339746673165834909012263559945383299081173757215122135242950291536520004639898218773150807404449723521238431078343249339088277175630497468835901249839341896529372043223882251276987863268088163969831953225775160056737098327673606316234587180711921126398050604460295298457167687692417727752658559601762530417333994302795220349512208527521736837978839606592078808080281229822304146042027042350283781347762089689282924797014538053061040546040578762694109080754022519140993507498308052791388699907748399807062414098534627561375461564444728571368408629705539871258920898560459769383454251117105626380486245930407025073336434565808609524596794259712155536543030101072413583111061542077872496015582639610015106126065211009120857786326770657025896878788260483636706604717163778922477678410825561293409100347634759523562953597632752563862016590278422445424843386958789780510959650834688782607303787280340140475723879761914207739373513591368959538749933304659017441313888861452951561696802102390567591265872342596524644673385838471737102547155928117240266633377877600701711722030416122874117157563848949939621361146245986177394694551886240328797486809020585649831305912713702876203040703548297843812340978280320807504242756047835367206177573790039936029594964956729545122389486974134507741560900396542358586049383936398899819739157279707368832423822148438338742915076634182604768394017036766440021383832576024648283183415371162555156070724629908489445397774064794368642404627620130937585941674487498664758980938455373108548020417913159305483301752585791967985935703209814732104233258018634486214863246534471888406579486864375861693889514367576307636324361133089590110115257435028638401923433265602367180687149796927457647240171143343332632253841581918552438993099783226185096679620980558779586749029669979352617829633893809158912078873187832143674193863856041144453464947881001832823330987953862964411989044280099499026775909417805248782913385786192782033142959327274826303957699556907481609964567951273691995443916938248052252441485641407210682126015701920775590724177135443265407523542463430162283225913043775249997918650830658837035653049589966996433980334480379320662299878609138410120773682711011847920246657459049811722248378498841047624957731029944515861424255738093356672626834039777953664020951143722036052809464670978370457861947900259357269303248385461598561715129578494704612688525460156527264682022445049081396566996098977048404445167117066842293145530700250304181024377542545676778403410724268199540979232475013450858168887166929898680113210501315587453663549847845665348322463464770010530775364946324994888991047039732440417380816051146097000334966825639772846235236692594554943075476291956907686159659789882697184162837980812500238823632873446550154622863589994470319144235717765270205011318901947027106921454824974600670672371216124903524032238742750044302739550137594613042030771803481120811120645524936949957992598824812325388436616430962794023912312390133278173337013330043512904286430305771587131064271442887683722231624170469329338830859332074417523541655426597476033178854945027294689808279600839499196564598970422466338033195299589317989118932258749682278280554472964477740609679794594544642878590266508747540252643461634078775836287877906008324765741951491162977317783287449334387401969896832855469612334022110289227871111906658236616587102398114192295937982948343627137493041863362697090678001353678953313401531000788885208988959644550798589754516271912311672079591146427784011087662257689436646642389884415239522183840636999019056903300567173888001102214443943506381878463284394419655329325498966869595037891565477445458809326380348535027077522855208996943725850446349341189094459595055358428379314848723727268636562047013585648364693988205019869675983323318008493977482685119393986037235372114143668123781410202174061307946046081986084807062888516263963395923198004253181257874584713790563786041792740158105859982581242497872778853965010752388730239127653296384390064222019985349235047675149176535791038014459757184216713981875878031040758551319960387891148675191502138292822916489229497190006847855299474868412805062346828010302138024273998497103394509992676725163590414527264018894746119281203302174280880923814559328655805275442776546540577005301497344912901729395987210592447275038775131234902450339694428325045732525500598974078133163097576331111740516956405442458566431567441591395362549384361121014591172323611522806582033897240698290616419017597075630718354487940486303602534475732040166757758566370231402943659017434524221219765009622756519175557637878937335354037321721320601859752701040643945947105197840166391808982664661777065603182585543855530806096171732570982764404891687086518516195350800276573140222631060224028308788923477576559867702476959100388197507640735206188001926149938552137715471912184262153660375185911662215028528710308819576010150202030084271260691247618583435656167494690885758592767284464185468728508143305994417403754582915497619345649785916466471033757655707970035508602584919920374720492207883314393807072535387955157974622025483451791825678970007841312260288999066368866026357455027346235376351433496138575474865300764615996282354941102982275162644237232266068751026137499825226062116309533059252580193251766214302509037939269610262286008731241165823585542427497807773121005966809071087859764323926632953479457249495990092229923698300668936080589906848223004004800031145123719226404818572516295519365325479366636839567154627664834658435960350436450225782050929583627292198122877366842820551946307292139817535243320257045647435511772482410506461810486003417910158325063689084484861524169252274654289993760971992480644674865582723496052104642204361073276471723978558641458182697383710675652235975557008440307349525845941102473936839687613730225619118735539955006893382887947932184623891292353653684352675739559408817717434576745897493731520125211790761485045832444902308756406902676084161433559441171889447419450283351567402380499466092728554770417613735224013918600357487989526202848821752628857386106175979518417316864609022564037021792572302034547065112075194498178923661406908808180744072288184497098055371740764265146340360364680178994395042256037441067409109559064112444769208490625473826857401545174989809428908427152545654179582104781955726957042709385706005529048201272794865832280163817155622400102126301293355077651409647994429729798935695897203925089326526514586895597422103766968278907297615616466062022482642318469720339211579461865890774828823972495624040222766461355688192954280269024302403018532368728445224946694993207900008751508371955552097899102765350101913770914151842647995538299949902198502830906155252675220967747725991667535699721723411853656960270813436933031842122766329192688268631787401056111710824034589130102500450334152041541962498238926418586291662208157365947945141063545594297896784440638235636966474039683349839648386078473567717036030576622409665151792002544968269329699548002050857955074537626038407951108158594378262289974582425693926422829525150242386389067095028121826703906360697415590587208323295036294623759590915210818962277156873001497187802629252356615520819320775675625358117252345420576700366430893633343001538984117914387458124113087707385148938496327143327438254765721356311587919584672872970666321432022865061137102515275093984188319925433115735902954276782981418788057971353074219003443609158140928718848445648523371789859486847575620061818701970894559845578222921875278108076223165549882485881102901692958215032916689327999982400401414562145970092790212482230157032125677952884787679820391456310805806620463432336238583327927706278475466053811360903614374750985410222098858438627424015968595322659183987099570186188457609161435583778186529803712526641694420888649007276624455287393609485855957765358270054903468978652082684373889557213123409170510795668075387034526146358574789113773233801424061782456011159718624581739445664013931595968553309491537046531162283036838975628317040800496601280963548011192452992024035383919780777128714867739774942132343700698029349196579979254281793012967065082017483351513028369614187728079280053379777668273357341607300004604483612295150975775668548738306804669197215933295465074592806628758387444006159729845651256161480985996318007876577010986897226370729140741639939334723683940986979751648026389645231061134141410620629306451722782470380065779913248901811776722703146928732643376254576861641098453745043423543325523760797399698970260201335604375982955821194486153876211826410249100220592401134021308717467248724693406303524901899884257015926630446257272563536502052364800412128193266072772125301957808618022712867989649018083165153197805351346854173642661935648642462989469236583160666687118125498865581517464182276539489011195431400312554215831055773332976628046196371221511679456047663479860664136831034736063257771831930249712471378165066563822895765281555288810336457984033352773339206544153159835837893750025321638730255211752948349232540117631880542159142015573969656024564398277929921636680874853898058641941806074117775285528887175874313469482607076887659414325246381325206100927483110720515604744648136483637614463407595889357048329025693059835142416727430686751563475581427760061874318885331752970444393047621228996231627364777231811038876060547153510173109672910187369187544110837805159489734021780005899924292866943852732003977233720691834279497216335453101757281823108074252256636154986360378944410780523982922491535513637429529726057598641214738107085172121896326864384705069580876971542301096315393132456467280527588446885194421855757186925952014148395157909204599846791528306418947060910996240851480111049401418832137189376541249663425133059791583941623130787969061400722452611948037930427755393980439663903191863500907475111753017954490031584686254594913181608633425145281193676868379419178802648667951441615108772823729681549253154972102376891187828645752295682310829105825930016712532865402223724143472385336935642264246630251427433827564608931844522236744921793261528518920965239696314087262543571665056486541002512850811398727651785004026297250376423675075245211916704757329821977640872252571064028496165384061968469935740208715038566483465792350240580741800060315855694829148415610285941475963600681223839690485096417379211814196994656297995485865768897990787074898695524956755533444505000816413714611670948330572087437732866332656363661387214781784225440883905937058446332571082724043282260380453047448775862454558501219309290507760054966727033743655031387760723475487680455657046625717523841659534343829409509944311476502667496594014217304620807054653987355923741404221461287158317609065875758273582945872374728966004843375304223754312028833095105743152087420850088485431507827746164157068438634025687297024444512522026950538404855886055624580958750547958610874137124305231003470783718709462326883219288059016129909662440756167814967126744565937250825283857408321214319238468201314811009932026897895188694501365182205852942317218985269539432492987592786817507092167827857072108087083967387287099959802423455057061585368807809461279904328273824105826928101333274160209377544698543596067118786810185110190227729089311131113950219492676218494798939993777186740187773045714563703544063803985045134788563727768720319345464235432689811010578898153239898363209490770786866645638175375007998942079749918340209016934241935397905380824672810545385413152900750631801997683598939647106457672679719482624647781176382222594741355814482737932586913029478623084778223801526186361062639844505394223193976925074134620177767431393149632563926574017548866555367273578755537955267994073150484344007624661571023673047692493768955359492958988280084441464276840225605465934391997804936407400445177162544352942723845451581801861202462869274477233459743050167539559744332388628437289846676998349194657177372138834080814642342787071885766951140551420529365628503237772587059505508023268529284237203221283848543003709728182547007674463857847341723889659114373982303084059473182022065948879981605104378668345240948326169709040380217462188548273015906957274806706217251064132832314699089175589533870269956459672289604384857616624894654424662415885075609995991034628134265395216500826212988083860642125142284826851332886131305652764881373493883911110426285365909917527500045344571232822986265466657741085203682224403604562193809583173712656501246778662232208613643576736712724859215961175370870241430735701390158901403280325454198564869178646413364586779248664937233420241726809401999923437818405248776662621594336716230816553217782677162795337950303060663274150970035385484873677708798262772696559296347398448173875886267109248247805909942241400276551655290909131601321489396317456580827314016297625518800112440393647194672762072594777962538879553854871377008696065328909363154407207030743188339331721961759931768506350988417304080495886099594802001477419934565050654638236707263659871624449108616280857620033674746710327206836760784993581471955884790237681104521683232784156065550008276123442255854710616270378727342508740487379662381029440131667330760878206039177120038327817502553315397557656705772073816208196404670795076660945338618700933583387616612986939530055834182013459071339298117048105780473698013887763124079097379879153480504948606971300483453961719415860946823149992178962579342701173184065254732337325819051973356092843698408196437978001965621357188935332558176288030520609037744580165397880963062129550375941551150176139283259436100095566274989109897695225437913707695913484820446664884336930012422867638007545103709478454531645104603045542003432507502244531603039792842147097177684333603186078523198461165675760509161606748212636261655491803281570251753048788126197797887471491000267243091199421192192643316228416029873684940731240273645564692951475171334625465437709478967949883946901109286948832239013385878909219284960187467167636445047052866920746524840170638733628070282824629357988304136071400172866214719485440943883564183577874484050059152497529947431230934829966784301958880463972253764665201682913782974010282450288665517669067235750400635596730629949738964118041930361531948167290744126319829791437953932875492357188393677973267803842199344022277171511390624560821993599365696431710534232743813823463235438377054585343900394702728097773508011009940548332045537819041059479302892272319561254887914225782591129770366219081011678111482342252647173836249124983245603971793024665048480178034492053075121881530360862778073463377033055330489673515990363341898927390353185644182506333799467160816431955082282814351925218007319904427661238006081363034896772541317971700597811305456010251639464288739483610797347277657113420752437625847255161824151381610360101560277182539099498527300629700078661647835142043781343751700411663599087821272274812676209957316446129504940451954723020996584147346870465786151182109086729868003278133833077910010411467546900384555831591828503561645886762440518737234425992757350635596972416819612044509165490472493466615065925799884990003782987278884369301240283995270819070904214892341188074477205417853450020512788241694527480528708587868016373478071874182573979123520543947797848092011110082600353395231110775640017353252148245437083063606216953905122991558740938224941325462460863644487843909640157638705144638659010511293335016062622009103052318813077703139674929871276401336648489510121331061112460192066215047336960167484334980999279175450877971632727641381014690590448055181423260720746642430201056606671150444172085443803410464872285202527585372630761803396524650429906469995041128270735254480215973785732629807327509044620522336441903351770871113501189176602954016544195760855817510525222676281229891962799411233893341851555830146824043761877421574686284887731499243700505060849841082862659907877170612652563648026944669290958264112462635833776181413988610365419489720187395329832746302601844074688392071986730756985333927742487254250002318788982904481949427314408019936005785127383318164552811780345402343227728938374392948186381742373535497101950979232693545704535859562501216530703794537572818220477779908415679525258276817011725634073311447995627594110145182282976170254190899253868002865021677490450832669238031924299984667779853587891235364083324923335125708056615674735424085772196044579484827775972231068359856184446642090917860089260552340271954784546901698380218411756236290705083834850090616340122594743978035509721776350307900141505587537531433488852874638494778680145043315160255176726770288436721854532810304100827443870952643397589182522149871884882887363127700206766899364140699676191501187309470192431038261582422222285049675906810970562596460243338788881851812613847437728176815678410617138769927040948164389440841696145185789955431699867049475287150055343573191870550374294329573556514112589002054719077306173186883060253596815596661812603373621789047702540411416458197958616252193767623572846970948857487600612950062217001833272520211381089725969617061791043120286894389574471900413648211609300758587292078330483926668665167445354370313557217069258985954166165757506088882481926695130973381498731926221386141371973823281545708583693433325393718859311962478269570936956293418651961635913356100140003492809147416848252663204859960064714160217725311813905764371595539830360962798783250479595782166333387844963212736177238782053882932332308846592658103743894110624054885764259109510739702032636610469039312715074636402667562202914027853672838086358744350280119403199796993556348114046025242900517534200002220566508741473057888592897181156844103100201742766489015701126128069746741076543971972929907182045281268112919631226839376795688621191902872497482261378852822728770267939412558897143107039696047921146033315867783764786535746277500241139197274484351599525470770875417461292800537561652337863757662532650563209480724470027667463520520520373123141696713326565883154019085339195170075712708289274997990106062464161132749193281357531174453194052873632311355341822300639523703274531506183219541079648064617106024579082121126622111142942730730339562923406952171544723855527771633674595217825359409180639544173832205824407376042540159512943006457575595844955005259648787047715611574131155094483002643148027771525548413134362094516386970657373844785255657157247607040406578091683549732662993834455629839217029628184617587942110602760689156767074861382149299527937353163032011248641743842896861817884002443413789976548681433419062190574286381744433042125340850050111673500519252126302364276781672525007358577439094358080133512805265860847868783164633778723566285609891654881083254022996099485099109565203249772733282941029881217774382499920402872018002766909437951615848717396224531386417582802355621965688947061789694641074909334466441314943087653735362329911096682164330985711636315111958926070643479975961322514614994470194450977497646729625625026102434760479701146891311402736234088052710115524473232924443208402663287620804976351515279410538100501520798997380248902019537282320978989427959174962064316677898426639103490697505594673346346490035121430167586703995072570274341424064794959316912368623773187632988215195791630967083212423111000176309727099030243744611141801966326337492796476872881676694015481359259081860656694260421832884472422319137301863735977965699450675558205022048472048641312797715821896482219792424864526205800959088906059702184551218653340288612356275802842255918191597420142030716840668470798899162417208828448967886693868786569132274684981098599305992781487846093797449861043962286233769986759321078258963463846209284030161218976210934167926372029326909802496193068789241479958133564577036197558150869084221437230739695895034443249148180933822968219629529719368308866940822728531168150621917805728059389087277157105786716157226076165694307314146258193686046404889159467152500885811694365763488005727801752772585677005411610353874163122360279810483600728581990470247872948709787246079881817084249669609359787060425417055075495924732752498716892156694924234372149668645940022990279415221358470930831807290878019820053071560800509182572547634030998648716657305266146713981748007419520747825635861172257281267515612259215849703815340383702494340864289952860333153802312855880368443066990723851198875320104552953581681717347751047208367855393520859202459130614879643721873329462276748035255346953993523167628530881946154536470787334394925990236482356021287905643164273778217514809803530408370615600597031336885689328496600938089832068478263269854756643394067784903707254662137480257415837936777154892711297896247572616425846765298321305671780397388471627651586816492762745853314507486083061037981901785946889745131238837882945208332045345851952380554711544907160032358616616829123375208289669429256160837438354234143234401086811377299223221919915790074649411104357558402059630304128153577564270019801484086222140385174435015853476524828985725049420923870204031006666540919301181602207821800410180281912774342862255105520280468134893867885743260779641961856587031267821904222236668615374541091979199508494754700919564462760135677649863379492850112966034477642873411200805831818836330904370080926909830350616755701593900597076310312923106191054695267981588967521916927203171311348768061477712974372128419872337548740500349668161000533733735138871298631223542478360971933969971548805544180973673059530784226450820070787235979755604464440838357487473938582265558148547529925413456718244621357220858418192250746480784649032286995159054497056379069917112119432119747410273734479437935378062419031579245428958177896778002276777632566604324087984866046089881025687539035931394844687789142026447605050126101687375471745859653094951886910438086456679688747329518160149795437763394328400253222172501087167157604982667879850194348526634513868559986916077653442702847038811813039607465529763602584791623978618619587042962291167589752575781364489588468355809339798103089276651439746197716023413358865883327090066436473220000936648011984290815769963585646670212846417140197589898991802481090251789067644751245129217275667459104241886767214361085872674604962408742142131394449321059500924846136433969457366931104606795228276120018959916147207377029705122004091876529812211468267128837678437495878745926241114256877305157481150279667313231565774097930683287098106762322689458771938406232938360579813179123243094694180446756624834563677862210574406798441594225816469245417118197339781072412471176815616163520533172334759313764019088624024088747699552624138568095831135262065357423662582659860207354346583498287838610826723223168698922497135257003195736044813632978162633240427869536123287634213059063934294109396508050313986803318644999036804048941541358506032427920837939428785403703762016510890207363559526926630813725558575168085863683936438974124190736703605094422007372165217267334721293542186466360960764643786989186668525313593195886594494281658650275667269589614563939010877669816231328770831141226541446980197484681921270046231145662840469074394035054587544044967876872651035723402025191015751330671617131045558322600209485088807352616242217825045617860943089093986526690112583334253108306794150102468839837594233041003631678781290152107442198353052148345464515083906573841874108331522072912575111455848905022967468705533357660315946659421690325059462894652310155412639400298008662918829515367605290614131297680018415543330729053112829055325788861823385597919235641403915347043918493545497025136200176675452131556755947054823933006480738463965840592847485570290693868487286383383971463864558243458430359699137557249747009603963574457437568007711120400660163342620588005519905491299674285691182300901793490144946688257166039061047281168302881268646239965287626038839956317276075897765047026732016526666649427798538092980364077962792768261887140681494926326102823794121309509335867258701668199898490909071113886282540840868220379867962335085567329993420521534581919254195989544332066539415932830475702485870146242748494683517517399253880149118963694718441151513392776259910596436283451975564194307405540806805458827314501058768667426563303906591737222243247836033920188861377646516982798197604879645409525044991604596693264465681689805402255503828993091454000784813785952724848757322486876055746283643776575582131848064375077925477457454818998714529691413431257620743509161074632818062201548580487685277951102570462566792255799438981914783542044744865857751429232692352216881175100583312731363154188660269722083297044817386011165363217675923491738622683439614171383839567094235713946112062099343518695658701787281920999223479677345601848370994795231244724493713214835553291308268311632899075542362455681035708925445088774594908665425245257904301417513553567923451796741013357956953527761006072737713385808567677430120849321649591304108888661320042637754843070178557170942257772632430195711440267053926438157011257527351199778662878167170044717699343842854366287886139201788148447363167197826298624995060285067192019726270434362058891599481546591482966566312575699324143773767065785485802670725634665021128516501814822189135475562326889206211838362011006027372010987527227945520041380482953063969204959397947320551197107252678574556454430471442444254852205529698415706086550212564849993752321102772636554865917793102344721355751333539403550353914618635360380280512270418517411903866384242123571110197561842433792856156491714547869643408084552265491360689526292487616317678141309273185830129722145746910264529370414902116563283961425256365749455436972819082473191944308071341313859438202167061101570634301160628144636501228660305127552715680469485654214451233821693263517801196331514886890251663859071634053361774002605470533571007570350881062869633382832957760859081032465351302488204944504210575112784271145243966556489373252445908913104016865658464917246861267843272317969441089295608117931659550431418680139464597354877089198841836612519367950189688701306988687992263750715103281067691233918695630758044221070186636634457789955083882849675176178696975376822018076101352315653671783356736114189046849885525770164443146249016487109120864267687614495659469515279462663468934467190734576641859188939247682190181981884198829485271648198588883273081504842315287436437180144332209104200432537098508325079486163379774385517430844485647839503502649346595863647057764272677619348575772500285469922931057312938284693584469327549529092201869311930226210134422626516722122745509833522712908793450427575889186117138945458869030367601737886478632980509717137512457585260534194930320202273046583760654706879600728136925208319399990195672315104554601857265652602602646888295406156414541975031929955822935725524498125086279765268243840025065570654368084830617443914625048298553734676959810132987389061386222000419484399345436739600613804726060560730187121862948921192010236650117077575305413976845146285323192412302185393461258679154044873777700401730287046655699893166274202158051570722081281818114043467741248743324408302925944276968299948439616531779928812577892538141287839796125150185880810807641260837407350418173218044103613652208140062216568475975679748250591963855437187473164027909707637346341491174188956980993692421208978035125942466044827298589526434016024730279984697341811320319087164298975485451539059854935567087553560704729303262233090664805466397924673507124673991918318909340086212662955868450642051286757121261083758962501966245171260404469827499827439242789318740083824179860689394368298591144748191277401699108803284655565954653955553187613984479785917185319620130415348372289831799088571946575130015677705393752770164728930122746922154086539155940999930824939083956428988154246028619422534384289729069298001650986798063601418901435827461344124959711032953663796569692448445378193280058350367361987910304661758594211848691270599545428694694193988872718039208725451489359966435772903749609890614712088496323811524635398433982219280442199405771999300916718539959450722895996860480661358767432107823881040920031348975211176319235858779764034515241594182146529216731563785742539293266727470095637481094864995922142259871083803957017985658569665939530740247229701961627522395520238023642818184153446253560127162912237965005866461781771001692532021030364597675161338547599595116456281755673726114081946544233667578355856496471978238095172160446375456337642462713378044762268655361737252225142081844557800892666194762749431949723958426902436879525746136320366902794973908125604901232125310641734306785466895194860302038277257972696894708789818976819409314386517553274157820891091165576793850518963105337659939907451716535960779106974608164793820554704585734650997403150383638473456830131304724556866336949059617347006614597135404918931601264220387333674639436644909455208305627510792411084625948082586503657961136657829673163282598143962859775795789040010705489018685272050154710850043036661943270833314665966705611123222976550998830033953073384499056548711634652031859000089990059268327114421050309872254229307104626793008859734728161244633046483400949793316825263256576819619530562160915180305818336146219438416407877335050790749819229018729828317607126600681407519647398444907740872896866006206014740733522317807905904511070302318010682323415842462170298549947068048264183110689593258569693495352088933938940356258544696338623347846377278138916097876172992068633535312238641020113774943658086492225921623203940123199056665178094349354650220508798772492029757552423691571364700938848301311319647030517338978379838460782318322615421988384448341063846500817344815734149712074562849724242764279647324396489660080683673924633388581440109258000226876160362163820347954672276340713944194922485195881573418199595060951317931780031159064438688855745305960243581735350333480713060085381433631321860829646297851992976109074890335774152930542405195818226276536493435062521497046246326705766651150089124883645994470612035039094487800808724755390450110815462756549741650231413346702033944445863874653065222116819533154814425023120068490875586006584352999801568149901182141954135724787422010816667832840729273080308302029958424310398910050144953849831881200860626839294396229880581578041791801511242637877504535705328051347999115143777115795392358681266254157226919089586724703222031074934247263596961412524026939424295769633442099627433581066483312121652784269733831794607936916279815038102071243216370339095831400265308122435166343921432805449743993879726589261662096116168348238492793562407604206467852369661326735018119833053508099489427885179647353952273329251122686555764224105537158511761449396972923663226982638219694428170323703900590994542667261075815936867983201942754209558670254304210143433470675911947053958590640307642014306682397564052167225897137689489596515484534883598779703180781583970357963997018263153366933630082363933939731449346673855053563235529154150400198817261990964702648014339513173124465415457688124233366471047364448717404486225643050836765048233905802116640128017689791591708423713024563351801197695922770794145329646500197822899457453069783960801560946682351928906695181979839689653813533462552830341911194256826125458469281855808936727999414035958594686309769003944183082342798963724794215759893032472183954802685578586646348723181586707029036131403653499404873747843230797620929768929841409482814685164710425287503757263313804621137376886658547489235845311692443327636172947238360683257341244530237499341509693419450676570480835211324090832637965389641871021949332330095206764989647478755963001911749719736605841344701168241468924057972835449619679081617319976824468610558462309440301867887761251788861399352365542971173210104788861561962626155634601281062948742988140354576169153564887779591841955106520685071478099140752599959598908123003556041280713387076551762918028838922881777841145401062266490690586265922383135440595031705603344878734477695965299229339100027589615331469182435598763954640797089825315467351360336942923809165529785871064299475084598867549119232729211786283215533177768889722097758627348856755149298409980187769051876629148988860715550360478266313783756572981931464824593692958963379061808154485264895424352570682140938433401519038105597396702483421917132698505403776813786734653128883510104957197406455694394193434973642088760644318397793146731936550168585124813333622071064208013917666324431792043137514823876485506582483210486851880684749345120994473708409827661237783817144742799370467822947262526928766792230181658932014053540450795033766500636853898730946049161001456686785154620500270854392286150784954157146106667570006389845549922336823905570002350973835996369942053284314157314546836809873229032949303390222168952099515945644108357891667490598477020069476745203561396149548354120185286229014494376088072062284912877423826337580214077049665234828969135257322801429647159573526427049639750674888864459327183412107324495478606077383222229862183177849389037736990245772704595277506366672537126994419724910389225152595268495129062610454105831166544867281472509189210952072514392961778131148527618123314759942353226094129095627061332439227923687552566762704980511165166349456079124419212427510670159416939839194044650511021730201337973748133772115290146317031252019515498395217975207994417975262541496905858381122233648120623741640946458733740935980963916746414897694740423496943656074186816114359817332962333257109146161036737173070464189238756767183321750374810851094661012443071494437770142419053114561076847956075406030031632070410418545522299199343565499784023308340837802475202274191810354261027217642568089842865152331634222917052534250296480990159217143171689165312094996626220818597438898856576666022761896019209995296923301246506407529597652335507395360372552521334230009630027248156208626435818129314111873099762024449010030925448173727219929751391881931664989664828295240108678814623691042385481619425215294281443929005350599647662074843531554953471855478709168471269139990889444237045713900549775070873823878028082419918249093220025628435044105632532969799958159920128570221221276364563087011268148169917807801100406118991045414342472492429056117520645925239883006075522000943458948539155972201771062560884699954067697341400634777364632427980118726804208431486340055482903158164587307973531730280012687886678088778818382483469131424288975629239521521354960579121465578673274199059021879975159683763501197541060329142568743952150522098226629829476500744465086472460651790083482719097711315914996852343162574798809201499124114832946261059513986613936440720694814978522711572071536786534079812066963670893298567624330949200355219812299035657595651765037524005629548553175288744473545536342666387169508646173283568053867218434790927210103347004323792259119120872556557028340926550943324212519281380725462148753164899296422574361772141745005701856764548303399104758957309977216439644952279116122163223842080919036070538935014664411946065044890845652103790192950123011171181981041604308666503043256665935413514016395533994968321727928624149197080636728321341908692493848523338925446811648629297037983734579238473658141926204811044425433161469263013397038626790608220507720791883573250699404601879882391444336555409345889430471662751953409231292379023720913504782092558930461192300272018569748563070519022260470308118822426801586328568787987341838013930603453841335421639594793132629768786375314327464793384041428019938909299508858019158606833825075930146965933784312082884231347453107982256557603274514974107683930787788826757566287769676310375192843128206784023589224768370729535845329633468438432280426514701776097539941892884485440328525331699522398969821866872888155573841543781292146545532159420195736580655249075941554249153155079321668177572200695712821144270097126738957228603971226935010267871600792746602613341021109576565922821832995284836587846242358925423548719714149854113369493082160247151773658387415823804766803572113318889717894302385323562251040304108715186228118738174521938818510300123918921765861984750273158443784469432679793381459062774367567162055058835947796082554451496008337159059565964859773870687021482769735390020478208839651813011588836460823958245807760701504074238913263696655354171782629346967572024142695596138494313539320602766148802595365777946705507462516460365286115323135491549081072684666256231481311096769450303082906172069058787846886327948593956513414535973575455003072432571145371683290771340540581575903212547696780804646977878003865201908635981998950640635487596807651210207793230511368190902295052736278547765082964132783270447001723208622962903191408845344111215501593737092484575125848522733183592871959311836248538346074986939036020166289358118089490900547425216527401548270555724458725595793040448801430946019978489252225461611004119314643283345909918594890179913593520146054597522822833087642758126171118532258862616141590067460326297951086013946259293114201153134716200857934454015604375761621623257925219008054642759925226039057430205629308932679379981772691250367917841734229948661702014250299559057414557037962179175998508671879656751518311417959733974508935144483403221987076640139791559093542044325298272915093152301743779092842866536454749935541113680729695405714901669966066300585381199386476150269242669367174119385800470354087937662342403380819920915627600749575732347258957597726540386075688006730778295586613046392295540362652330568453504696164641869390259903706682196208218329161679321496152555552264218207315276233414802391969047971257696380089962301841290615172786321548406440369287864974543445740834733809145541647062070230681041148040807092046435847921575375528758771784750912096983428998513942359328090367724972539807809883689711131997017900416848974429015425758992718268875803965189250230949935066945650196366443744122534725451291167066062774218558398501732656550808435978829860232024421124558867555803356500246038075604758978834957332837962018713806216077080834131029546925944605512343658749290942040270241590309102632281035374780762663052246385148039423160447822466583621915692124405247788369780291552837296930476045901833950753739136831512060216392506400453363683106348884382104613141198122312638802615531335912134421471689481202887067895048576828658510668783913308609276320096606056056854635323497083366369553906785794510209892056524602887958842827018165393826476581204199771035888041326959046802935572095325512504513837203227869851429683234498416309221897427535777373097170984869244824055675192231722254642447393199294207644367550251430307905907377961044493106637111230908054559411324503697021514988894365335713439615879486723507306236719258924120441442895252747447715316095962165626771851548076810889896817112465055185001334197547979674593254581969807384858350803246552080606166118218411536823553176027723837935665987858047914883266033952084175123056276655386230708498262160814914943955098372266719434673236706486058702107870704001945831183170423450773497304394743448238074427061384003153133791039452355853804232620910820338209329915285608050111364967059055117967260029912087675873357074059743104790794720950543747216679355881579891288682789577420905143291042291133880019327236926272996095579638830682499585809957578371229421803658485785748455207498081079628033604714712618434567923346518758049330859232072706110650793872238665926964663548060002394411987980711306866501525985963024192285940044606217900397004330049316433870707047050498371455243370609956613909898763350446890982970105901772070004699623980776957192088609600165833006306729510654562859719494763716248899013624818167262395483479809482389382665308916163096779716796228740697478399675727313145266619224437763929219756985633086530016532708429433835784868727614183276200859914107725759558992422590138850425562260250027776936468228791475779389313489988131241604947274814597801100405383915043143821374694630161338654613217288068280952299402766146820541656493311109075624799769179023561170348165194080657297296821650269184542012812056620722760309911291430540421988364876992478330032590169948371379642257505598728527676553943259381049099643195989794866440257761481508902026608321072230558608047694149836880046751116313135843302675387767860985977443235939634353644643762271196159697803604798751607856868616949103611964572092677767430500904141774759516045261462100322674895674306108683998451611326790017680189924341968574690931833072593875642701413699561407012717153049828459676754154368055565313178245914960101769170410011444191270193012383226949579445162524681742955686888904555850761348476168665237793554113064393647432960788696676626124290866272307435525340231207216819422168162684774515837425530601841708394548632752327118701405423390346908663170645270354963229001232832280227262121411881564368062893238422160248338444141853880933963577643569081220707241746139771831641427485938260917463534035521987059688281673897947441101850020895064968670901312057361324115851775137077305489030882701525067742886610547678971125123986066990703481093080793926364104086622920449330693251286833596597471156171713407259925415108732041492308239725730266205709552276435012768354226301225750042503023853511542490189384359887087108352671370004553064702788797237618246949234328634073944124676937519488846639813112208898479318186421137188253413191784351899751113630033555630855475984450189273226376804445933586012211959163784386921954827086897957270783467376957996029091661862446911361906199850879866769932730258027153448064527852533689032030246087396309115125734685159831529273059873735346177300381736795970644261864305880237455455395174605703222740843853941540397894237595759603940284300032016912907515275421925496049004953234801096852383477548228219476620210080190989696861810943474585515981247401950360890699609587952545824887784989186469367041808807378185323534095951555767317670070946746636573474165790664157964567519575153450136934201008301242943940348657109280544022112548303000658170409369743153215603649933341579679833312604402035671001058848434120395983821460407456872228148653353784366354373024635688556075624150085752172222317565261431985412895701345690741630880811478498135352260658942388885716415014969478525052034141134113030197654031575037560875461427361690608803971426280819027808910406564360797979171067358809340652687010032515311558336463854316986491177704655870815168766278196194455067456496945846865046386150377840485422285783004485074017354633086540174838198835656369291507500143863635822210026805109287439964802144483963116987431580007999822078818967644639867642051875737597010053686440849015865030671839865637506593306856713176962153283075591328184617281372206209547485657385967985725204694726973705261740504590580750550189533480225116029154182817117422407430851596988287892861041101901153856682408413131730281436236314701414781315014183419318549933283795233508078171862968784700768865002252111387570300353399917292846439844143111004887287912479822521753255132849898731254225487169482177004807699360866115952773808619936574656963089064593688812785488010736093187907837320952363339411146643876872247502579700997409593230073621149541277898587764185492783487823353357984399801542064451436465466686878319979549040026562172890978000933612462292251070220772779083850098157606501009726567077706852966758498175459681279919574980909428737833298726304111574065713005690448112429799913298233907700216810637599962416383470099137467667915714870437646475295269429980120181038132733007954558940908345424217228455980943824112464453220239961543165007319968931612048825180760970415739105058267552315080310488668007424047625945300878402815464606470992214963359147041040967388217803009847969125174093499150649418496269158642757677047728243561125477294083242555818327311975913640744772465243126276803305079416680175223112272605824570664967289974318478169855858556465329450265815430434315688144398199544916852987713244322666409410901273656170601816436527991244815770821499974938696341328935636540347375801831513328907035022892931702042853838269815449635699916159916129820256893770424368983137015632512763283162374439019558730628239121349928571489446506181490690257366438432651896006279756564867577837060628439592125118983689070208910180454407077137110009513650707151107018804052385109852379584903730160422178878702867688333891428915497028739346482252990703561564012463487723646614314487682660739387298203141065685150477690989764486413492529878950202897515585030399497721421929442532447307401542803047033134237134988627755261553165773577788028162355023912868349386410892911872884791347124802622399387954420853080261664179322122253080002405618794241919091869324817893688769313225132197262814154266190617120641850136487944996631273057761055456802068120231013053448399685196366078229269902892685539752899499578441689160573245887799611877587304574036393200801052213546086985970950064464098985099060820351960985025799103055312175240268685195284616700629419173573442355339327050538618769787206288313237463244189066097797657143872693634053828173668382407015303103562868576284342254319015510532347619519361631754571655001609993734067907732137490293169038165017431239868874675683123013316816886402824839234724424372319648084277388332845026927979206386795524232890774378724233016771420482377649831950920339353438839222262327476583278100723839974857938984523807852981424565425922016142020387877304029779197801553577323142862590355358529469001438612030391721325753140710327254653706562292717756128468899058409194256290765925798386465388389472037088739042495523038641491972746613893119179945210296119593069225092163536272246686832929223226759157725644922812986035412247553208297676212472007168166005568762311288520437678578361526257290213344220930600242838776228376903499182311220767997333676988099740510786558873571884135548427855814543498786137456858379509349667652905602484624738711877891327680991567619888450896479930365329826531482392879049042208998289172807612401448499105263745824951310496998497373226057920465643781807140803366179941959366055722430401215282538844551937075803433846616353911239553938208629512209012383659720315275044956805473547278238167142023684809069964413795210996043537154896436628792172122359413269965987252907838692220015954272808580387557075292542526507209431401331987505932375486901256215406485349845417703042228763219927506716713968799770633890406367793891451147183904173710548994779032810639587068662331080868484551185721108927741064767499774768797560689518685984843197342272062731590614398454975728573733641277442059862550068282310796012176106814042726752169008135209680431128963369018428720373662007172882268890573743153827483109701715904867410463364502097089475030233041137098704052736836260927222286801379412878504008926644397435439267489007053050847480724136112997397834176202961608655870335012083679745921937471950171481506680875044571552089024978507748723065210177623436126208546627212914448894165453239378106800432389297515130627475058122080946516714447388018365757404367111789491124824149708224945330494061536911382823685854210713143808074835906203063591927899982345512817898575091281630474619532841256011997643231097859803539928425356846423785917118061480403639205121772702951504468296672803104032424921526371507002170251716359186820144772186682276504126655784830371521466389660109367874226570038866989909785691196207281641265837074996109192336180513695620903476976309290077910443198949753998547880898308579421188483614629665665337527749749213920712026524095104880564633748292607016151755403750478192975816526119242072858558936185664114876996238452921035232966584960656408175067081695474024079766278105415624288022607500384814019587260807001507771124937751383422450499461172042148705833772878525655232078722942395781054106971427150377553134244341342839756336019605955569773889311158954049413747066733426124972584592893557911482519663148572608152183109799364404165941526423728190978938902693902481310137157533534191251926584733032639615964091169414390462798905699515947813290294292747472374512500438112515225536039877998042227983210000109554926239336856546059171946225247471246918286175705821863337180450980317182001907820513824214674713938821325414656586031566317436924630417348195205848427410221642395906332638857128258713272954723881860277893546996274463228472187706406864512133757678181434657289839328875509882877830714774447732696362037708019902805535854241099066162197659492108856037919581509529403965182539048301315759412520604191182909728134011031005165940727229219038960227270449008743451157911180316394889771394201705627838664935723431444758791292337637544230366807510050933696922205343689875001860894464770886642191567290365840077245042156365697351730602452377749540927043671155268596160738753552248684462707332092725761234473683260844625860238109512319709280797259808430477598303858424142892854223770503570499286758795887581123695405144410037499070610208838290467863975527388554384954543590678886596453192367727559989842257231648794580416011449170704658311808082368916514524885661645727835708913349173471706035617632440567798357569330708538261937038475551678050806419578170600375904904508615694979160907127145014117704734373537544160708071344025007711632765675139393050978647084777750150625277141621778946708053685287527447981099456923806260145341546002048959637074507151947807172958747483170973478348305854612385882700082142111414478972247800304535365986332903308460769319003871282425745930696122646575371499887380263723584961070694887732377405128251724001894594603508972731707977003094444921325801058853430026104023569703863082471228243039612490308745285941926837040398475274492218784497283136632563237957637520234228800637435293323248822503628168765679803250967803612375638857209875283070178975038461703580864263551075377325224575127731979454144484946234687366449580964174248224429070052771502305684061978594537677064352187561662992757198787832978254971654583526587314508669942018290624007552632746296354350151684231843760641577624262897083169310634490327200280300972411604347879000509464469752712185054788436806339604364207031771433406344054987464806837081084978842687983870109274843526524863569576799465259364023941860298914007859919829112313499665871669608137474471368686407369432297070877081370939318426242834747676113792602475216300605758793160632594065590983192805435201049962782906666052525089925091303670931407005506319699567905855297644359024889250259224094112169249994092774751150558989815208486500568114981109605316839848601687502352214048141984058527407003789905896877203214446939138743600606760642262402810384523042300382692133935400688865115871436409887717620165506646324042923454421934911457377829091403666335096439926032711689912909993486986746074464755452416856736774087469871520224212657771999811121326301635914652562107504780686619232442769984504554461463309950785297814696195059697469148701981195428290483372924628541330446741441752046434708668267285648492732084887217683694773686761354939180773085620965753925882695922538300442402676418423965648052963116810168147811942246077298488500381328009943734217881369733526914968037783777588293350634986484853116489612324353428781007424081671960137072764492092062616838339174726474263118035513593086570972042416443303014540358689383014065402738949258891797563280116817197371255246099726832374438553315956514425873899717834204258526880701387135175301586466153541878143907449905476750269849630399145846194844622882047553008790889306165109666250197339601831400000683088649370546233040774732584001658254246748644675799474487679217043321579054755772254790086775377855680309401291268025148155462380296036963295747489414695739689111021091538512863217607517933406258099776088076118876954740277560322485895510064222073127381624162256377367535170201845225223293287706008818764896375190152307705140970226281840287791957996442286193503349100984896071857019382022925390432537445348854824137119683678406639472055977863977465728615911360415809294568998276959513042073073818970742727382883691028132029055085814864397964601448323780894384900300845438243959495238227874857952795488200756962109842643909915660873249772838479250202141708372835555253445417988943125336658532341750832381565997796116715827178901935081509901453913196231508041683534146815468753364436473619160713012649291107761558518374705091338454578975551107464814234353143332056877781955207446691815421010380738273401972350241505775892160736722605360605543390422498265754716503599892923433172924036200998298311480744008788320297269298688207945331715110599308942857621207524594917776425493189492245824719675856765658152521841550249004288964602698816769594185138412449592168275877324256222661448913756755257927937688720942038614164881974165807899786978004462148498125490621993559894623809876532812956344674328589629485095930914685587384155360317643637105115848817861326508364743332461833528884556839589080045886425284193345262803655987641898445085926321953156969513876629485573606076916109548386230768828026406609784915434923065974301206603140571446613005584385196020915085470186626565724919281571766105333115578685448515701513681044928694038884933441155053077592568625392831317157432600642683373429850885690155691063014677096249157855985204904951932631355834371573512862794898954349447823801439449727570468562268376706099150588129743470005472708162128406495183408848721596743387097583910252666076715868408677454926125977567834178743993906211793194921628960000321288311563184284343477325302144294546293015109967593070797740654947925313179684295039824971553965596634621613253822933938697159536492888054801416094112866791509743577237738859530633318124422147492454267028796164112304988022134095087814815607222276415334132438583159946334238077697875842215925465873026052259175388176887147443723568698104764720278353950774089049486292095051179564651120528176397540464034049124586829849822351135409821281258230611019520239496494627900485482644457958128390699461861691461529971273459153840404775935927338653436005961351440103888061527125994811587602157581233788588229944301184726026306955027188054229241474123510215481923464349944803617280770985528372576151981442327177805618830499946209645021542923066993603579512597023557617222077049616624275143457639016788634476193239262793544620991605057926277990801117271455981177107488771788423359577040710103007316116971311418310224518257486458193218241932300436538370630878683979994373747352669073469373017268190302173811110767606743734291633338195062197249422256985783002729840106811709108316390580949555615456931509607780033770995919541010627150194816610064390376866781415491141727183532258279146889112328151492744039525900235196706987419630334143432598065476583475920845201585536722379344841193758562161948223725646980009575540201975784293518840676803989083426017888341270653464061914753959916290022948783918289909740417404049938637731811444701547858643996235782481300422595997020714326237504140270555254151669758350503118590826211673869751607640610766536212345377139786550327662618317659104285295823338672068641794598591601089442797649603612135093880133120805301739216063385832713240217085514450240437141668887317912504175716216426151727548060045280941445051720201364292615968641120918996189957852546747399790993362631113640303633070641396004432595024060804936460299583590879589507221357802082723782738987378510884256681446066319158072071921900278819246650837228415356168425939085551866078494538484053320484875031251344967030854397740621778026025387713767396746435398518553709565861581183827535890009313993592188119045601623145354091456694792099481216178601065790925088812794539789101944932194324263236467143823511333260324963058168953357303353152307420079787581547356055832026281817809547942810096820208237117380204738292321700391683726432210473405999852442958722843847778554370080389656861553385271577208601154450902083084037104023806392674019385472131629051372864027356448227049760070556246791180716241215580526878820645878371083622769598168406577571287796928054858237924067675756840353289681295821577498444240742023499872748846331285870036141101653444486572820449625861752232144552296131508859498664146485808381115370345153955137181413851068805261398822386207610440280670281572796463034614010237036564668280814536237533499595415417651102490690704465281376703052099187243308039886758740532445584149247478038183973884497133678125501653172443248555884916281868651025135440528341443760747162287227012140146191771168778809809567504764640988852480491786455834695272940119575057485000806681421785306655463328145953788803011779452597642486545196167160376546719560240890243523578717902150035873208028804785686261449313146991178847765607746687721898539895542281067444935361746703840348823322788197105617386032625446231919540002553895834309457099294790543128463865382319889448347337906806535735882430113815307960505251327329736737387220322020183223753844995987660131697093495628284611009051191602846459604428597008258545191354133170719611464007508419568607115940956734128001357261253644494120047846149348513350116462240453605950110174941303347304788505198174294667564397759818476766732817894559497092135875894743388297078411867938754396647926583436881743646327696323019717363080286568001808792664849477096447279339772194226513765995399124860081953840128718428115746011938056416516782049831873138206637447094631100577732802213019336679731743502210805239249116703892505962368654441898372336870350004227512326556974498643099010817143172417951128190930551179201671562478300611821218558203785795804396925082819524459458265198285831368711135997453173695488868087139376483812698049819354454817954624576684511750006307666244390064199200590582428906871961451058765774611586329938377544779650220907531775481372100698027574426132368678681525042817067424598738917511095720462454933423700394937875805508047905720826593409951292883222314534638368110121472607109879444232870817062585620762377401742436434494508334545435737515946228915987793382515126655927243233076886020453356972335195556904746485401277730085713747350901531648145274956826463637266334947990262645992085532257892280684934272962860795802889148430306884977888845536590280698987530610226016841371603370816340279720879411621207565446865298735653283242666914024296362670800142454331288792579226731200829147471174279287110022667162646605335081166137016985470555929904757076008444789287698161687963667288233001040737319225998616127748457501668844066043406282422206391160890440001074280539933469672685281676739983089066817007895030974479183482877558931187454312526903953862112666738677382482375174184301530516988765440643273125844174889860060663016800235817207504553725073233743814967689689362811019693695622410874411009199866350044881435623539347525054119447322320542571427617147318235004550485473138836741198313820104155137430797174816331447254185293168310975419173460247046340507256713478789467677506975071958492770298322971343809151531102361993117650564038547911282730145786889575426041504710516440573280935076458899232237721548941038482348778381366002747334704958391060010226767778078694911295104916195280292252592454653716271146113423614433588874244299066725013956867399876366530892288803173027325621844070287493509250287823360965502732117424640260791349816419002388104461144391896657915541029400032217131504586988711427005355622924400262619888198571697225016830206968014521270226997294361232357288565641694918037040660963052196592529293465307939666792058966621161368521044335019244540504622011768778915855825888795433052838981459009222168235094651885001725686346101482932263473403141280790648578505778641477737046771421469213869838337945847634508468078534452553356227997249088850286560463010318069323730582399409477454272702611055090017382164669672731715579583621735755852638744647987873832132977384541945787730186778663185820549325976700288140863978048543192002146092415233018234683753229637425790489635868173068696901402018172372981751720608335534400610217882032514758872092070272776457004079744455591112945206245409081362140376248781511795597140549010827517163406318745862860158141176468437294999856560205756471792021584725482293724229786416839719648375306990139931137216255069892946774835763346380682274571646924012304483359349269500440778103550072085198565550805725524953092692374016867344367485899169213355270969711653253202104418327807444740335751812565467057206524817045907500260346525080669427212862763528508998142738601371064226732913513467042426279330853386453731029484488655760784739945673753965333245953407099208336070073470228829701605893465852084384982058259451013649389560920743586043230780172429908415954219959021319353953523584507571527642771171586299306259816370177478094210696300109013825963298974206425975950096750751800117890122504128611539463258665089345191321242289601775325638804666504957504464145137007977209495273366224696288640491759094827524457745748680996663399972671808465690059243818387515469447043831751005659178240309206788573095747839927865731861877553459470977226938967499210542812478684786396849865675198686924238609266765336719650112841859149338312000879608811876153025953356150646816732809310439321606815498560518366089182292807790121245074599296860250331374569008636371690511385793440431608723980980518779196487497884130281018695030410008815026793912006608082555427773463321883528635521974126664652235225275630489595668296704527062797152989123823024023596828022959286224781710730381433763489963246522960639587436889084261489266925060385690497118622434331449320051056013707642771285944309170286338453668768782303681894885074441689690277263539267950606256853785023926474534587455122222454432721232023334175504849464414401482970648989358150463656164515591404215960129288543109869968323345400549342425050662338330188583487566468764420432835733486268133502429099206060508880582567247557058303974207306887962762942140636849142277406113316589802986739168283077077084924207340709763199698180906523485996953011