LegionMammal978

Output length, part 1

Dec 21st, 2015
240
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 6239266241807519026950097365011767575129671846797938586090651082076263852316702533878575750064551907553014465598064381849605189481727751246217708649223818732243604722763041831347402939171485128943365564554307770688921152317412093253718174114017564507139686564006521658696939897033537492515394234457796450894991826781287282995875341010300253017555481976812845669560006861894361362159442293397630590443356280305220300779238150310589575977550498250764615260133730928530541953527994865420538047145897598505157935656133913306712750802873552025282670184701102814535066457097195555246974496468976583187964635129200093062224108637936407187007975735899348077753289009787914035189922991011066301070653110141669366273940252665748593573133843734222481692163413200680043358457781682996518900954389691641040683558583830632155544033346261597003500875072554854618194900714094921882577140101536002426591687534566177649967640496579911512231077144016437438438792229060647582924081582034957982991185212834428559798691428944442471996145411461368344342345642715763981429745886820317435773872101731666156208159816719747504871473562666731751186193212633402719936257428523182183178607396444248305867137799575808183343255706145934338024580523904233806745096480774769705631240111253200358300132710157005526116620554218211552634435330902564642644219912314957491732596077930305982077729804220956476040049817845417552365558786172393963039466071569043516914346507422603916808197076108636388042315039043924485013779967902265774887100279151693174439877503294811507556377671020124531326555690081401346885159827054879943508571747774474270223611697280165101710168275137179614639172683119560918800894601522783163461209360995700201764509930569562249115758878320260418546237075242573857665281637404938322670417224254711976737655516670844131707794977639897429245751479731364179807846202243224018033937966307326160620385348850667688153649396653820994114697107774930567363558123038241169409857553557183012234823624345441490731789117709877008498746989351890295924589018260870338631522199643947870044825775314837564389604020014225893730848441765016936869213035771694502076946320139028883191456321642914264935560491014550157472362134508789542083697517183189416023307024947294203011982660746781128568200529364737290060188037685748656278320010542740762061333050594168258953056579253345483927894902979491425451385299003588614148211637237085099730615902033266508084557483078755065646785405340412518797447402266525890067067018327558356271326853769201903760112407754295389129309350119763259447782927202960433298197971343116427183221073497729812585302413006348437022927339449320440053831111855119630819410872376381331583359921193616702625901993563635859149792418510105830798909069669901015379063692443464556581060076970756282405809104590994637532432854600933442762412650071193755927869050962759442379339664638318526340917862187381022546995273785346822035820522158030618711807282606266084047556683077483708197899852525665641127367940547740254834883780743798956444082011696669348443439012296222436000883745337735679805627324329606548251183049692754499598668353061905853802633073989474326526899710429306766594632705934695407447599418970273509616499234976966161201430381988113025468956800601175017922655992169165291563107043447697870630536670127683642644196220654752033695645920796580285120390211228215007156796077288388345114012251614249661355656534552088055276379158328707877544758855134195341119468562962194255961950149235446657288679823832809626819989371302273622860289855075662524863086155328600281402776166820020274491849416419403687466766848959331642728113833781298841080789266072441647745072115649345488860321756089577547747063218550424959384365263463439361300513885395917763448673297900192872632709220196511762046173253974003089036088427258133810132997311389170149795102452803114182165352908418529424008955918887259777849575723029744561233919816462749745820676217932889751610434614002500962283332842736966604159984617654309981795728649111090512477479901478668617563055487388399112202854996218760298735425955396524371677379422628351784327345263732097948221051398223289782497542185267530771583525095090982858915184413178371678667203682636073717280093601403129759831106547627579388218290319561972636264008445689257802746805260865448672688670601419484636068335330820795129449960438757013338918666998687198889451797852354862827295896393057433763793595134586708475355986593542657360000798241007627287531256819952048235570046312540399575631004580485402112474014078413472043338228792324921410214121289607386475646939912337930126307087757337764016798796421026074577044838087370289765246235868131747867569798868366819390263337535191080891289928598096664492035802652490914296949137487624889476193878078331010375114449441332911027674615435288950131062143337548821776931675127656154646412078834282493852149064631521099561433526857451921706534970446383762604815731692966927704809731688061672964030731078019434777252042652722852252601534014968223845132290532168216423701934577492491908572713866828943253403270765116912914867946938136059952957519642485400394208417365888235251136417634594627906494382575634806004185543638088017158084480285223517001958247868581709124730101636646637614387535250255889362776097218084378666625191560442802573378071903097975126519265462500265961538481751060314846254952495435096526259392316265362230392563204459032543578507890133338813379596535368545165245742481970636215659987249678413728073396860688583167454732871568503638983843399788030765119064904044941351071486872191744681900034811542431837070802882859162229816991184427181426232148997075799034828398465775575711175193472550648355957001309356324394295383435371478197317886487545134390986608376861438202614773893886485690130931100859480917336085364292497995643370467018382070405144698600415573740681559182440102317365060238604154615036094056017565543446290881622213764323678570835240845570934514744456498504786520672862916014327488917438948910127649311413201623903455634074056755703102916291039741867015507754196954744082855936828119505845564341704370970015863543918467374362803083116579667682615689359171697910257750466531182048351515353104151741046551556590804871596789176293763741188062089482920832794575093899193644024136873968572641974680414642800708829489361320121753677344678188929106504662153565166628635474144138828421851636510406845445116822676284035870640717015231862999953621223628641928922070333462091547889526628704939024824920179327160682535887184370476183404878631952660610884451400450535177994782991269372821326712695606469671455408332148176218291205341639087614583578222759597313722321296355311560823329853774972140799411125322321644554121980810288780956783139014092304929011602233518991297728582701158994053974933036448122426654839232860756075495332049009788376335422803104521798756201521918189592182240015447820928923502254644163315063932233436174619001631323449066413298155962153827127152472738236531490631381053711702865228982501346740579067339767576769982423682793164438583132640928940515869164215367276989331868779233006434608338136102040195008134940369673901357715784575269525740415726707662258962418873520510640722050988124861201005318807910579167090908962059178893594812625017983095418336037103443715235379159713119594607247156219339476114863851477340244002487824218822470981926671288056185983923114018304914553999273398493536592091289091084725850188827549567022549220232746251048035768318648042837982426399123062554848473624595444427951886310800233734199829665292064605319648199734317986041336030019287971553812905084341116975049063962609097851214916761181089008060529995536335108637421132062943755212743361362371912352662789053691412854806310885857790038382938599948806281324051483229110266208151265373838992081482227177224736385792521239828091106275208192130339480655272070626408142699391825266479261196220695565696756712383620768714364792735142364407649501932106820181463559025891142599144128673737447032321053018923735154411209376994529349820843572302211581397540087403450257663271125092811772895234739703314475749808218809332562284420390061536818076407904374559712030724015144560838226281043440157830727154470327588848465915769020827234120416365956991460339224881786683875637176880543112091153195830356223757483999907541350821888021261702729453098380323537679321823386374445547007013202886207008694723377864330224141794671132099589015032691713657321037190047895087164250398012952275956557307365865035019306585585577334594152464391080222642142471207789614035194358014559382057801359604689353201985724664342918316199882777091859279478069900076690378316060250946152057448833860510090021851829368312687639707874609595523618829585364116224329233976869056081789670785902442244132267310084044162173310252365224534752728492794941720562703497042666845216637168051921498457674659946972187985390728216985380242371662869328704867481064678272295774169718488631004305849858417219557833168777816456414814310996456602963758987466940289476275350536079050905092921989384105622571201150465411338353591770073686666703968474783910057003769472135645471743648731893433003291536381639015789148534848641597666174348057706232790951688029176550772416479562627523159167391423445992621980736555587271954147372478815310404250637985148778807497786319187666256933864639938912599238613610143309761314606194204887545230029675420649045909419138747764922179792626589744246253927679553227631670187895504168345940321770552368834724707355796412208453183266318368116667759438838776805106167081114703913361655855317413140885252950842715622495311438623100199361873796306991396395921108887575501687559322630773855935247260229136079448471436067099752720463007181997591003798036329436251900191661932653444720250273752438978798740907611577331404264577644831446446881179902782734326021132380018983749076555761908615664090707992195510394095470649566003341850341721933661093551162887058371631062187803809312694781713037241970046804031383543998941452546006264529049159967523033047087502346938635919488372222802849034249840248273479857191284565335432709623335493081487037448857950728340974498553774874783631056553703621910331775525504139897013290450162302373046201736760475732175309000801614941437933254873849425795579126793421559896303244236532919899938419538312334221295730649764052242026876080894777322664368499279652471476054639566501472813483183144394211191124090976011407021002199257070506116277052390847688172703825359375867662957137135485845871484140298483114624082551814363811134677132431300184032165742543301059486682722949173202877733071380587685377047929725639107513592703280356098643022477758345415741576982507722958947060900974026747538216110349564395016632753155846461991569502909374744483223717854572392648017990968114829688877704790252051253708953460324777567776053322953109611599998834484340811910698260934327006740576310466223869526458067710742647903639103473329221074658001633270952256278497932286062471793071467718535214324360086740126171313901219807577785680689278853450609550615788736104976109595301618360703715049616919433844692878324937018770085593631069344299629036711369110465308532561195663033531456614241653733130884637086678626403918730156229694126655061809739784415242176688944339390833427950210536432767673477299776978711117027847610175832272639432656445676915525160826632632834877611147368170604335720223929243625749176480329899357567569152326742302620113814183251885430751738267564921612279575641855266824574293375007304143436074847693596154125036651529875596142679141896614905151013209820833150670567405631402659119212265373916124087243534515497557424279765036226486194411557100569482838198229486429357324186175718507794909877907484367059118560951067211241531054882238307316965143125457691687406976233322721988342688822722294784781361822833504536893754987283557942058637099690068890701406265975919969646204255505866172886140768947859211679325760982871006544747889699863639602383474663948414548033978877179466923944625555897349853777784712966149863898248990471281934718416725094832997226730677861153944496278700165838013945728733367098550561606253011531022169415562005885990693360576419102393702681440100294570495277578464916880823691959972412671139374523991835391599834043529022941574335344773916010817102006304269987617710829867895655924359277965972615308396483921141805117060955916601360048200635705210807121018135270261732258186710111985906141212909540203985895178964656022845630211438471668534126634909029015182657036468078795013075254908625537778329780999743813549417810340760366490322688302025397218023169949185504167317048068493896138221157238649342934303615154890798829477105675385313020493293787597928053750602769755388413211279971279984990205445279218259223025769294761339765257426795776285192015687854253083728490944095250009101768924719535802803696621024940161109254484764764635860832965237992729335496223849540142393521868655110799548490149105837741834151682953650822555151682112355282689030744038305382637788709936630938303342277002148354789016130858857249634301838079980803991533037531456980786065259517044856192509659080754688629546734327227738401044901328892564892694326083297764632245864273641845789374304514183424258589089231592763894904451901536765819080960112379563787991960954278358295242612627635835554702171022091297247415118601435567454696940204067841189671243462503332838112012346348443137086520291824403229978049708565761207809365228021397237650300931566963028408601033308212383394548526040627625122352722188219549180260244132023881729951070431999860891787196750796305514496656551179574343445392496489882334639001735884668978207694653751056542397578848765336144256369977926084643604448892114386939507649690846820470826601952868946328600901365236640576177618598446588098786667018924945605727018566012585439015477043132201771961853517667401760219324527555290293988872355576821278440007673521791861806490148709096689036034094891876769371384090031365829821449253347221750543621064403749550331987226073449172033652212250272034483344624911026312215455744391547480764224699484765547674314357360658183576373116685088971321248387384339424578666153710289023114377811796177431613729380080293397750863895255352360570400737731515963222218994271204165580401280786922934767547776180250273854893936981021829225850529853167350157619601898287826213583106256597516644938503307584322293437324934933764868958239393658372314559280909771878557795770328108640357176045816270655044580638668320193800199874500377460817042296474780003013372601115664465164066405355568013799404117231414389485101965495336184506040306696004195209884369713113035353891353932480881726810429195832353302923162851682008732297351461145561335127336800452357459800160700593655593330793616701997384408492342829883795778270947604940619448848314840573600220462215442549028541890578834672210894695753756589217248617414678447898162963546176411842034228145643521768655308083166222391029976688402671918524667102894525233390128937795000099855874197000909366803516717439156050653090079233840495044919733440894147084989438342786484944990354892758493542098096156444165634667250850128029519174332822376893141680614497153164066948887510078890632069236725175863487728212744471939768887365687297822136471793622403942993058194031843643752814605958287793772021728057093158855953725108997049445370989603054143652186592245813249781113149006559036397818565313448661990748123971355498776038384760227983200270603796351936264828664283541111343369410602104808488275083262407742283457764493272713275333882299556613291024195396294705436336457786316461118707827710944666996690545433663771996622712793694708604337642182887909234073220279978465561165610443155727981629878096571802041872160749763594982794009290909963568444351074972407313221867890558492259623375163210927717240073160253002729839449678510317459544550506320178457309205740850563129902567293081838739359516456771476314042584783954912532920216775203547331984777391245708948964295117533192745515582123189138390778113570299588486097465511826016698678078020652723340986809278482035842106953167920319968689283557339515880037060794534141922997973178991932193183703396120372813000605720058976680234362967354596703966207382539696427403735697851535537576290806844585250081365546547648051341839781967271988822471111430913721786349863101926689172059308652204672975748818142072826518620413766184312234190578274382413811404041688396908546069128700804350735711563045765059152743581313596718146308074810221899525780634725254578791807802591019796107806973656006631662161253401337741930532110818024078990133008439404652834099254149115218403486122544283893670929035677786048513475867336169056335070842427900013631027873585009941807874691118239367313008534490590764985849914938214786843528463947221879094263694619584605963678192271159472833663956377511012642592569144131178485004728229093480976930774135046213556685599797826533468614607441520649395256188017684238554366814005689885800815102432055898790719825812764069503736403186637459019224866717482780885245709827620316375640658988369403894093280123764872572940963969308752092753328916994197817080560642660706252635810586409077507751643354261214379235563452090741533654554639615048735504473573620269474718310952255818184471311388629835319847089570055374671228897575002225690321242958087516952772334138112701965072095797466339863049980751705495473330509248001698731579324920913475561433655605455863980525441013961484537275471151608525538549526578337825427986192180547317484271394676387447012037116703270375320961592149293058058339913059773538594853127166351386991669697712034623494730599563528694018115561239397482385959481518835766196553895709678158571082904832352928090307319329088026644543638738044635142939431658946834139373284116343395458804385587323098889682158408758438575758437298417969990749137139807327351229863770728128125953557858834828816048341026551203299966145668590246426410925707982241469657563256268814456757706228605059913450958003598868448504759614542957207174621194399059508926958925498799284641880701545582352822318195502018101371349643950751179566734785498105191244522196239683272289678928725066310361037750706210318204295173802848507130386955969562809311510264119984192648386574597576911274105672310610246815822046890047328475416141774926127524537867278393079454627436782845607757813301550884490169594078373214282735315500503541332524789205405430869421408264873081637942868781688056692355035761999059130021293786841549890815826955691099078320151975034456638123671512883619891430458826845466685190938497603785320326501771775943104448624760473496146984617635193268753748725079181426402191755695730178944201934140928898026106115622563864277953739575029980109843081102729076118256942036209426942374637024406956086415607694561026241670689853395027786189010858409759980289008756196702819852911279499567325205025153280001116806979150883707766375602394945373615317646964322555059278571325407608061112045107034222583716643637200897809596388296103361328924308571491897027339166321028339667546127925177916306862631708570587756859392339272311683017724318589594035506977985169404724569640237205698420781447300487755399322128386695939997127386723365658367102540525490538825073555111425423571324778820610801809776867670566912058872040509084338196891175819987498838927221049633345805448608786552293329009234843810446084230220450411362585016701690287064567304219500964054796757696276129260289960540537815216405393108475877380596230593657692352765010679933249991915974857620492900980583722607828119632051449597944359209458914432344887991865616999799592457987836212206564231686462252012510020803626788644121917168154933275680195404474704641878517044741887370717939246836237766509458152326444771610110918862749651968761165775510431492553006304617425495823738022782177834315715946020288447883846734347611863286072508540070502410741216129276874834303773161748585602751460462243780439990670684222910021207958708522613262615757835625716004076289476976181727409738940957503517470198959559285910875098433933165867520998763693293078778856836559152717258782580853752958504088791634761647512288191791222941466306379044132007946829132034351371590404206926133753754168311088256367787426945921582692085183287376433472420302143079155884177144834150602620214118289684619157007147537708350973694750582544421674775951726074689823356991287443195587284728607567221233825782612736995185182987503306636339521391007606966794755000231781114799918029739711892141903483638584831361647868455861032416380550223983285395874637611225229466706926326540912563884118786264221689594970108453279409347950581072786425204776753612489979658234656360194599004788434364922874654421635505748216390939120305818422302277430996203428604160352304193078916771744179794336771043580915575177939021312451404168597943384204233091978710514138513777002496616762082951773929471963202400757648289310865405910247418965056563525375992455897718209784189361420882809728144396962670672008476886446971061761752370823127957627581108285517021100770592618053185148070585881439002880844330627734777430432706645352876429866584375087357368792855225630708673852719898295264879845812426454694311175356110754465466745714665922146039346418974032867817309214988468587133488947977168237734465896736630601186877463551443572904501809800543483278603251758245453220377496540166781364246063981728082064044644030792088782396458457586328428054606532463733843990101230843683208091364317184837071383581937996639210774248140666333835520118496798758692487739124487407456207483794546246211526418057432067381683570090693351306768951400764319796123915521764950425297376068665790323970764298576529204521276067488274779306796380329811126228987985605137025559268638034858600801553981912629460704797781779962958653130045302708259221287741043567752667637608515124124657988267922213440374158990776419091627798650727216724975747587697779641619624445330831962817104797541091064830836513888171482010654963308179057505141623681852651352017388122952393088459146633183155294815640339895970113800329084451273246148030635983173068763635866663795179867369835058077971635463689869777046726573583390235229389352249217594816416969216166818248644484396187168673026809193017746541747159461784051032055870846776435992795550244880106279481842574798724457365507446640578111440174033925880945656755609484892885402213628706662135474679431045846577603677141673408183495165085358848318932832671204357829252888198541636124957005910107607542197378216217837533194398206347371933435125711990803222114922409157219341956115526528650107709997383510877640083500753730098244167653265853505745759804211155097847055869379042792988139217548335419531275955413395634451584201095658024176143085699670568005077845089761245618820629560880791578938012764369474416919463413049640742727411109262793560954663034295333695841391318871057541871154535595268878370154871288058119137072321077309022014219280650640287396085852345669351409894574523431763963599841653069998885983486714737005871872133738305877165796676197527757666649089864493094294649802283966961419681645324744450164246965106567957952051800397554879288208133223571496447365415624841578968616611270061953050671910868647855348685615963178363465201172103611994986879680562737810826696095725020214149915269125379685287248599707537760974558143120794587074485125707846911220889101420502918609070536690909587187619668036193715518340058003293067184258203084415713491800568495599923114940186989415318130940493320825825980975067732432860926259548686778209400843879666627032399001935327068252381065267041644331961212090628637309402267037431568312323936215873717878393206665507817855066188907620915524086105553298113945210764587395554485765634820179311536275986435979377113666076856235128336766823372016324999682838664081890418903127120051668925217926821432373961851686626672193892482101097073858699316811728954884343735190946131182939259713695406460642239914060189149837228730351112236826538183786212482657989480568137882848332743924490817811467362836301983800423515291251608494127960004421274494906506495696320226927705022373938368555946171943624894588427148325134972810076634317111619488069838541985844662895356276472762546376142414753093395060155230844844638544875976984607149326900458067483469483164024590467377762630745424447745743615525806527262905165732228482629538895347496084201933484513880957471152950703775582325930492398362185951181121026408829794002584553671557744670206642545991492757596956268863429538981755994719910420197213311794418022288437083595323248705429000737377724400857766718885869129398791316025466526316142598566538022833241377447309358800905260365342165565145570648973938936094017263146688566849766469959828844311814924499554682089980436352346060956977511371927332201016892129342764225921013591797056854988321611061065821770733216560762331984487046932569963608045261605962600093000617326914786736653991734436242425083807848234442377685913042462841815831320193800324445743491192413339811369455618988624127343674794792795176896359539785718764915566434420858786520219858200396858576995809646747867452815982530576652770611885840166883351934205707434078000281780004641482040856919657996754659673469013470586186572604167321021219423149193511380398997778875462550120375957568278298127564216616179041199299616484310709374160736619707645013435246571171718991505692115224694380238801771803852404480794845457949513995753270464079936299022830789591424067240288461321845308753610574685310874272906678732068507918037401426655524733627189200873892865597136344891136265810950495508358382389921927501407123238196422488170108771650993065027253543431779875076706211194302224436065855286693100258628874772130433024542802379114192806462556920519791626051640760786548748979744163195568319090612148156784121534315479561335141398964932700113224854958683469107651207373853616409957694251640827273258880400476619490506095329612394681575253669788652428942098038002722350638105873228832051302124571277385253594540776690511507179331341891893579671869746382553019752407515703793803980540657576182641847057587033315875790131075334737748773790740335339246444804570619774546172717237271851668728661852222843804809238191009252782866103879494880958120580335597032009628194513372212789318027797886282076891918934469127911703511396271394197918043441784837592637063264654130498346645175925692241652758675509774380999682652259821576325185477293125380608044617052342413351594012774803040317778957777760320908069198090115977731138668743438705737919510430665163819973599528280027259348826107473843411081890456421705019323349654223415519834755063374901291141829000493614556594132796124570708367839478631818235966441920676728142645898483421761189774268617315937082831380503768246908168414937237630475860256463258150769065747028971217075961538838236889712988765998052015879648936250502454964841098848474009812396740152429397681982040396733726974037468232867842013631740160995582673810041576706790742796856277000279735023392966051552546181295511522306620666834569408529449822550201891513401098096306420572205869760441967240848541728247228440478394731953079580467773698056256695294799108202952565718578561784961168687665905120861736956121974471556151282543368539276245561631392468458120522892119008136977348660010416579154903343126376575059754404350391737435895374994677366622134050180773269550218083806433902266283830568785967587962069124848659854847810834853866777678798486066125089057709123144445923014846962289211014764243549158467092680125473577732417107461626202237947122405473179546973793596686958693000385609239288261621881805611549910092580664103290059137456533497945631571929684913195314075597371366017193757902848740978843666106015414481136153671205960891543832835583504614945106385670407631017773926289698078221744589690752381166016584488803796778158268671275216355772065834052559922649773809286284793048857368979133204728568326237292745359875924275383593800270928959709640346287197588686747280845479021235659361503837256126768614613041103310158078228357137673515986035829822786377218839986122159788628496460860024246138784329022582437378620655311739760330143696693732424469975320633198696607893006996112929593905004678118529727522682463181190794963328811887946807276213545802733934807362998759936394130712518051881119344101942376834382479759325463604643716311190547058077712862297578626059463176593266242864195517624919186224645188882648610261631579255839222151509172973657816982993118398442946883024482271934524337327249554093946776372498645356476476307414613598884328732746448725080929334922496694461235646127063053315336627724418514862156727002201118895368827081801519653138305449495796250413305213046817171983394601688746692737430432574599127947181589165417507461740730707866058081256602847430775433801889230325353484417932805103727257637275313560752511358657668385841253036984810539748002365680144966315406385544532475305290554194670603786600566849164076975251166547402520124391487427740490232362665259938501461208169129717368739517189161030111828057204668271838126418830008003989515696899189008426807860749320514978636157601128043714989570025861214419376037008573709028620574673192512277285617914713568616555917462205048926554056631604542467601361634129331016351706877344865313934705273984557893995878605322252983342464679285662731835783704981341779948381901276337561869263991933751357713894733348163011434803943012871799351404147262678833232668820167624162129437668615872796373835771618044310017259323400370907351946488057406339186824616443538455289990960779949141687006229587389380071577894240846502461384437283469290484646169699565979669009800952498156062897965701248829117752894126773867035056375948530460272160941375068826247226464512463588927688807009576333412540159219745111340437249283977744075578951702794893227733479353344915024160622950459985904241434672122214111550285846534212614563516695172423791244595225157539179611807400382564214481761191423544959579604350005574699908295590700210007825579161237442314704473174219823457036512163753784004581196943952253628034538337881479619822085810347458632589875819175749213509980197133479308536946227310095122917607477226067854320588372327051619732019760477770974723094568074307110433000604885513942135856312565165174399614434561194480929304996203688793608586706817932899284373936266933100147934780936981196719033452364946164876046407400590833408710496178661524315815336161690161763040127337615616202640371705818356199913933453488506464167501387160661409951474856864603202857204980154644847783869614636918322889485327764778591418948226652349382488800271021735839378086919339416020449249349586253482255602415703650186552946642625799912158680379974199156796907497772416645963607902183978749064557074268084557489417160241606621939616397663311265050477942682869625878950965149175362545597045671693801278657443902038402384413762705295031032132781672159542812596732393992984292198116824186933344445709228640730171933507958821484389238350462925765514191914127803624395166375316690301177230083679697760666856335066881016850896904844586526897413763308379210207919267006403145224823661632681329113903850330714687956147761484816947190231145720105707560870561118304628374348430915646380357765674976269117084066339640039987132775689037861202137560895048415677255104880139946032867120009068681587227296721436081185896875376319962055011771554657175078300228902687894588167192557247080433327838182797767378235949431149817892071265057600011892586223079017989958044042599889891736557332118882992357168162048701889067961396786997127657012026697004659750615456004998640864950629086731520096822645067678500589399715603162234496677163330416018500214777992954177443648984204582317054482749754628228745615875970004298295112590786526141369902377513808360930694428523326350008464532647587781672512994034370545774479280353777285766025524386815635779587804745811602959498880398767846304627842629698206700773431064011987518414938051002503101152092795175915005463806158802754735192610689928868735342375023680577307445124352830045517086233900621115495427868121113967848671975653650645139716461697755294442126147561102598063389798683068628183034105452502022026054346159750856204677958346826950051725101730490490845404563743555316943785075729186785515289993104452703717626346200473921428143365989834362049561863538335753330265683044722252088198087510012685798909367598040129443499173928597735471316410941160979513158914103883682177099492078472629528906572916904334118162304639755605203478261063672536016417105050208970379077336963125080935620618599570672387875232333189366002247800359909864158088877320262324002410434683102167417617958500033120071744014401915656275613426209507638172991972036023501232967456015074090266548885742717390885249898189231833141906313097948614824086080633373213714790136896889749990664530732433403301261512016276126450657074834056121333316718702623537470726696164542508229598566007103378401783442535958373583771290349564949261733730793440139033638561482678105935841389183426127429538016192427151138619848389521669095519262445243366346814663169573660571383767774975641939041152484551921600947341883051721387207262459989433490308282792153684137395864979463586250734429722351125226880339337338886928028367687362290050078763057839866685869769247994243885566560529603597455036529771411184559454331168085806967947922810661854124028601185813615874473856173239949657421461235296565249917278966746017482275266110036198333242801284821438866947546445721524977484062852706217032845501022220000810142776871180415832998971097599932481477713905311167315233235050203433950176228156165518953666301006798944948103309097012333976423638581589868023982355230837467126045487433885472430022477287113010635044646107320880578634338540519579744612879430334903093226330578828895596061833975461664457538398209574333717815752703523384057931998688638479568222229556864508359164763757407607199977122545040191521752510879803834686562972691653320173826830751799714451854995185370872062344318472651716618714972617793787270919002690990627307931075600427932609925540317055769064820318287996815967229552456130313957607907590388353088148833202031284949828428671251997811101242008041524003584515178352030752512408428294856941011814294788312000370227582731404286048881013050650083792738792058776966910451890290457065530188099387772271844779503423779840712868368401529982001052010832847715701793554761124279205746036744425885130606212052511097779337680734068109574494839157587199154583226529702743578003604344579081069612779052950819243265033633921003267286454228457825643144082955246410928614646456472456073546881999693442714864628394903417094320232605060831381027307813226175319015664886107501077754870976006707611029766968989712582209531170870450433695658188210777352371573959571308185109325284149216744450209294331108654082861006493701785688383322400058342329758540755469241665906942183550869687716080289003779955366563085100135046043553959227969675156518390605176816055591506115050074149581725117484581078381964668963889387534381767558591561924684587775139553416258851797216690957692075379893320999839769872567344044631975008153491900810370663595673405741527728464641288090668956681916156976802151108832548948792972269085857414970907066023203239662809269032806804767465683017961107021906731604050869729260971697247712296581867594995942761156447965488121728879540262613087870729910208272372976226088161771999434542519907048894229015329318392259317579068451338616207624450251687300043596417295091507935865504183121709959864053810708334526159115213235993997598707174245636578443161472431922028898982243768003188751598839787659168921395013208853007186206158394278004722034643561214543864030472105661880407813664263500043974579395908002372609023945184120298443764245389806303566668411568284166715333538387353969626755694781084578078555346084419464085128634836963395029492018388414270683790806659711327082135595825975381688897111933873431903954508380366831862034697465575944478723997705406081777724515093408550361139917591821951178605196909635100223430614286656704334359883520515248885265906676828236323934957701634926321141816847543472186626629798279533526487872919688789535403286606794279303943682357034376415624806679872624215385986283571072548845193458812003430335460435981685787738910041112198760838291965858611406503737291744274902885631684700940983023800216111942486145328980299821706218216098144366443175956774577055704872504814628665531529556820554819809293425417049656952508416153404701289515466092910163743262916382393574723472075657538376063461824767929183413575371762384441117706607776397898922345267418997909926697267332216498896940984110594388746729597696634447438747692427011313033467981601618063830592557889066757099453266837754932056292604196703933125192131069798927052253622884448684209249098444759272602301664137426298378630886934841702251654096608690536398215827644192645328218657856803906522164351552282052533480683140206232781571040723613425319568427592523479342469548651255377788498622918144711805060788784901865015701377583280824844808967436991719609688496783180047746129486826288425140298163440316482070060198643193287252450777115403601148582827954555522573361919163885299296290867654744670151437317062774944087469391390093181351581243475648853881209073421347136507846486707118843160735666734930816013648455365277253363710975707531387445855684595090815727686046608407839631181401104482188995824871785650979260159511053400046991725036960554125668241180895481236294684798831902940590730925027577811828319593195077655526215413572093060520951744397164446967714543622196239522194070327590092777650965106838331581001713224900414118337380654319748526049480629637415817798439076270854783047549782205016464469338143342272080904331071417840451896624879531650363278917690103073294193428900889888910107134246744661374790265929868479661829331966233049368143181822307321744071550037110615207297076170807275094516783119817284212297672371130358718712081067939605537680864855142158122503125736796439772099743354490990656687934587826187056165491898378193346049047669460989350081885980334643935346345586638018376428653396270555908795566611042163809061903552441057251811855464387297101832705998808107426488448040925081100353469416142563340501303807039677011708466417833271183389487305139153365275848829480473004250912207363204710602754069951416281215770882044764819283028970876219190797347764147467870424307573922975690953666004215108568238517944995022319869413722456357364753653822326378216961613846507935652061098667293472132833963993808411582364409015164403850677233013890191315562196419921428741598442536901914078746601366977324622663172086795690357529497335518190240404405319150834206941669985380389790753657687425721704620427380733337217110035823812195313359975686433038739123840907470332769090685241140488022131137894265110233201385485158326533496649012137468754334547924110256769945907360295081388013763225147175355204945916890192190064223605852099619373450813803273443331954588474087763773070853734742425774189864945935025296305841765210785147512798059458307940971332344972378362161192907630978182196212400714968365920502340195587963039156360120335493588428743153857875260995848866282817212948261251523237263609909755423188706358757349966754478866519545757393545207935859678883581396502833054710897872795185889836793969561684983202724838576904552658472268938536681910235458843853933003005625029014842896383132533024263489085374114474830688661660216758431203263006850124455836397716283424978980260906534395569133966124978916818476872404430657978136916940459558286147423440104020582701547308135666042108902520095029482236621263936584035806227643992642466411573898389879975550544046952350404432447441210797961470061807252593497908284769163573866065022098770048074224237657085732792955675576094696798862305176002547934836843093753027514962206154328352963211060524734403547363050275150121533096435856854838911081338839744780823377249492677107395853743038070427503911265103488454660669370604369377632569105184890909620639492172092773883945575010931471976540352010134624815358854637388599775592387073731018971284340766154311252401004191991516036957294944215895619305642292054203406819803964218514095497698677220619547809917280295581367505716938197046245649589680231106603576358583116382423561171856040207523833417813460598184366674982901128153200582955138126475215907357250756939631862420061324646065112949854367527107184974417288396106193194746771274709266914635386642513211536737537990638853454965221004905978794076392084177041779301623106635114654419400370454153670174298014342856874637331726180310363183372519708751707221864490357307800110090244847366950880596736030945206038241220360038165890988685689538698390509724724493165356558163814895261818969397000401485230956618101252743686843935882929900648809336014745980617935347538777237983955598976208970778517089361108727489799627507479370895825150079494716944494170406429363632463063988897544299964199987336130743319700444259305554414850214201381208987573549437546335361128382469160894112399665825930920848365989693888726544565062385041229758561828866047882296109264058625796137254946781741048849357506250834372770418267874810759953794367257402318655859810683936415701033314978245862008369856745021365730910661395761846821333813689070006448630419263957856450937382121269968914494679447344817767496227648514566978257228431473126161469323795073891480168275611117235050208595994152128863159937043200081513381004916525109288382398314495668079169742625066418402806425273793397886653593447998529197545539138957163248015299695417652520528174063588865003085820391939319906721522404653471644696643728973718895115021031020942509608186324586583104258880984019171302819162955029336113305398434673262807919002622126292269608833366807496797120451785982069581144185989009382621950661997574471013122241535429202185258195922183942579473371970115749164055298770710339862371368736798728847841347654026976992887075763499524473351534629226018330662904269545946522598177080427936474632291465739912760173802995704667169697097476589493198801892981832078928830460176946670050042020252993351235260267374850884783341918444250965543415188072209036870973072335999755582855714375219298697807487674433480458768349571314181682775196693386907193726119280702843924611457280144672228475018213561100555021012452485800867428931351204439094399605396622416022625361581326093360495979240167881657389080446023975489048596138148362528577395191068092095365858070020195214174049592108179978232302729251335106114801421814138211384262500962152106587408242177333914058790654527548833838555387520002760941667522638820255114012258802518139406198216307254332904346279760005881890559044061825547048722464547126656091719700092125105235990274827548709906509304904837809411151591542536405481762959359318698298124431908731081742479570867590050756548870453256864639898056734582691611188207070698493463160515844315723570298482004162414465252642305088344146214586918963848475639610561507893095693400229541999175215431933691752162181021806706289842603904835383243462585740450920685614452290289924458091614116074914604539429092806031016807349315852935579129928356866002275620179339020198091912858177627798886740440572773122980672826975814563500921936270890860841759555970762588417971822099985796502234205120733575309909335496997593029631399210856524820137459692641116167666491361958892220738880418689331602661776677340179748493557285571490376358672213459483504042696077663201859972572943594958321593028336634886750686363047020343284392222855155157796038557750033394014429893833105488994213853526649863912097611488826430706164930425622130527242380547209794283034136584636544059509719780323111654130529010589219685216550844382979974785343840648706782207825232060148802612199167796928580102267033066293562829423684411187457800501942676887360851027208001162692922316003270115298826987670464004974416836751136593522603413939761330276925440178162420477537399980028608126226337950540501369584076242277615069668250017721688693303088801914181126351807881272640082986936560771895488659667099561972918607958092252898000959766733535127031946444982639295321252695991540862738557178099922639622675862433141695638157772534483751774813890209148223974053546300151176093413485884387869885403650259662235677085424727937078784787147756922710289168251159721561401360514064782334713779769032548114216644706818800359263408438410330238617037803964389500796110756550734029565004185654272974594553426375161881078397395494383251933173671313957798092862895736081817059166525154534434664293568030055501064714634669064506086479285914627722296716262873843947504244603437638363894570736017919915732817478373089861067714786678721160146408612174700196881191592188542546017881584858102558185033944253288774798415675369348530355220373384108671725660717229258165875457238653429877460632757890319132774205995257449347081050912225710449302050347198148705777566413911756331963803507051442238765060900704129838754717303483837252081231565988681322190240533445988549988434903566439446534684273841721871284064297649879432711508157633527417595313058160812892800257665919576864738601279689704814557262096953338338928607688957673845151040266929216623921635426954891737918239697229764636691452370392963046491633258300574761916458896314734835961537585118944694045973723279741129665264468244446446800304696931893708122015198030488016114011081821091898185731518240149798741263242382807180375852414181753482687718490029680637730325398639649841982697256664177200696472545268399020568839581768070675107789884045774722294188498140935431574290191338660608388227369735080426245256447843066034717288479111500444850900281422609737759745413391034129313390494738461186016889085968413415895859841967967080228785843382638764664486935208863264970390727337663428925785378101204379290911851326704866057477118402624882450531849736794420443369851362437931616747291266871236957019312852189943326382515529420260094423473810951376005849112541102705564707939832154800128701542549734218441324800120783913457744508352628782385502557437018627627244504574941651213858236736882845843779007761516899200652556889313074263535151989125699355582315148234590340696737400899103965457838261688468879948973121874875857504095729501679353359769982685043973148424300641169659193791689072284192976592694675849543703477464014420571810517064589428275010243099000027026804446133273930375322018765349366722500490869391799379097129408528576919773627505592371923462677146936645624622400119588374421106529049317246459674210189420626453294520277980104353986074447526923116779788808177747863669439983114921026329992571393874890685506072928691717331171287636228243589557924890107969346213206871966577946506038559906734753387318121637537825402606339628876018463234243179868061653062651022950369472941446587269406401185878259020562057537382142732177911178009852965636176712305319472058146969367439938351658856538522276637786161937426992682778367886227486895622565728554259865474595847827193854587081974523458457887399902186681635117632996620194246428346173080825918574090239841368904596118488041471221600843026231304208586976316795453669659532465892200481587156646097045414339231534669414373819344288847000971544296749890978380903227589000733412713664619160813057707093744001991054040690488570037786834150734875199406255729978881508776208539330158192969138398170183521955090794230097418730882065297393345658427114663626446026438750894925647477368049496054612840455159639368335315234814475015081109192068502476932290180226705684618865182579425468578742334073881770444594458032916845651158988266552292441256449610209664553995642623232736631965260711478052215911635350786712285701197009852400279258613255399485715710190815058382312772135996261149097653027832015275991193813921229693600226760091297495227223275644762433617663961011887913795752820262955695763644296735517027647487563097380617291373808522615219583789068381665912519885897201883139921859232970351427915512072213964811789400892839285569202206585389744025468187771831097515213346709889060642782166128371824721891650777362607522597875574692912136261313069998945263941880881240193118465594066335516430044368736755922807292415568710610461559738937799591061190106232660596900578212518429690204292536084443279690538618337577912316634895391513588390640804753131268115376559173924467634404979775070622182321789939240970864914288237615235157020795614883529247192793895269981720270129364289071907245361339130474148935158698244175182832230347998064869182079577968861413842605593572164151476212815483531021429399431726683556330421838688914125623530167213647315609618441011936061968917154775110330916334965799421509784593695178906963106401816101665370649121976535269188657302504497380989895270690748518125905360894671063822987029661381661773232183541970241343454181065812676694308228633202592987008951406499883032052990403534739485800226460009331202259452932687716105643135401104661067125738560515146627470639151407412595368692378385584584073408143210712275849790778710129052474467832532725477620272581965259045426526611456800639253628154118046172363976305103385147755613832732008183242093058554670611723516167863212174663428422065885167063933555094574858571526265605245152382122120582036552202589738503132192866408370251969908485402606539448786316733088392403113999672562087192619328434364842543937172242338279244004083312444725478238182475012813584424650418907517732876090951200208760994493977992484023054164908148215600245734720806600439300824952164634479752221720493705003342863260699050471447957781699822482285854450263480916403476653739486722200994915738953317664740931566379384555774826478244393393827398107130772460766651546280233400763866512773495854392497897657763071678737413311968731074438631256565394218893550091609182054914711761751849500221475434069671284126877562888381156543062590513498190874638695170615503464037663123569491675090539974726330717310444039298104895406483994900047325036908527411876964206196301396756270158302357530797408536607246920125783243059818421816020527393311853593407829466353525344449958813430924655027353237371322155737826084195971748383435741770375846355696229943285118178112046362083437425020759532366522323919950234769466982016490608198650080668696042306192527774142645147202636527138221126325668202991365272574176314550291347941933793968978101968217375315772778212570913970875619106634499819336943661264114745804183043483935450892910276458605442038172839574089808567280601643394663706131592260924764002316119369021668377926514931888545073415543171542307184940877135568896997653291905851107908605732502005589358675119086366189965723887447266696760353161669729544991489350016135179423705474658077050142890195469211667899790503194447458591255364069780734409748018610832198196289264313581029398692894274816203352163361354121246722598062358987431135837385632891969041423326756223761217530394265364566767102564482062734132151307013713743708489636044014921290561334053874320221526449763171156883927809841412336252053349110008025447787157990633754364147949335701933200794704906277978724291579489729052367110655604643990292442115383439768991156181169610289837712328646798904111621549288967127455519466989439582159783515149193426956389127348190294050713312651238680806439666450116744890321920171411674293673007324204557130942138015375896899049890241763941592229721622012865859481041284543586103852775830525746428754958897293768559727791056378849627169661134853879701011166519032046936308295996821557069370511002982577153766592230859285188766703376380018717381369147286627205952164279102861455186721097753356263880871554238286203455858796217870454553008205523634489153021650204065702795116467322255251424207196146667764317371437214947995534558737436021163268799501497729637651616175290815262740517459330095511043266959766385754687073425491027994367085850349458323732959169280139177800165408627363694590956094661445576925723059354014496299614045350255667950828894744934072631677769385030126577697421457941194603320574439265285279625769188124651439211927902113216674591173738969725010993417402998151644623736869529140726250215702172513039334204316630639877350156628453175386291510606850906743680043377391129473680563082975333094921724437646862538410857034205319681879814385346750461503827122925484483099974509400226431304915411262396385271626676937309653952116714337547060153927364091771461407104878018410505747778076661814156242722517874750282787534055386457955426216437381582572714428435123613009180813703479480474828722427451316346444426953567602667598861294131836559313483100027473180960773826077106143319143369770416936272952557478740652133908922489902396841987622804486721727715699776931324591896379177653915380805170183029090219768038727364260072888665332523837754491953284600382407697004184541485747047135551141802216969427513266003379363346979056388272980006168958921660569445728888891620719232577632270603586509884297386608494341413413979980066761051824637934674910478117954579466641295992269238727615774629654495642556075399757796394999098424431385071335872277687994973275671448147978084212134809096056560004598024336188040640137090901223540627338051108516433892286090632992732715975716838745651092409263715761365868821872670222088815441775974627450354481445871646543010387550454484482181802827053931196566010122012999167295072910605428355217129173962038825832291576899656534397733309812623601668781157399833966252547662651775986261949785062532012098062377834473926542549573825398820334580183980832085602202635390799938797992764058511347265643246775525256225736651190618172858049644479963161677329447934016734217834734036995296414697714198891990430850363622247817803719710768772266033456703706286977570017928986302864298001514637778249627180463811664484602384035949743190779942068348406801795870085615986355215750511635567891453231026322869438506075805323181292291034842441945344667567400988858473647696674816335441445405982203266788470895821518888636660234281284290686166780124556242417973093127144408448400547454294020897486820915197411197898848469504153787002934129507953808158256610618917182203139124468537423914728978821767919351980354724170784373910228777819890638609041647004552163433843616598328728909010370551880809478558937281945015102264176518058893009469318145913381446123356176640772208646214325726948401137407728173136436929369442725985310491458129044355777035934116228406848273197724981025175271700403926757194883744239291673594219258700820304401465285783899206667613184363967822324586731495521296201081278497289035708832018365821018306457587575711466357222734585764247983712914427395962331205487296404050063582279458545961233930656511048466914060263906292627295303503942315890090882359535254275754543805355224865393382984245030031531929611831811460695506478855440033383558300531752141183898582814181238766777702673908761658067324561446908173747459774550703629434726865564167703837757723322974354834109726586474618006634137180402277839784944867463530890049734448653412452869209164736721013395232774614536501242400681217541670010138588780032249518630897458729348346373404371633379084424381095875636985147373801684818811792076784128891480096427553386019996358204027938206991058932753232879715447316208472181690629555878942674224882629232008808897439575232318479850727766631387975891112964461298128019667534493253726385744314394927630161881135220517797795310233683588853488016737373142741667295122148946435729497547984098271842150034948612199395980327743321241349527109382849336943527186522987459372694858526309609684815850373246126424466031416001017979659329016975748856357990424139777473483875570919883452805855991428876717480639528514943537563072533681311091079520155023299087154645230725230700350705496411023404189116914853255506835773546220312213293948143759493606754264952754417250464741912518823621264898190181796763822974882292652822584938048275314880295354316976540538768496242072397021477207902464102219778926667436919642636873330819677742671939253033552181242041131328028766368163704587830225011515170440153366879246421025947540928768967186214125024166280408243466837466075808606956889447240033133274871276949510318975067100976603379499870831082527761618313795740468959839271405201887448401610674592509379954420826399905163134339910279651753102398838795624438368025085367141927661091576340127329142602805494596348988304913277776851602325450837182477756424298413220500368604370331147668307495874239874117936347577211737882370897345435114651864479812641161752053252897561080000647053052604519323991771372482481126795875209046265604872275060342129626041023547001034479759045183837187231161004009993160492930769352364798283313901079647613932792478780069421883717963409162841989429844212576706139801082859858552118284291179856656766021300100863243719017165021683782533253746103693678547069827800926612478104672111994012743664110542075850604183856342638225450953986623827197286279444214413840625801339549315522688233177587739789797169268571168020752673158346715685403675493569132244690274816430972084978103165889713034405472798797639148697750378728925584905684741711597076320110493499854730698948904762526581961292643218819417393738047045766872324607516603283725439228054971625178629946606591030571957430961282722267343507864884648895742566311768900086038253640117060159190661145889706202652213519741971561369559883718043287321075759284962252644812666526549387616034370932578312635393569972931123869381882129197457743612728671171665872266669237631229580633738138093568273262484377596444178205062493257135148904317901034181882256026811129087963125281502504172605089868631232119805206910856665504727379843094154214364323225743082020518821832080071393823698855316499181899650741664327287555867665602107023134811059170358069602978826314128907102582350634912785266358067870557022720490477572162535672728415647082762119517420546933529255460497263875310435531084388047613638783568380625556982317147713953981180788802419101947910646059718656545312842928745277420728728373937545702192394179214706840557764581429161704803670281931771616674571221339688518873357015719496858727185753117129955329500033481578450843575099596079041507440080720878822506744682937961665422783311124597217452761351747362655283600843900029306938559380911760819009152757666498377868558052159916626866870457179284057695009728440161862884701496159566663873537499387856592097535676975941095587230289536078456415410999712769582731641918597503716355319955451756569614416818955712088023931421209292362164240744442473549201600494437018361397906151620545445467301299789042729716697282723498645457913710019136937803379668643887309757915974254312216175077438993479388724903388199899158355236359413532646198690215931962644735244861689196294159065215060674365818732631150258132950492124291711701620262824897891284059569483534979785051207055189862914458703404692246820710991261660894002644211332971910836736113380338373474088551012960868906106393651360532888004458092715452254821533053206733281966449137292296484784802279774785333037423753559454584590424069657770250232257833949637613229989731935996243816690463194235861800336123655190718331583812237176275689365770830214528968497786774173369368608779707040101223415291168834019438224853462224400144494753237756118301558224463063982918133348607376395299227909358332292309053455321879051524240148082907918804810014011604729763526549156797675037285151230012731923649347635048478713337101454036543520675974632849116967228595107311909017001911968669876085500986314736784142173673502330311447778956543255981459706714394367037386414137471127166056160993576731172329410997352941347455963902378485610868432549057052098571711367936640498788400351645992464488484251324375793038784361542596852804258312620579544068913536773088445137080535573430468741445978127127626693683643080175536793824361472680620955820046659721640965300351304754595345228074111894989782537704296959787428168189004276301459045570942452201903297104663730126521078918517610367716609991926890191801461453491117438572831428298633010637429715531229307688660047059624423754701382756512006767537559983567628401895190535493214428687378846007550614091175263150676558537473816282243869788423137929455385542279358413084293882903234813758478172890867569745132190106903923326412028844333081154166662370604766600656305275750346609680806782048109602873619952903139442929011828701909737397180850115887809695966461608254785755298509769897404362254098782482923621458904567790137860056777892941942830357496989724624372705995956676159276160992762231940773971158081184152533599392886602739220185399779372421733369130367478622603957020666439490298348127145748425008985869756056596531040214910676709728074667846298934322568408372111047255314837374725702785180626969367558038985790861090697008362672965927894617958714836830403725608980211930432439028613340893565181532323088669358208274164887393344668509771657261743058010839985256217556477879879263159891564116016981904557389846270623386886703591932059066278055343467161893400542471660471756674094036391724301183303849522750964936177454981973004210842325210049742479354849496072196025831936122417266500720714319619819681453201350435986962472203478138798435603503935785028440691326882151227648343070469476128117973032855079145498249249015458484050423698900510883564833593883696952324421273744854922720658210541587144923107954764803442704463245670074048097628089788427754185971395018930094969905726705964132672077514844319237252290884491710368851381297716182251192830252317506393177978478871576283569407233256358720031733840264533991085111739394227779164986372055193329556673193648545181097519464507526208926656333218320741336882876283704367094155884544923493111799888297228324108497518775708537778389079771378623845979975725770659396037818922733508166681808611959883046322180441754114216922920533392711486763153502080082233626871163552822315705047879042134195501041295068734725761170081548008396545761121738897631205970020718244380342419920314311433036043306335349565119038027860408453106859021959256731898931731355826317813129369834123182137744656822927237164744478110810766946844475062177195735176007645430026584737992716402886025411996829950331355095907382987055523658069982208009252283366047085464126623126715302699678059102519225298167839707888939328105844051904552440560234126838290576468703632483568358901464215068292559893535680221521805980421072697005211524691666014404327427776121043307094207856926172644750401116353014611681162485171257301632121251278494185783346137710613891912762766685343569891132056136999763686998514614414377404191737190635431731062696820383820843402361063512866789882557092070652486245156376545313987598857131909212555904064935865175507303055453873483947627849377446775937745303258323480739710547706379989589020601045409581595542222068563592960616277131238369740821094165796780133998341326324450280969550563297200136024904493174891081263264208688942677780584842479546199330678360146759267435612480018418464982348564793645565975235953227968215955874140298508950477617867236586930926958182498936293036395776801347286585210852163488282452931495571720896530816564976487181652416083006852080341497705019864587190080623478683240149938257508086130350266573467907865866609399911782751178822389345372393667986544530664167878654302102272354751948497452458287664514572520497702013881351426217373016213518160082389584047801578569895455127659357059689549202318617580702368265349288328807245684495944120687240197795530694176981603387847495164701439085857188210982300507348363554100886713736088003646150951945529472679373161868401222785209141573902289272531676472158697512936102957338003260916916340647632543149738042080895118088478487223824977658765566921699084604919985129915518529738039987640153434173034116952698689044261120687253418445683902553234316913539645153349404489273352160560892227243408106314255782087942538460596319229187866569723429424545736507136724847745886798847442346752665027444339035125561453746958248970978764207726597659793747543814161534421549400490057669771636817442310995614919761208902828140787949363877013302912166019884942351341784223627464786434875127848862512600422416051195047906660867409813899271138934354237197970779879316980350801305488028432050893042227541103219012921061699377439256815760795844133136354519213968726781821604166070991199490705320894021787995630535928054032870586679961086465741602534728916202540404667666525461967558458348512799419341506215815256783098618719165119405249205633790558763405916980750600708765510213798950428803371794354894934845532305516920527986428248253168675793318253216234471278553526133885141939733294490040742117754880204052685017678564510855272898196943312327869339098335574576182021824085476700935075481072743464521129948288410548956114899660791237339931153268098921520080506642253097762914993833567296424090434560000570076537589305214167715275615863732080469201122241222893945162200863345308723743797534890843497108229093151329569273452459542099721240962441266838796351711151849263868763958720078151348314666864299592772177373435429429135038989134631892137146231060345045608615823494193969827766932994209550384271344474472848291448297134447426561480073493266393164846925368070492943472161775017980307160964826535807718678752473637188194050973716688361943609780873422611793679541725128538998137234157227131089337909517905023281647339199918001459383084510241804479323748649504772165586862597198126876125387478039117876669920178892756593951009215779954262669985975450336573782216534687451950040768503736018944407991809616960903609237140330674418820587902324281445500157931919858326514499922467551631379380457699792880393177948044992610756949110699358976743697068052325871671168885736551426163988483409530495472317193903973747617881001217070234983550395862410326769187802036115521741354657456263594810884300824084529627878394809421692997320536303057078147826978898762075893861225974662750392778480619747058257817167217126981825192244387188066953996482569478409687190587560877013394137578039065597433480890690164591129069670844451977883069931979822274627591243187782726250212868044456276911861819325743797108736854105951544786527441495655451092389793605230468692112240252509187444315558879192751111012465034094363440025850569226837709200140889827743728550769693274725737366331450540839020124219884964282835525708951618086541957249885690423022769019696920655617092462306732741958511284955784691443947331125788225600401780895083285518030514260179235411827848011591949121956654359287488487287061494448702141029661383571916351818714070868585626142567827266946698865317344787433317784507098905824223402928845702395762068408188191181411636893758640846312329958590283655815283278311608469337658184364508254527758873825950085599356648233731557969659674550210203566840522926374415146679858727655677065887069539179047440036864098047926207362191233584448618768673373238553596040706483542848455470566967503210611151103446345817531198717966127501381251728116327598334960137030107072984883389168274232746607047771316085229266411145147936288314953047295045838904697181665561207295604762243749928263477052347330780468379004319278470828982370209662709394563424037805907376756961336789445723631265095647762182069068647499569001089816968443592642522653848594803294954006635490085671026088306262803500240532201441299799575279491638514112033586304027144120995583013284958599602153025929883838093079646535874807744705728697016949224860104004756711440868396358144503574364390650592667643810944721968372353681507586507144271170518395841416266354508614910079052458458001860678468998358448239547491769847016228732905839550958323140932480934399212671950906770719191663425290968220587493796729980886292271361219143716606166800317584084760365834322281146599876457605782507790739029175068566564807768901859384263742249646631746084650644033665087368238619285391546207772910964371586683285507578523314274380396006178187101280965286446977601814481841162265749534713519728890000806252868397029896100448909019396543446723426072420364258570883716061017926075654726013232193125157668153153025393821526683143711883347757626455153412306224687494023268347662771696522274920747273923509377089601897024925243627784143367156706093872734324493393979965698829909661212216486147838758831333931507631479287344110655212980322539537929570634332725160328007120481206522695704691480228350935848433016505596749356155919475702943364417792748482069657677023011848960483162518479957086882007028153826566702023899679359510368835685895416389888775741843346625093636135637880758050583919034245062849507309513057983343561862151833629459958259935447674771446871969235965274736842606595385350117486374948867971062339268737910963217273850948988062466019744165452129353773344799747057074224397194904838581399778057792119053519053837807363862653603585738972100160995955414616547701044165879944349995579983100284184931938682937262927677204766177108998428897745894411717232877534413235797117831298786968614162359028186613438168407642422140343550386251670209382204824539547532184026094616347922575659620383583319440338144091545331891671487318473105418926254229151145092162332514178798707651700768002500996961774359445325077720341812584060735594721846635034868231118980946752485471518455806589150218590669185662363168893225428884379455415915559992087724047854220654861960368631329548585903714799452545381836668618201919132063878362994797163914851787864884038027094728733448207325665960992515130934582693151494459797635798297680267326324171283341709480229046713909597432470127307524528584519992377366412236166361860545809742515454311483486894284788478698977276773900048958845492720221782285989342621424078338409286409429445413547407529242070100527737909132869666366191923011646940193948390932412708276308252274436349078212394213892341682558478523960153614697060761815406554697651295174176628952703796545932236674194708424429109515692456955293078327979283100101345269258596686636268017439117471643899745489994040309555616276007282942533522892106188544817013452978297223334041878601779830987969749685778227908684884738576720363359607975512076991701835082452617967568741396797142842551948442831837889586657352577254789951384574114380564315064198301706790118613696074397885362636251961060562947504553198997341175826766094522863198706910505594333961417133265051415315591397789725221890645123226095014443181269484238354582666841867365305899714032964956754319200356819725505521844228420768421088767580591267181409070981942099268669436330358069521041711981936537501105448239364283780095852526477016621879848035149608817208683354872073190907861558090081740883402521255476186520530566113467408797020085363018157219353439642916979741805805593801356002504147850788706099546321444191578962509623678197212860305444787623129625916632296509242093249506304216606032868953430070059200707644061765219839999166551717729409561270901741398238787258572468352664178913651305641360659360904651445173026579281111492864219709176360761414721455934723462435109635667924698812151701595089275840470961669857590825619393942215264800582481524514079871920880782658404540852779277737051336380598719155663626167890974602216374876203718024057851235050279899938615610638103164606200307458951051027938870175111865480502644856933075672715903119641405707810607888498256898211216834022680174391232568696855979519465342466472103248310691521173302704252062330857716443428941275696143739650701030651571737995934538327789302863719254561991391294380152269847826806353020995113895041227206023174635353602639025004635590186112592869479427427787144657079219133292768003562501028089301736834213722908920620792481096352456706445195953927654012678093904157527989996554631981530552896700782214203811285078760871061145530854234668776589872744680723335185687241811728212249192979739257542503771541509258628585007892020089044742135372659501172826774824068116818307499809208511206425645768390235645097941002156899489605178721997883850908777798051319524547060553939644082254014804015689309039309373958096494803437551557483478230065302531803160142336767810127502164708257109123760371480951099863026546717816446377892238970432790268379185579984937132760725556282884722703156236774608551777902676841404096829219227034026267622282507887351729602676176205756663613535829257800886694978165792009252790859867243372397416752699284960249974463391775540493408744514291519771239979369330237901843590210586720729351858147867867450934470456165922365954677605543755358509174817656942742848608410310564279956902115433129671573136652884251842037275189355644738823557778984041839422977514461846837869395593193476983174374488414884418930401943211667032132400072932386613965182303434001961734956238715282653668541840118931343691294419443727712870863081033770637364921383775538806427504968358455045571353759734554850791182905318091608216047285629740770478337538897567939186235961722197576929388824057513093967008425413277427151981038210617500721097339476980308004987638511228778868216883647920971200344833155246349393538639584777259493935999936739986908840571613895626568193185854400020660374612730147180311380785649406374480285918669708699378380593175942037146772046855079277649745042541226136383505463541270897482351761162225750230862453596743352661831280945383662388991222754068722138324097356528914680968001622601868540334489393722575835104838818300823320378983591124740743019763825123688421243303595631465353406590834768206828940280538426612880398320309182470330385798056482330121062119445576575784458244293291827738612061302455835575015439648665889635405806509245748904219982172425552203917031460298503860009417519996393593475416217126418810109516863486610285009987604697599386119836177166472095399908012705638024916232057777955981756430845360252226470338693377750861902489261098825922793951603063465054438606712679640403822108487737240837691777109147361134198318683349494411564624338593094324408331359679724128334659774024477832256017665458337358679143066516271972725550878794191990734266223735732872496787124676636891602448215672030161640163150680646080349174671339667642365040529431083144272247808606866367535407511819964654505614426569805500065852267567710613740952006241305173050087438557050663497157724507545512987106505521619378450273486156007298997543943322518434401257806611992354652855269325210313022489667247089960410762612068510605136029573416049860681027784456080231686922127354354765380375014717200551178353401045127467185266374358454073163185724514313183893952427589892977579871530918776136855916166202391923001844509963040858550183261491752859212234536705436821088976659415153022576793212295536916051383599473667807245868105536526873630361783078521159614685603025187597695167072074840438133231428048570703261330132505904014968310421657550137652046200418510397790318197963760867521327255985593319948507189266226560070862782320237658288423801155072062591754013670575364733792036469654170055013087412627982732994135674878502786404947223558499589600161626702310837659924251557721056992249585868194151197440525630872351155266556863776436905709452328076508062695724167291302163700398214483677461860771092292537348934164387415908051518123035386720867477606842572026350023533377030443740536845370653361386688107877669412443477591850438141449233876904472226414989732049314746409125830496789500435749645827261480615092379786962032390968801969719586883057548059562281964407515872607927016959501086678940079337418543900391938622809285458669549782263455593339013458579570096015620595026957721856397220518277251390134636705754243368711831940027974861357399306287522302367858808847274601955307334958539916953987198257461783883292720970812488342758135560451139038836481994943428081532244032659588739904038925936328026999365599598131243204701179402553708074659289122450365851413164731299800889295229512221294369322643803113645296380345665583840043414134191070749397000072763056747205587203126814753653895223353973838690068688565433979061516493136982370781937455538164082502531580287684949354455982610095844793333875265039616864402262937118515997577551312780979986656564009606102104113148218522326007843049553413639758366985373001225155181729632968269686495768523160266103993925928565822652824946100443803667470692253158559561937276360916753149130432742557441951628545782921076397007596077666269898350628268884858644316670814016397920760138162403224587672195710323199183333752394964285211896652798494821884925311301247398255559248938845341460793984876025636348200113025989817032917633473836618986616492147476055735433086718284689362541899638557208641801609546473631678923872480334334835180925805370176946745342415727034787601047457635472626409192460347008539205431136391864395340765496664606571782167806047748860487772143382501995267735107119575519490567609581927094314850773735415578210635982010110820497733599407108298755477594265629215252407781928605694543370404592857482955582186385733354649730661348251753950353657549134037449872455614121063439047838600583819758464468411168605099673164199186598920469254231164294514987195373801820160012493494112259553370221581235203385698386935850326583446917102710808727325223151511919927784302763187070594031364669445850694376837548025514965858260156589286929343578426172675855947042969309269216627983953897803771238406924575091122187003137260944591395780843748007048612211914700492991430341307240748216563735410183066329673087001400810052079797701722771341138711528958027180635361373719565241901081846618867275341553401950088300317574486848979033908219517143988321763268666635606031940098793095428511703818161480118699815577265873919088017547677650186535301619151096901047409566958435359274946373711168711753310665733854673726519192004193873279016588162626092430198094863183273921158856270453149122175796227522502611141731952078296997780108689118472957885270088869803957896857522638739708633406135131795208230226469858218299576278393703900055645726747665929632660095011017887378207468026705320163463967773218623141503527416509892548381397184961934956984910764233475259535862505140976506578925622782049019855958111312271395872540216073808436880846308504241312980879787291217229825651646569021771100665186162842653670122025763235221893406009338686574359404100127741173296406670179187805127056160163508281032407963891537930260140443327694242321279347638609960466008857245928794909581830701257371151325273023163113992536825850149035006648305070369634430324538813417993550664787414338934597503931456768920114084621676579073039854076132673803615297505023009016833000250330975622171646835327099208073074767158488444229272170288956254791266176327668460625207917685358417585268614790841994323858138629185134616956183616139009121995753310882210357224007026814862799115816575339606349664012138526116254033168805651928881159680972049174245307800601807248783891403968882908226638066213084374049819876041033550148100432858106913603605863664174967340103570454588006270273326779248477686344453136278290532510464719453530751560973626290335121699710016451486961940224354184110545027969941631748796561973342886075473702341704096548483642541157572449616402937882176905901418705323964794813317523585485403008052569745829695704543731109113138037201525179032581294004665511938287177320153762105335504774046132151142922398039436481750033943531256255498213957005600628522115427630425107172290850758529339348446936296356177327824330437688401641793370512078233367953894700825728266260387574267309002961469028340183981962741542756552059229090496545568953429453461436478214400222137938687187804980709329999683946985857047930736259043344497788037718733150484657729400635812265309730882652306124961281858457923030871804408460768039864818305346398173024003045202659817899208476511129605706944556349264452094964923953740609544960069205781808972310436532230507713006276636704162141946466961673856954541086078661599385072910745059891142025147378862637628859915021278763117682480929654687498019195184923523437497596544241193796267570922360772172838120618063983801467841009183697445622082861931932169943736532886688473336140563417564266099609051513546092333636390379087057388026433444210923432734765362221468659207771855919012684549252873756058473537766303806632868075101167890388490721554575801904741015089090474228178069744399050350879012651909498099916713955068783659298651205232591514521688437522896295467984873214338527705084515786867425963694407170650146717750600684508558749580028178681574228027633276653040014809111691249414233720816138431564114987288400366285544270419964581100749360463027198795009634842257651393828016513764821907314300208869690479582252958930307188395596228353059851710571771627168242817047676600598335026655603997567547062476114794941739958325662659279882502346608968431228501656043923087750991563509120030736003916125953180040494492852264383891755393255908244708591813037045790076288378364641845911530817775271133477701404633654942006120974461087012208978496022981774264412437508008906226995915453386162629941364705636666935317297023163150693883900000865860988396540848598020204463002395844979358356319358620712328018727640771673419528604206959601998199917726093602214152799921397920184600328101160902836266575015182339747599734230339984212086842918303511115951021118633938810092826998155785523751618257573799178392214817330292786269502542780031842263573930688000294832286532670049555187595321556349375950227405276321780348617729082655572215712394842640428347930894468876660038613990500271887221955578515318688306846793968869527360885928807416594864154987921752986240293570438817911197298444403840864582043421539983416280536754844264192300809504528185087529848834243678908171634254365980691979891669889914699739866188886682666525016661523254294380348035548840439764348343679140684583202276679725421371111195348290611801003752528484734236654027923400601206580711019696746147627323454705146358567293290949808359041781949929020737756917847968531014583031483418464306030154155244087565261693575318598257785828609304674288562195489856198087989368615546375726403489563353942955739371161519096555586302563625764407673428919687474920303591718697743016167724382821629849599610543037103622236221835989951133050829829817445286882089976230526226493545144445174222097406818050029142793585807541615087269990929214270496550619603737529409362102279051530115537001632505357233723162239402564719530305346693773872726399839845848718664222053331303476520961352672394334221787010678441961025803924459155996340114056862537570888623670210836438192353804363636588385678968258468444899470600982045117579066619835790608274853699418118458794158059733618510852722707482580710375948831419681544972975760895992335467910035758821256891051113259171252069641755101971344953059000870763625408151819044462566285815570907139010411210125691895505692399998725304424329051342110525145874563943142412138920583029583422258438696104270184447699382666658119774557577362767022441588283592934057252389584374807803924238237184461681693220556946651907131660248093790726525113765155668803571529666238752217447403858357826627958423802683960471520463234765704359655263268362953884803891187204073166252370393396128346680825003400218035706044429832040840721297560118472948007775141371550702741006027098116720394691453833662909073183804819073386246984289234199386853585934158484442721030770003597385116010156878390936667295135220057503268177500578001476884488346056902483964058092001695245955261392517477292107458674691598542434051570108380655636177455254138711952730228977025001179995126531894192149489071710813432296345548601357130995651385410334790334482749243000066220418584122912181570469973191772818190516287156276401766121311536370551813857458846146201568745962587542179320220257442120056959342942579026309074100407620953987079609125515636316290956960325777485418124456973660593701418041512180099379306703008512396602775288554939167911636389807354243571942449259378761833556345455118025195036875617698794128590479995350518732287504891724261216278782872227581436162594766940863667429609754871822570812080431901084175183583469167938893771271330342010478123506305483629567498025393817434220317579492767510522924843181513743827789503177398913939766862953052671695074773338138464989742193218679760300784223445964042669047827426975411078002840749601802083294956662888542491053742400245691120344064439163713514617581087946990773572899585022027260421586664586305159078278436210185205621253474140011256872713123872161657205607225061504500585825606009579787122039078865804644590192779198722918630604945794757099760611593514477797136125798624537903412362112174735625503076705016279992773158170854493923936050662118421891435959701066745169503884378944595487407296470796507440396639740576035134475687301086612405231427034580205550345147530350178735256428221818418878214839082694315120190809102081354259531416077857263682164854183816107021735947827561549174232730518031657128084078525099448105693619387356041412791018716914820061409936914974997054036782128129622362699183252478675860522438335125700260257194615644419015764512285998291274785274213665545578040579859121867301377775555234774051774909509793240776174480705531678257816891939293158019911026880276411605025154473892987735983956233020922342325975478685927360570826951624806175059150770603786300848675858705500789677063208670504380832095584363022504672070167443420354474234163575722050052847855780748618124412366488451907287024118336117135791127719857930524810800660384844992315480317743734762769914357231474238678347507782404487916768161105754068311043764889662087573183684529214099708283008813634771562319028821577167720622204854679868117542895270092163924771238245988028919538818880146486262281793753188523589442805566460598480039170630717899162525593774690721196420629541158541406679417259492904252239371087818561874294945386628223829734860749832404103685361946591890901087774510631293971473483131579799786007469726848993092761495205928162309103370702537319589367033582400474300979047379709825258340628698641186187912871931652021074471405617769458664817877790023932058936805392518061723208201566047676257126557240385056579805170440111617458226324221458714536533974910998736494966382380369794967501107063658854349575697075036199952884865300234048380017658738011091223961727718850302630488933118269807585122286047498203901861575977296093044764780990269991003838754475671584834092425954257615125992172095007772883771485167835436480199997811088263873562764156302849119399794754164637603653893875002813791919165289639451180490708924784038906027226533003982760843431126175324776249787981218376113457518781110464099836299043116329781488340590956750660955880679081776079786541727750615934566416799814783392197312208801272062930543873281779160972379318193250705397830535115716863438380051020984006958382872301142327611327879353835494784194253195293214223242861374395847721904055250394441709543211041445102782030896758213281305057075301550783944750781814026927857554236554397476683671908976050942255978611559491737558993302358952755231719061234603047362855923637542692842454391324555823592552409631869541646579208732634163866670184298814660371957488508381962043598885921677357386345801152905417927773183318443626269907822358777624679803752696176406990962743761999745451825294335629027229687592743099593335924070953086327062785051443700834234639069301758494081515125721612003817673142804503675658145950689230578799088522913094738649798911507180433656927620032110730573182936716713056835050029466086723483509504435908992548884422734629210576969285642876466927167374411185111981295098841977868302654830691753334639659151362785824923237953749302311165155885062112086736721921824046835988025379701283452622913993653090358688178721704488861657473243582910863607812358793039847314945100296396648155265654710806056061559201812739099358925315632279746192768647052358118588891268713436215149233811735628605491567084221049760292800317221585586086448082606209323810869039145879897526265491191315220014861923799713251918815561363073670500168150458409316308546143229094787535033449109182720500276971141798159816495040283848914067662987212444286856084439976216721145672348536624912435054306089324217748197851478232856179982007662100100528469582458135931619900411119999093819623284256066792305306787674948840804051133195985053891595510024779133341785273691252214784551882724915783202175112046830821612545461616610298137492323034912711368046430301694686698160708181300120594939701056887081661481056589717754779069888744608570950138721678665614290525552882129814475195676844821178367956918420690339366905410967239463895984182182466399814759390194749166811636411907640423296349888177824454942123210694867624806848553261896064224758316743274155729402570570261566111206725925938380561347493324677433382286943026148317232324859611153383511677021415773520493620106983823458673614462079470698532904865667450696006539031894014605215231366647563128788687977361235855382697865657705200730012810025175520505105065710228051662039998053572237789724109723443581421540247477209217009101428333768346858428353120678017165319911387471700826501233291875536254486326236403116624482575248115621099245827123578959618912722938473400686722904798888942199868486394960286109055758749683763662367622326250260313397505354719962341231674651978683931377371689983253759818573859879803957987423073176134767611705590507848502575154808698446324246794745571396996494915151389710460424411217340157621972451761316623970032269947998804906923701982600053430194827810483995684581198827799934448622885725969960152492761421571001784563105675589670984394679314160547935401170506383859467668330750473346724341126572794096995901483886646022868273862518698321453508902537773255369013625942593861778375253511437459481313339933518038630266770123116898051178730610711253069016548728101565976796864090982858108614674270149330300617443229504501946719955275886157177685128674815271807179730129075163068329804454290272863049327672136990897486736986691844437977908733115167402420505012643069267227848283748945588554787807570960012554207561050369212898672812846545836046248204714980307600812758388792394910373040851090657491634226668590068179496280790741004739967849209442078940826140327938008592786677777339594180407912680331345267475286909294930560546309471540413010159644648625673366609297315228609904110144174982313085869320213388706024088142990161464925737952830165755641346039861119250374223062414753559880356892376197596028985680071577324251481731019632548483966905611921906238245447449330537365351431833648813975648105794644956200329364105669197322052361947460365644803992788581001888022913199694759797035530838437669412076717936287932838435703986647761391381056850316231106084786653987199093440545672779744692048888138745702028576534035579643042167258831334670768091702587450695064989076387052241521282653394005076066432643512194970917384014708205191647609548907151754629231550744294462335569056537158504827093566717150531567491781504920623901060274950521123435273410454034658341809147552844787378293456386931427415027002288145481035280633454406231213679100218224949226154197993127857888243662886209582676349263237688538084609572098753612802910866106960244655638770326172654393491711388231356314201070806369586689881198990919448310437749545462313899784522591736218160207815612389874177985175097092921616298469668241135692083230363234159399135617351556731252717923288162936308966130539403781580694211581305055422010822509059195207682634005691068225994541819524713208249892051885393107761642473669361148075724098178596983507106891067517539731557025612065621614099562097181467429262277894079837568967752313479431283692994825166710525434269777522395490378222295386712668371824076958027007985577390320776454916002266819495635453251774502874354882461485022289016134996155158408272267865070618643202207125642253458894708257149676101893320745140413109386567169680027746315475339339257835363670865892178829816326967935631556406425451638553416803581271171141022969226965135800994241390606822897986670828795252211254300506312810043694707491750961213916752296723099020464856800311731881322978846994807597196803518806356206053918544590383019801859474973640922343752444479892759737314801004240877331958604451232718592345661421538429359759091381437514688323163659906001107038275236269372868793965371966987655029585507098869254035691321971753282500550935750641465820108347639884574921686176547232542744091442977785060443636605108605026002812013874217795569929410312506561915693249106087203584478539307930726895390492774110566786949851837266565151599672493536556574878712861489917390130142504596460774842850249139002740436057438623007321333173399309269880516975127906902997093381951176574178552479991967068294580089691375165342462333787469078950380551247072977023373704185732207222804035472080115063268542715326641427122510401378167182167358663511530013378742511768667074102407201514510885875583352265518568701913274199511547819531888904874710669900658385074813918000677227636173522527797866994192795164814431865655042068402121383506700407166464821315760083804601608905013512645958477399582447200152709582507144772801908970718395071315402093473282415443903010430227796056099897204277535921091302208979033298543023225114135956514154293018920259588044722555502408016537810868646755867337850426629890158394563073074319924093253202573878979388060018069430035056744310635921851203848291534094979231051718515673415649430614111981544523587182977150970635187342963982058826786275875806949272512285668226362101973184446670639069628939203132588249643416919672193441295163816317447367764919528885482674817123402588044291677904737578464318444597020445764784592300214543740092567465311804707566276839801006346418857196243510649006363190745878715541730346442608962634206392672198689881500507942862333360407713244182083304172926672612324227733059288560676046397501978783337270779330466116496732129995917283761435543477320016273515737892078819092959191673461043930504818124329358021168528635446307860721496754232877569122502948607334814431492604445379840246088994022956700581941284662014038062602173391717005293392490643675022816998910905904696534515283150380081619703073632791570592309677125341562584758363826021183784477561740229473698776920549273707754361021194062261776970600930435961420878539590810789387309863272769983171641084849055389489099993919309723568571527643399484982687699948594003857151642539593936048161341640634167857846008240860032813977573791436212716495095465872106741591236436335061380786754024335625124514180022621273727944816309029674838942020606254464801772595911323781199766810176105050327892776127981728853910086966950481921644088532061031535042931152045474879553763244795468813367372420119272510678958885497773251836632383888295840876890304527649578382539706013977984025015316971884872144182556304404674514992520623826650290637038519377140083555026538401517325404196099357689447124282982880490685498513909320045320001930507740583710289167385496119069386638696452011682657875305322909502195366428770735040619728794198764022660824514506106426290899517091814764795619600326979583211858017745994969650985336235325111625240555876069070111684246944016135275625627240911218185795581927174991844005898303126005342463650900146156979514083429606815674299288624084141901784596416377795929104530953908644890562343636045475173580972941955505700938947599720171271176204367491744488880433369859855647700601028785556350221095865964860400573256868438671981326913096795272038223718804627779126825278464090738333662292053652859145251705121427429942746374840948778077859739671881432149271302169738491796464808579103944583294945944214894374454959792962364996860142380093680485905646565847387185918906716483851736722656984491864625104538361493417146627504637268918942397270815594599596319330583036833555447119864892446988817066481175306382788059009785190963190383921533975680912172131161822249189088508152010025359478188261052589259209748615106674370694402911152506557807573913978799965023053123085457260041187418561422394155071943608929955577553306524854865227402090549651565356273442919323504290772761410483921454356856253013765264615243381097825841557365987638659707723582360732507455148687863437971167828419226472666113343125390894018638146114286889054397417667164753553866723521346065426151752506620280782268016640557523184173067000640036277031739712892970873956846694597189443023646297143264294145610782784980538478502146661776097237576548715149374601368527611669966891239145358163041967704603683260337752464388186796149498588838687420865204836320880252420368301176426596435122548516109012547488970192722265638287484663007915777241558787115074310248374735648991523352719408423603542939064611145184686321306302878542730200381091682587625722820503879956652287903600729276561275360512546974066859465489464293686695017052736428329283441632853090839841068864102752116118073394705714641476077822515213412655736206312879824749112059860342591444769477262663065983831048741556034896987061256885125128814015164025471544097250539183689371746355201566057556395602009365986566021362663484083097976928458667503493575486863575306630620883525248505863510346951329184273546792558523681576508548665346081830773179695490588858925721875125842032343006593662246600346721051335854164756897755618504801062509096794645934383587448095152396060750564795283489670535351313351967122745303073575501893302314563251040175470125815320133793135886363668289265954767732522427598731382583960060753426917461605287290415764975240469029089520230520335444905738687114370547376179260882881420796274231633972599226672257559161432631111343844864923302447199447205968353724278521741043578707379005215423570890956352677976575274680690333326796282917050840256170107401581754373001988207999956969239907200916993451186292488042242819942280188623593607956955688197171219288157121338218094559299965779524633712834699663475888501777494373000302960698958398027337940207548220042176270609348961507390567094128227909427891052703270833631801709743276977960027786328153586977597380996703358829330462025478291866297019702292907379723667265648529603865650607205871324187777993413756449789057702864720477083348936561586851376434425260931958675787563253453732562020118340739072248110467116734230381336907152146865769550174357568705401103806847835668742475612270131997867655371105115733752833012079645616033695809339992378701864027155656316912112641240786059407901775641377904405587549479750188877850997360341583125724494969642074165090147682667892082755047914395808819206124212236317568248351331336059958432760642417792322939710468048160156786528230461450411624756067356686974410792277155133552789055508043303173827790803967520701716117486505389328164203478788117847273371820184295235122673543007651899800813355276925776980587397896915957077497515928329362320963768951778175577456263393300458029941365116321913580192151401212949933435057258680760980333776339706493481393957357807382639346327543405040670880594182394719347711041137292084982233117506174437170738259146055157923378337372171410804920117027755080078865101685660980676042324775655347355378611027149532537251685938778379889068589760937568281154928854217931934749319154879424909426098447024572435309041031976899480461562510592092514015344967390101454252756616366977674808376041009004766161152990655216522689757467066914800238126465666179098295748427123851131706199450113134756442079542183814323223910266970318517824043762971177496896212444771578527579431955018125975526095527216723453753985191152534909823368742722337371839701551082958406389966913957721588759692759715288980167182132616669451996106137029531997683441013680860323555081680233850281214565232545175784420243743607192441065012945890203668742677496734599880090926725723304538782636285941398708987350419306809207777091827133213713776347970314725296603844367220039575849989955675704021973988397199151942664234289569633584529982260913217126240992031746009459804845086620286229049700968000966407007376504914822603619177549778805472351533063888630731246772350953289837604995097272126123248657641916778251877242078381143099913877001644054511287827093697545047064560617274290500049072576142459803717583621252662565746819411332524240775530590207531854871683743725036475028082539926909003935772475295406289289921025034705693536865874643358691811957413818232113853178014967778309822652184114059333637598468802877060476402288147105993247960879844913273058046682390398104678397200297833535286050737242644148155384313160407648330058592484494263842755807282351262390774994515360659841216824953858153795340050369202488169634109371902571128970436708202861898003820444856678610233894418982144655430742542168782101706343273135779150380920351676038496728214082871383673177742642964037909015748689650639001863576970580999874505178532931976125470248605430585988741282425444181072319066994753211773924985772197402534697990765804089045450694078344865985556509564910024017492047491295142176947134952422380264306647233360376374543569732403548341042524514252351376054142860415600418376159314289400763735922729601393255729706285286771564650451822143780881853205938103518242157219280814992157751541338249549986956112296557096972984503991486035615701254181212061596189970236658476403270208857001861626468036679960765629055755087013655379171545915406592864098748465692477905824171545359844147314975372012407878273245493587542323127353977781144050176344867274472229896635890460506430702236256257183584988710117105064947067101621264452054398781781880564751049712631571458546972306843981561574494424035638405028073151435963920799663568377061350876815340928998145015546089245370519219766042826466866002343306497895200943049209029445966328808270349608242731880166468683933362356054706659183519105700755964547938297813578142093117385941221817181872839060768467545374203072859096497483663697014397617029974888622157459750645950264676568366272865411363197482642580417700665753207906453681807397219278771554150203732590523024161398322678755243125463296722443585868698810363086787630794312754746752927766449073570525804171695505016190198938087106058501161007770823614618422842112020927862001099302946075353434420877242686056817392873525910288887334743465709382768968253997130153914165631081323473380359565564563940571969772175575764070954261819920493979887407288925729024875907848927718875137890380723104730119393863905630275496752671650934022286208768156393825998108022380229684640822158799955380620538438961246651482250556555030126375083221580047228477131660554232601119307201408915651449704484971073279604352091918046993306658593166855955170178851489756393862614774032513565390656242899341831110587820329874042758454445401244365752811808162990257605905220536804539443853192543826491730690331676736469027795186582683823418308153025553691033864278876772064225248683106336320883908931765471792844425142177537181739340420905016197467444048382263230547367722643166377475547075505000625176178408598011031337441794471150886714305939550609493919499087812278250816452744621401074582178252436259145363547486045006505874936784269466421295766820441600336675396115565684586932518657524459090025543051565026754160885411232901296735247079820565391677663877234705929085178290861304270760073271833522643908568490483778183108570029507143609159746445827172514290586599553967568102373528566014994763857609168764604366973570253597527463378720417549488351569699957928096060488627220150460928702891744967275879390221810714307303438301336675250089196551593265401345059068388042264484760777650782578127192932489050750882050030896358903689337283231631010464494943147874716985087865144080821763789137029710204320603963452929809605747839705727815581225961723067004466021688397034040238423119664622599458471699439687700044500067386267646599496496512591570256362646567039604221911855756122085973728172805063588458352919381195697881599012967187115038461871466275635580682687036335419069538600019922868264518135688958490664628188005383419504949340277940285391328236517558214242064088726195771433048747527036389713003045985970750138298223344893387890274726815175946803966682834107927436339941694365977732575781897641927715414798112366196657153507304814378321366341974606394124630987096265783087672313947026673139982294615225380889090361367021581998444379116813081809085505940609307250009968928320200419670913458713276704249515391386685899708639576368674258244028930650809150907806298480156334396353159351358191927577937227034641717190722167283270312042392189468215113894105003345524747616610608409646285856542090664611787105778043945039376825249268194314382146849527103238213527077625226279938943312987623978457918487994709884864707416020734772759448923925858924971313939674153082458271549927955770450467046018869833554346723252022832694925110131643723570852680419512965990929207449138959533488291094094693082550361125756227590686431277154576854220104996014449712216174862256178207131086600942450199308257782401563758790277672865062665356529086649481887559164392282973378378927471569654012563978624342859011355573485289093954246511907409884945142939301436754437016480946106032118938680786209620538063332301995088879632776645584233241918768317483935945060175395529448229222531331093086891166809824822989484415932146933106474552418353686829405524228436187368937357719674322840260994204522626985793017017044528784246710791368454365693432151081773048936968228903573085013290611729016446668371064797338921532740867431044453229241064384687551423789204433568387499256612903193644452582179721667212577997390208794581435170182375528473860791248046169294899123949554006398444555937260761169637707628293322565396865244708492858040954569017870172255784379377890694990556309354146859954448854598587068320925639712442866666354242067159842784182002542524539822692677929311305213037488610087915775347726973841799618911308209740631770026763201572573861797794094904924016243217930615081764562360248855426762836766210388421710746881021769361283185139240693571047572861468940333758536856343946229140023879216761330178269460230314729313683428026207716016574249141983067239641455250428842531842740691472096138660833598508910764090110310038411584237659582195805971885525144873452715030677104136601747333354877153085263049878757000156764701744215924748230050199743483642955188484704286667595459021812985762504588618567069184859163531149676315844537785582462263503023445451857612281527952476195206016809253001999684577885629794176864674731744457840204744900368824021638999258389305329629515344816904600844957778569791056768833512223817096690204399638531314748357418625669821989758153423639779461276616938519470672432009377996343803628685935260651218385267438037711002242169940831851199686895555824452771888141674790919425100135885378092770926976311567117918685327530576603670208834754397180615154866734555128107052425364375787301569362995169655361634612484656184655363250252032182344020347989887218161341595718401827338067963088269720123401206830987039534661863272492133610744770186277324367011298926645942005468903353189128622663147295081520754284270278875008925450172513466129551414580515878920389092652643277397187329869537729829362271381946341053029435973454491563563937168298569183357562669886774784973043523198617228967440488860500427390385300871987932302145466735789368881670184318333595961794331772099969044939573171183372785478245641720606250966195979314698492017573018450335758392046506891673001023294814072401491980462239120885302652411469477104489008294740089872296230255656657534123888030860419216907204132193949945629152239600604729711097562248409806830080172880969371411815648897860143097641288403769684184935437624161286823717711957288849797755166087850689056000445138678598165280659413768421929844314751997561697730551741315491255396175921057617236428894775768737662466927128295663529309120185871111987423476460871149129947410638993433216005929340798490465448890137136169519817084332181912681524099150634202647935290612496493983133302414838756270591720131524637686413539640117909896083467601931675127320090605461058527591208588730476497276126969075820576332532402372621179074070125073734064248856808956581962693178353403635453742472587935827865576946100817173060008661486377108113705366520308973311065192814502447433253916656289097143229369772797418765827815793381151746605239847125217899834822858068223453341367517286925587119402869963221031731119009722875626319815774022319389406713917731740927815319037517405208607007940649989451908755565191794180240133441434157147920626293460865823679256254873769641268596637200342265785116520613492073776484328347751138125074233475341788131468958999950543327047665978899858822967368799902309610924079227063569698895857380909477619796672604123039434566575394291647910605212463811281171331704573849680431097864178635445303851422039474534890086744356667372490919354329212855065169701829563160587940299863976377248188366178498093523773609374231509298008772601978212196699044761225809509190437473770040642622389463282927408550645974365604672804881312556968901197977616609956079657905298403834694832629618263950278262858725649107823417648071448655042817798018120699482423374978313497666093024816388047845997078123042751779982079569700121239948747812773947550449818206979930441851895579346952842084628607624384852278265885151592021677007508476422087366381314604856826535167777277365186553042814247027763867720182248162241038789159308367634011828800658871910222200900394447293117496618855458817961596330776245966320480798373144398142082429755021209509749041033565388370641341554540180552724466930294327363886058671833498830506089109176515165861806757354913192897795991452291433437809243972749781633203112259303370208105899627538353940001478824420096873696300150161879697069856298554084340788471920381336970077874012104255854225390073771936028503783899161328662215930701635388800442786947149669039553219276122175461097970127464598960045503388661783390348406910992992887775982132276677864505967181688700614212590582824250790186389543659237010346238355971126906464520589246111012592014704577866599051493360337521849891130608339622593522978865820262375867127242560266702816391079898980937939619740337067899498266870426585338488733621773922003157132589266834207901278678896562215945320280100240316538619732558159992330614003063857865712886553242706116506524892303645187453460042604909329528590587242706650829057915875273338409725413484410680735958281840781958992597959018434675913324854907694718353193567805888171849578182213838307842756841412891435007102840144411278002439345295201430366898059550616860929673386794334909715312830665495844195147891793071997096988443533421463284011390320893041783440684774612774356916302558121650147528044470808280088504003081089124826678316789434395769154929333917466735265534996909963640266299012020266864023508219106574152558117136831830691552257287110244362513426852430560867515527278588013405228995749685547743671119745511742486540344435499549157628655418055573370378488111608403728964151997799007516027771813493426276602741473225272739096949429481531071043818722296476558125857954907309632347699138336484025327727471440716965530189017829151410681058718855556844018812876277463523316982141314270196286264306529296404369644536889577732643399141865412401614596614844234571959368509151482277622705374241139808190043298276800187550758881276196530964314232436999888487820306054358692481808224788331120466117733184070978000540676970410092415590993500122460135833705068228359393867272858281696871149436684920991197524929622144060273770305327323515231835405044309432141347574312841840893461409916994484007488976987075680427383232811743002631024740532104794659621291486592694679392390455053405546141150620309511411653899672593714707738405002041374584719877002886187174949574872554482203381851957786662050797423728630675747150668633040747331831381638870547010691600595387826600656383473809340366426102230842775699788585861596364911784050903351923681903690011275337358238381129316486821152516399127810358271741249251081925348550994453802607050352108535376287175318735901064361388273272793302253924624834211150647656315524497031764734997702431180415978985259821992951052796029183385341135578018367672852877105907609578171892959318373395879201143828936761127121964644072404645215036320089123595148884551732970774212073634152482718411142108870044362299375510879554761546899672648891347323797686721166397432094494141850487648754571554199994757052734951252756284628172458635471873724470457173843311490783618958763660055979217354017395804718152418314055189830119331554585375149514119074462465364827944148071772611446004373425793263201347794162843985802660628912715504400156855574033214019566819223544222944854224150162955037228696572460313927883567553912032313866758693811923156266602028726557365904226152801184398566296660166465227550874986964667686013338657169154596349134858585507076326515248556254047714154769620926531512424848527882370600585928382217014334189871378733022213633922013621351778933831181835566183219835349049496722420460667704723644702884613244221508840589171612808825362569605284282575515931588537806188939140801727225661807777384214026186271393325769040959224468572855565031106240671984992410538858254572243278117108885191147091550745918586372145821193164183310439501461257231637015057314277869553086862816955096253099655198306748897872111062374092950637067806378687737385067402740123076485320784849659285615708965954832265422286312543589867221318361372907280491300346071445234000271934139071242423135945244207303937818180877961393852422780724046557216006086091258427170165272579893569474384788832545990511236646728296723256521433862850129669667071082570756559761872899544711487332149306434068663481409930587106852401198272987029193239523283129721098757696633225780438796942872510635103874289247679961427587452670272933061450305679957368740882933354959655851290806167025279061788593789313056002184808416082376308795347055662795784147169298370361867148927383465689230416100558784836050447362653293759324363805765514368983533211466853527000678335012342976465979671068472853391867687492330675877184190149694661799038692679658241602383457498981317883339878801234329591503198487418695460286119555664644846064850901840610035777609159738110653399198311661679329097481339148442392574128332371122676945611150655919621226234739722447174193163720348564533190595064490235022495418790114453761379029335412324151286998984488585732171646052304371332926105929891101831398280380039226474601799871236986044144568813475610506916649996610741361446143232011062696090612357490094165690490700698100511884940008165048671457834126894975031067545706893095776329635788465977596511513020232878230914258270996991589764276395865432598287048802524241158806516934405161287830136646754839593112683584549365050238819650803187710571204922291277172960234751289200086139521082084601999849981551376038504141079973832391106910031872468765555917956708068115555385735235652059497955422925945295264278301924682509132437776695970225327528824080635007422535496139864087242363502968749626259029477213639928074343083204536667962152489841203462049022698620997606001233366801920589359896533154195786487905682185985496543447557574340510851461770310789493174798522473435576993856226449407189889666476829713834269851360051104048865535239050796827533926732182178013240868219540431915500595996293438375113704238724227375149630433822122758074104069615575839095061018075513903225040944730965080121316073541187716023415565193756598645080528933475656672638189139228260865207684087256799660790006819182129522856420103597939828781691953567690177787889750631514621167843785090509671825795063621076268292731185825199918524336006801915033597399938236213135428812043475505333060762945174198083789124971018299148199348104596518311789230900336164474361310841947763894975911194530837912840504989365325402821445506518245172309859345208753481084659746490218798151256365544580251775504153178839136477865383178450396919792158436960491847580082183289305779554141429495499871080155468835450565572005564448660500285439533822183743320507187040876793877243150978624844313741457031941620077240788200923791116798930861073497965265721172500314063014491191504934004648977247149213300303117721030463790856860703599626441222636804483203086519852298694042206480652427519145084186259310828536136872123381805597636689243728260285052133723136135562616596199955003975210228673653990125705984375256890320522035221572340966913470504651839156895488726427156937351404083085262008245513922258291512632216397112254035243409436064690452986257418304925198493753236343798412922825756419542663570644844313437401768851070803457454701235369953532453329455002446895260664845141611141717181187827683715563042270530674136677071565072488361045341418187553493231957208202389116708319956449674836182048628880782946553944318693289985053556850889276611615351171104996047599270898348343646245548837950994537146609384489618126712158155525647446057070371962773574909051669523223056039914984125517964115275838440973794860828974418179083244959486319998773900966062669643514346936296430318082732300403270983213295238549433924190477215100042588573167314204821922333763093689299533843090651958406175454563944811252750823508315280570581299620147180551004676807482416940060750815961924016022971719108836602803034145779895204901083752811740320946798681231408027095756670782350624274056853800630441919896677799021806076906788756022073359611650297302670835315801148581782143010771883636685658265964735975863235599627600627988058904256190508227770590630564869205520236819574117690768751058586472225837004569753949170769654433768944933776875386924268573072488677860005771055359199515760350627358405601634593825948226977819269725659991749181619237403939229840697293528193628341721442566515646448659223940396469476965657498856580298112642013168654356575373384486359107732636374419152263690827009676415098485058680887241006759549849193044924520196684366562423264794077520172962288538844083713109585667394963362643690710206605021623111870972474018740390935738980239726544356314202633611454763756098854863243579426793468666788323151507618482101771904351206221589256442823905809194318215566041975376729075569880714229083905537732524458530632629763798215451248546351717604825031467931924391125630723130392268182444135301317498972209811723103154661736558806453469018665244872821068167076203075441313226826997982264432876882838804813713420838917187627566438618586767175988894724993284234353476321474191933758548557762117275939465214440782178345924422342154970978677813196146115437331184090755904782898993271955300193390041628079763673957886391550379852262919562707565247208554227194315683076600842279902268298855741676927141077960192191401347203319069252734186465086214233524350400786507456147559825417142749260417773481347741684916694999821788911131330229343308355239898519839327998494297645811111544290591136586387515639858889820666235115825299156211496668246412707996250268014845907619542819523759112302279178435953049858959555172910438217596510376429985382869522157137773743269764003307077709764770442029944035485625252157351392753361756743681282448956608023762554976004009233309970054211398239546430259936619798213129755659371365822240079091553744506098485284256901627735589672242411024156940175426388578005843727897202378579118539649929915907676021443925522178238012452787816766523427539965654643221472681355902488859687310337715814966278480807522139658862713905899576288404139883533714977630823478731950645278734811360443833651804504954760010250203838969093040200637008672192623438748986825331637545716040707646085508625473171301587569184027078348382718755189925832726021338429732546118042776993269439769433418657103681473778543909416970479836969320625181692299110165438492237833564004835563829973343106645106142634147297690094625562692310441409007750450047134683613953793591268948839566177189067852428576898924742959113360934915202744077033677014570401031122408975306889612886587724022629372367212015616546325204337075711262104462806898608516986064484182028319251806855229955692286801031796457464352966580898118986366909283089353593646806884811027682990711867544427597372572275180979982098772498025930634300542136276610153151220092575707315592085502547058087652988575350179382793201387125834631441186547755973161722129867344379006950057343355012511942265482742862274123809242663671980068923743562312490300377159436706049021375003287489053941668557808952382420547379057257664524548660712879990142729470109046639580855733308245005352931850779714539394395014788894620464955319660101401421991169968162327242985611937379995930695422690830407586807571569768395864358621566563563407457233795057582575127919942022622242862514219796776070785079865125649936415578651792637825777682044123580543127512113097309541350658287121767874644382699322615972624795192864937780794038243816118969241655408571094865580519733278527631956170788683395359780588848186601814791373332260063125092643791938151294458077223636106991817769936855051377151520509939476919701914364546694262987566067048756550122753096753035118609440029521947254333146323426800691358248608231783693411647815208664073066728586822494793966063927851221845478601707403950937025771016231136211649214568528764640884246035627224906742294223335249118251510812040110592495708308722243749598729235398393361486159844846479488877601843114041906717315036782762839254211402816006893628080433347201309232108796543302595564416056691538281729572878127381873600428064586459621493285385038458409960401710704707026983212378573528920767013422615002606605711697555645907368796371596639222527434641775666058392353615280843687462472217543389517634935893860421929391943425835753608003750848167213754575976935200006080576815742713890722129678507075129487653739250799588995573184892112584297152427465753975019087726208423696101671263154633264237524276622052634124467403748004189683718857747499383411438619010509864984355205888824835996122180585044583244381556333027101449331821418624533263785745243011152229274793420460504846704209873848943451064762598415457238815074010897024718477464198581341613082495730247266764533216387349178662638177085639582055347939581037029675391417379562229633084619344440692447750937945753042445587484517134978939596127829406382423081903807503292802718125632384316784968646977486427936528329915802008488054782360262160627994697575580629319526535794661032824943622290991108602088763395348416013298169053080006576730506734950357060008317547704299008539827262020916800214811022269586236623819091527816904321495718457431742429885108983011193189998730562814873813959675663258802507511943919230179776352065335332888384907409280344786995147302117358019467125353075254352951082441079628176793037908926966631607465904047567346180452049294422808895559078516222632531626494950581492742740519915788228948116298567186414043232100730516456405775886011028580725211787353039958591098383434306457571111771692382214716663078706407925213674461721294565698710466337560425592092698811439839970100999592074512540557823449203071572710166088212389023883014106845747827446675223539210361207402324393233041897733833983653677542296558991708835645955223696329930442805460860964437135046057977920961411086538572006732439012331325547343792118750854426321751938893195772061350348679444753618572708284084352058405641067205949643228016749922026255280646328959694765376481401367685572506871253843279967621433056878800142108035590518761699224144839118062070312078737318529888141169249167466709802043746937974020945905054165992643570471638145123092209454463312451393946140185139380012310695482909062261847608159474098059892777123274478736336946072206654003601382928897402994221928455870609736644668338746462905713985944159639589140490390608770120626856060036679520211498828680042387001088335708190330104971019321624589340852185155792593201286033074201917142658356234352089762882813415877889706271254168662062816379647929062002410331445210001030520284615509820375634123449299244087345139155451247015220755121246377369696220741415714028531527993390897756901181158100393851990411026301451004828535617195645741826872643875223499468378272475159552915326035507589392655053940777510561105455221159170514109936245704406146813927169176615934401194328383358012788210968992007152106445561707691527664171140674503342752700133684346024616970792778593757246282421104901345952410167799269676440253295335621621134937099942668158393321721008203289037339245255522497534358965762063932606005293137337204939369367373072262019830260574011194335834356518847681959705451099636136860256953013895269399690204136720228654600045539731605884814270042846630074165538403041866800347540359369227795617331127888102443572543177842714378854336552378891378165293349099676157086723494986746123294542462982552487212272964334996362174704107316398523630539292203388563612871099502838437807446684623728562700861258197819712358518760844196242221840608669681988889246836527808580455538058148142790129414750141275651469005240078288052793525609407483182132953195626289976877724839374053750469521239436761479792326816053458833940499896975681742175613236338193854370466843630320889044742132001634076098636745816513502803922149188039767054827297517176483093841531242140909102304286785181473611322831920162565699548801216800765161527229054402430854804768093173407119354136074461714787495721347913769981505518344649034394100442826641929818046766696310967651311062945935502328616303820239885155376043317829619947866902474697027877038652230307221968180306349400988905939019198175812819641613139720406439110061026895387099976082950320251991111627514652574897766391721984784510970428591996511063259896414717930125810005401285101116398401358267654933051233060165085525675013115620347131321874725278976779276210911860356072521639094849589571990529405761143293350317018506448070131395842129371919395817309475621659216089582396950917374863881672953826049709861894720861998535591725924503127005210766426158373046218171985927855591327509110792356411657686892309585665081177687574347509290206048413262853442057640471054019538864710390042457212129843440573388363946055631193788917457245633252857660797787406013661409758001604949638148800842778302828638126031933510350577782258723153286148938894828324911966985876007771737135704133380377602992895008621832310444166266913456849580475412891118800911525137582330571724817780799170760987496941671977538305335926590645814105158455950972454803931164543294576147903955847259926546053953132707744724385476858085364744848893759698056121168741928950147024925943552681202983318895422924992045029372739455585448939100901322283366879023690610842003491446293621174051859479558361543450266228096163747495195907561566400906622754515658982828292669684077719706749146409814407699395693240549786554504091792810031632040220650319061592088405969806024985567377299649236674135680018112994876663448782065609145409567449744280852546865502313593213899788033031778852484683423968340212145358550243003157599991801340082066705691328670021992078336855620761052189969821826404979987674977725128675002578276463037466301822096431959601748591354194874998040483779283335073607889925123912025399115504501371757012499962301918019775502962907576109064749460781048775674741267335095763922534702070014263467080239634071568678369452658740653845788517512395136253123230055092786602506753618039125831018964255856005482522648748642556254272574627042671234098786460440964237811946821896940458788123104644851139154587592166648970845968285667089602817979005833139382761516122331243963714211021420614489125289522050467167995663100356259732418875466525381938052255097980638772082015611489196078425913891374642878779429412636217839864781823348986188649564191353794051370579912362218948173960653401174231121468958416360615915514076171493152880735657581794369937992764973813078173008113029917547150741257967222132976420034728064159615992093511944484799801375555310303911468799217147361381688667918230078106850149527447423190512611811079255202693178698211680809073206910657693749525200151595650629743623853054611814272688927245263919246065769362300613779978179293268314173034543396662750622757308148281305525030241593582327198105163074268715257167950418554113456143208040334740173954827695675588703871999927001566542753398034185928511438519135153507941459210180361424902326348148497427888613796315009854884823023943628592578559300274212612616498892071708380499301116957194931275696675775849851805651726974551189995151270472418473631944209732893120116245699759446381109924513070230635409800253576738138499083255739503783586159356048909610805058081117212817813661188760223643919894603059235327287695403698701147138038957758945543518766421655626109160288578028752950519078123752451410340959405809854900350234125242198135686297404448302605207188452665812993092313980824072835935632172237967858349610574083487446508658513586684996247292426341022815656056397206651192832967654440016763179461029486732415575882211039501114385327797684156792917339855760874590319947038140616748719184260737177984741628553637564898791158756364590410470400878070404062236347811925838748444547595315735080337596806632151866173071179106896755987494783982402267965625665403238536292707817213592334110640850047743690654837086033217112628980614266648450370529272060930104452393307655804426322371251348505419571839509679484398941684401277560467810027716139732749283266133933889081046246030274146037327646324726821840229583433542565755015526934999873306738309565856232181245327006075560293646742717339022170400931699313856168825890563927433167503608258197806357049469491086353865076870367556333319955217055491399198626113956009617180950241524198814135656331388515722317659512975670839882452965044468768406543474080797168734744516313884838228662829885800284452054933070371757673960708697880385731994270246145000834654551430956930619787166207314091622651482901120101550666917472378690362141146780605435116888755941534290789041131695977932555065332873811968551165896030185307630224087543195411525383864790746073294262726073124318661341371979547581541240457168391662373736135169454278517468734119805540722242972401844471654582098093074810142936677302222003661401268436150479687007578029219673226121974654746579276199373598158245053796864675333299869243875072021580172517705949866740030546265969906334207920845287989649723308927132474852954622648918703996497962787111447810156628002116937251237979985539354123696872618112096955546164897577277537127258720077503260541976370664723758800338257362855233284305446236127293964633555639782158855662893719037154521949359299226766949105458750974788179619174778199196608682433577819937150942767595669200899076520917726366518335057034391541186045515921666593832813495840003139121009525683140447993640716586847312704993107400743867407704197972533559845024425212373020240261386113556500928787442290998063154433012955261694728589477839528570076647451802439305546004617512652124747622656911720078280048466307496593995677133007646491219788066968394089950770835557219662834238174946990222818696448116938854410183799570486769991632564418338159144093200485289836850912431759940855485727616769511332753607084038762735971812452610427806609629572670390829251725229124997348043495291001544540908746378883469452394833159486892760294976678674646530693926987961691168206204161371830196681530142498258376944293245033819165148364318524333515133385504790647304127461295909488456264972785589423882692594647451686422821628409701985941438275855494183410066194758842235154789465680800060779527130295193947989014367556218174644890650718544093263980969358773881625454476514124729532242372425813517442295722565044985959397930797172374177103916179010386876919492976307744702504333058897417527928329254906141888876338939056906028038935872283494662418820809653924639475578460095739832604864012879877919363552706723546843412224919763399127202498126263840918826864087164528760821671706884136478741070318833327995837503811087654609369998605137544475997236210309028615253767192103589873725631331707031017282228504231098269911583955803124957997937760354205095961582925492826199025351565480430859086303017886436620255224156219677913905696098628917243742030880617268450518308160896547034364773110306598997774152074837592819849743560575264728501949128425815819611405016585696630765225009321652337714217658696650396654168282860713376740910450934483057225670717803988939319213616983007427776608414726470296266815309450388767062364381711435974607684786055378888694779966217947311205029877349221665943309580651849209259226576132647992480852624667432186024745694007448559902680479497904755418114853118308377638848457100380887110211771712285877855024511692832977842661615590363471815529017948149394860392187538037627088953820955112663853482468567611186112059803015630187614320736777438226789123053129215875417759010629154173983806273996303147896532509701193080980078193640409201784247641392388399549372998161547108076133456926074787667050748837814369253039810840589597201494979861638692699677446334878967969038774041261130520482328101980055516077845795558533314875208081577617211617732223299532081878025487914830863331043308820711763378675166549212395901764804996497913933848960341460950519322310814157063298067027842827300628361274068658646202189587499006074450977043801577945084306690400111364182981710374239859151533599975282564233755248291919146574254485735525570516666911314862608312548462903358305967652981782489973776758235032702005304630960446305392062715161469349793508804388930011707871620730200447698499593012063536215406477915046999481556822937801672173799807361948721449562138631901807092589484612239966868694878225732334965127053454016061287482817053043742669013815621687793214712880574098355457160626875492304175596299465923073335214790934455471791421568100487422829792998270113389105137342873082947301435291651915144564482859215772870026250541767054778098937947034589355659566289226495671754126615792749388367062315766332682290828873044559119809236453951196372776547479236884861483924466972805901525708658781475019300909081285751764552540316217602922127378620640861802184244469985882454196189073260773304032534708508026217713577959798798015507434615520646724156766173223892652568276744241590276083490272278566459746133492891073267045683561895044221229113933146365186997519533711134719807354264878075736841989576890733132754073318370131945649226570169582577058767840717255870970545727399964074765549968006937099927982102711569790062215296435213023470939969346813135787058506515276210517153733814998180959680117855653993156977804377490787752093986678244262467776153779113813369021456827362503665403300677734924987352926727973287987134439821454478120589255857381510193127200197076937932327730181310287459761720318366708243515174645589331489249953476385023467602155638850659815242902375526935464026007376333298549052141517456729145712549797516201667178346455841795037384700950684512521345205434423822709461957553188176677640572930272708103093150968483527871334269815990116187039899191117697347977094743022420216366240660882920435135602692623420686505102528723515243141927630829743980733360630449871955954294912903962658007124087884819152310704172220520652101173151617695160363075455460885699838335104406941091914764260542840723520491026273677396654238745922936990654381221275361335639497622801102573290539796709093969387228729715516388818544695548361558318009987931001555158565603513554872254470721460045295797382152337577709280841274450818464970549637042545362324389395417032253056519595124010077840170668106400182390166450710967273892687304109573372236698998702252696635763630536356651845543238905069772282123021880098126307213075928792548057985818986616452742038039625264009930267208227852669485823884327529388264037666585601616886358123004356325940700738255662609140730088211033445647373571539386301028668224632769966240282643838639693317191331908974827541454596671356642578058993399367845281894181059949095849472458019708115562764263736980633053826672952653337316719721510318707414029660517048577180421184702140123846651299874055731124096623921067267305646192282905351671930664730721494664034105296019012946557467873393681784774691694645876462209352864102559124767186884803904427259253870245651229634997872089434226063358683558944058604219898522623639808801161703867068963840472095935940124910296161955884889172473691475730762362386567570528757415420390127625308699393330744461754111009832678640118589068545375035791730685392050120889841169151660289112136436725135753083656272788014481216192377313365650253691052144471879364477423231446678910021146141265038505855800608652009673415896040038199401818280505674899639905385561244543145320671577190255987425235462346002056348266962470333549276612673799065043997090390095012374365239888724604865761594482733037648739149400366746414730569362140622921383576997256150700990633533449308761446980119154645492101984338115237100269024927406251116789210838510888609478835246578118309097314483413747440038642092825844681294598204949584976994913367812461160720580083175151632643986584064388905645734624667626307550603084315165662980062319459105234043090022734317925525390025373767136740462705932342072386313102816395269260347784315017353079861413889786176001254467527158488099198617684311471309228859423911356167347412839409603939697276967914752219501066204110242649463197465955154131690529218918133639340559537017319154951133662168096558696225552557064859163891251444091771806297897614393338225827591064744753045800663769393938404317049253738269852606333029021203873722569350336020821101585065836813331142211346408664149175759051690042285888948348923314825861233067010551856275752836543033557217029380006554665601274801438955581790897688439565504582116862611850707459087055290914654212213801254055494608121179737518275589037027501054911693443431553820025636018010639000886474415523076899300567299975805082685482212274589400182107438500384037587313179799526748012656096287893305418105474722642484935273161332618782450307697199169248523326269252119557826892764717864168741398113191492157096268644935341916635562405932016832338394195110651948883291575606336841999428258036132229428561690989558199326227733153522489141983716612501861620476839130461035656458265129034046528588827845618337826818700366629940794965642343669792988718832057799326154330860852006540027310964124538049179599418433490136968559359012615366486906570931976408484041301532306315762557748037598766217210280726309613216122902978916728801085818526800782650756702872551181763042206118918278212773054226346952265259797739791737261561681897728161711492227429748573114253421210699698245975075781635695152327192585489216522463883326124447934525729044625558178828624363057005979758182181242143994690093009983895739186964925641803172896933144550458164840059450887152565169699744232468005518021560713055216142124267334157437890545588679696358064755290586743943011972731242364746304951295827352307524532699025817312444670114713921760530338082137606054317811049170767986058109654627235550105889720916134685543379384029233349360989866608390340677783723282274363492871799929893959040915216663938955965873095156001195958244980753001154890548107556068745526321634691512427281090214355981773590451888602135224099648985427523785333026871829296910744434088231102037958669158900829193517111954419795413998308783455332402423273248213607626349492454509404357492233535227601952168656963258664787839312312673553521644301717050045171653320242336586485068338440559160796920454693980433701885156332471646285891328447523731298192814816091271343026090443730395754836559114426876181476379893905573366277110336154637626715135847057703823370529066594161392667815712669714322233595837184910776035678778474799465488670925711432561166454847576923870924092120437864170684166071711683403888472060921223504276054563484113680876017750578321683063311682765848271707058288228079657596164196632803186461807304091020436281530820765404288584659901557179109600697756917862419035698185192407091417733475007908608984994676916586043523647358753314167470141108901077647933884007837143187218296147615972979880017531021516532163832962778825115597528691418760157110985814567905819665197421819859452290675458366003084697919007504860202793656643604247017702379243891323938604648424421181129849714832086662138378696540408080973178052704496910786791691202675162921328924486904042354198093061731668023190428277164564968647469392461693622471565059694461788111783344358864640791874793993743094111842854180767305836348984364853027974838714003730549233842439616164593370718148953826759795899578780408600850520770917335589344019419267417483034284429560396593063131789815437467029201132275981219278980989439802731172037710368172339165170744767565827526281872815546252611928212013194727593985442978208661929348316271290146542484078989374189016432491905270279050382191817261736278719155453154383076781078433150289105633475208221878130938774896043258734666522228990006148915640958708455653637319348506979981166470181728684244660563347094690656985184967898967830002428977391122793241826937318103286107604528918202710013023833075502692505999583003657918273205308344947222113178433900871152672746784517558092226140231062871574680876677090909690523783593542970616595995644915607473247611691827115289405238464646226268267169027597150516914902870275769656029165822743053408390398943555628217883104285575055197599777385497509091209986687197930557886095186935649498630698706501349470313461987210303709683118937349285280923040649749257518343513259775889156737400828685662833782318680045522976879849439497659394849899495792529550115979246696126560549421125955752292906620030120636377661893853849797426691032601598371735496379936456829388460230344116278976179608782269345758429931655174787221294694062395142816540536073568639056181139043198940327797575735304167863944169059780853404946730462182380936025539751092903598003461269860937026476814170651105380377318426100455589330330938595837355254417281175961417908281608469366710798730394540059598071738237440198457051254519416133215687445324893840554846679324967304270162326530650027513682336395239705423006300218070691585251304108821770317832263700471286298104215396034466960180069474834119729377116948173478029274887313425333974553761371490302585086578177813351936548288633952752443118269290037088684386704938865547215169084036449862688057821295505108013752000287921529854785911567294705525547121963070983738137536432392938463258770734696744939853900513261906171446929275597846204958230662692453115140932578009991146836951078660685680340725105225733585729296672068460770189841366340691408110481922576450812888331344362584394849847828948671600121365327094305740045046233765470885928084106952337361879751571598373323219936094914097075655647279944815705118760965339513794591420049753463810166637120159529590274541956013901249812033855552320151782226302508749796969828227366446373134674911739774481009724275664561347266222274902665459171139370904771044919002798977143611592718282034355981498873505421825254196929713479863875608946648343487898038901087308866009462255517046953258086038432199064185698697002123296333782437493107746060418309112190873678604512210608525877324119843060418566190376531156136286258694392499223009370454201600888693112516078851172445838121735389180888246291186429642055299049358711737656238816891206341033694947026349452125982554468515602150357379606544550417108311972429577104783801194249509089773535933474172639374976217470897723939826009383102707443930841144907365503210343684736748434894143440613324715318633711335860372844850307833042876797958061781354110604441378950029604677254532131525111994827528066593985504960939483214805083541460666930100782465334963052925116455799179625269336666555728061760385274393252959725158347449122459170969103904241453385151658550213809301936435278062167717461676453883727361423207537640146432534244205599965868808490533337292723799222874780446878285207371003193752777907339662744063529435995984574388365050576169221185521996949023150740194779639733950337902592424538424762474314450496569018724769016516712723738361808385897668820334955129861659615456073104706037334341175449906479364277427473846661725027441601362333119327597124181675026267903041552518569765756376066088422033979678610102276878632816095835680290631664535481512107646849567499719578971799077482326323443164496958680985618343539711202597433373243717268853523804629597358921619342341398899248048505398092200478209957141945096082904252705527469005996730771440595707781237857040475086810259119219149195972065249767469045386768335243407155271767103239905738078937943016902381193419436041745769867321707369171970747041003181213791735408577016712233362982271950195542624544896582183086493990656641750611848326364214033855162607618851655285226592227692407349790555634419283783155189674673404601586506160475591299584558834905453568019922240498836847178687592164396788141589914699061957638030179293256859762932839751174624501325972253931139495790340236622946960476263519586345739142947532505339526054225502972910064784766994896273270263434206786007816596257665254753577337450162803821066668639144447881439713341119335017498773354682414237742264274643926733250900297055926049010943940741179457457217192803737780403790601197840057622674998402070197157824271234644060292951490422771910848259518272311765116824261330193814425847332413632182592733095405663984459790866727564972536062871111415363723703500125586890288854155526685539081384749130113375878479089121586504612718118693767245804268022234033949407906290261907401989449394230367577360299123399073819546557104157125980881877510379504245032128580408436092221672420424657782705689561528621786330269939433583345360764529142227292805435550022801921124086318206229110573860937934592332465345835632634252898591498657361957788072929265101608194766050317172662510990706696140680496944686834356189124842948132235399076299750722161810813966483419795489619646757183717315611843783939915233018099137365962037555252466293787039906142908700265107673985658722922471319983546506245861690544972969396069025758333028490750624294631027783022696570468820718306401173183654965319518985352273984010636073663917163702065669305003753197268825145953888770153290615406789795650155626808215369737843455872514260793139265807053463593307995145971220223464210568862189366200198418636281293762551856329833612600094211799388893245867392572348516602783482025843966629468127577972791900956088051705433038528867325238205512396964574908550129933025860135414879549126477740230937271932498696234450185746375064534932846205225292607221950748984215050591235628189325591894460076047821617856793358912549268769764856738124905655257288892825425453368961225491052156995329416938789884633636351540966359536108295481016787764950743846360824786784188961304801988327175226203066294282556462475786596471591119805835539842408192431970037498437867770326640934203221084922748381616947495026921962041862389628989688974012303828573871832518234601732393054149032684789807605588686051615795030629847761936478247707856572698908321875263969870216513837842802763526591656797263489274525709733568160243585793602274665854514382835114124232625570313360389595207826587893610396445438657284531694778481422506332357445511155088647791141335071059258136937785305519757948653278145312469076745411054653547761369427755102874065777316523053030453261330381581305507411110417121013538156853864145872815598229508385254244614304175959180762745644352219458268866436121416695027556857251912102266483245182246819665436352098983520635392961997001819611350466281762308018395150725372269094909214592482745578789840471402909279301519750759904451150122573909016496616209367548119550475843243435098012596744648135695975503671246949254317995605300921623473810597362096148258116116309973898250956460841753884525964447875258988836093337389872953574201778591320400221648561024691926815503827547084105819061241167122973011804145693567153750728471884511594056056063575528771942702185203831309720936357972087929711692495074645326932817781374938667873658135013488514696295684410712480360808556746564041578935695259804987359425969449195274477210251140456730826437795580132512284149547002896580339600635793442004980916826355377060385056025622345634173186939786126003766313425724912926337029131225253261045047151425868980840522791615127282934747121709696910002470722063221209231313362620887458110331483429125974281796482371609017890467863097023703957600896479024695410569840082894854526498354301299338955116899076034755303017982680453254343558388616740969478962624462438155422554290572166410405277518808476350208597604592651338194103327745675993994140927052392504118871418550761392984941646607087261575883970197645963889580019826028003509288303006657813911101087065650916649296004296285502500063761810949349941436013476330538192011074815063173671599377535209646976399229285201322279291929260283787402283843674846653804914067047946085947081414179584917481152258736353240898970723743561802017477771508255184399205139577360769756197562745098010697777936489658705454545981611459010582385945061187353360617110143835353466108479229794480530260942887724345395132199316443126663219280132652497058140685187394689809772521657128783544128881784160899470903061658577515659441991992184597078247973913199884724232445928396483669804944441739783117459073010550201352388934894096898244136985100475415982544795455264933236314800563618585446797508939708975633822617140930539707431418380593908398201855895998332761839181947336858040386697112755671201011858732806966030882908663018284183798418008022707610741240215767631535348005268859693921302058189672561133814143065570180327147544073381072829605275877763523638713603086303080231709041519068482555268887999548701992949107825150342931976711469082092526754495284112843646732330988042771680955990779894221685006804894769500847537987207154634627925500263849033024939403250887219200191788312715931781072491435128822323974811455191250586287749197944072779900860507294862953680971372245305762455493268765539779493095343514880118978768249574685681769711632013891683565309288742453047224590636196085260699048455245929242941052761753410787766569423951944706802513993193048091210400403706346030177149256698213892678908835735125318666199645461769278847807543190263538755721423277153437799568249532268625005625376633455610021990905633460168960965291036844157100132659866200957071434526489048900104180661153781513924961154262372184407799135954783904840683678068180339532905376703444232759600069028720886227217416681480052910653676164606229765653706877715920297259712627988337506895286532329627228433968458968994582887101992973830837227760002010717668047587646847884605289858692689807643485667110652271471378443147917673041754770569144518236300568038408692718215633753302005702619473031759031332687920086137436807977659827093301150529885982030740471205380134490268406991194816028148496952275681022255346446974373838077442207174508413146299293052408622209938874885505468099226507412754604580136916262438045904686485692159128180376894029105251399536443493168271798023725527137574782303410461300166165817203613593669298493953905430217941627528455823181390627567126992430045603228690782779252844668299216862382138033606166940735947993052015438613839519548649517862500400016187107138417503788066786689009372458324089751222274076670504165939944115100070515226537235583055968138300912581707178209046589423765514679082854953823848806081729630432278419546095445646239927253468165561750093127493459988656787456569038721105650673036071451299721062064894477348442689926240122428619195008522385043486725733764015523781523869663545011053072097222866421056393907849337970644318163384670189260717716888179276186946900100175648122702434536646553990642346414847222302100762199181449399332372767156194287225213184355372453457046178460578753991139841541907077184940935270215908677663731533658372173340938409795532574186479252223982757477037586803869817723169104576567594333077872570071941647496313589925596004563348618106627682401611844768106161011487972588121675431754841334625321614687222837599922373245743864970878893302047606933216063632251841463200383770618515816428802487251555673509764205799599224282566020371627583394534715951051368537052309746525241085745622434061342789655380214628038254146966688112436799905686573355474067846978623821672309368980028610162263460083554972232938752810500590672934733491338917725446452526411123688582973159771204099923792880209515203144887064361201105513312238011019021723438785742282441697107598406053168652525350435556665852415897562530629438372626944777220570326074952874801334892214462298639929355752702272692522261365370984160842894086467975208780974853919205312517765362187320700944392541527147079126763909487789377032697302184978581997097988800907363577745049974003300646343686016697808634034138685112384294333228395907053100329227542474460414510437126978354610941759419988889025096211904626386435082233138860967814233996686838737115317105893290913786841933719755880188865738355758074596340396938637452878854048631861924970818374647559798026905826015011064151655165572945837611903830090322564829035203792025511290145969480066666395958427615023998903532309653990847817368146029588914817743012443850994220628019910101351762081047008068587336416440573143317608159936246534905739177765353846425832483559880916046408852885750999207591990798832048240378289319042675995178547308788364965891621057899906861756113853811881810602257466739951786395962586882057557063234475512895391139938156140968296765643769821777213000281352657396949802191256320914146085522172421725781095366640624604819011159693033176446527266116722535454670743427486290049791640688223422164760692819714114734186328069549318996194686002044349693023606861799374248902384953793305612544534511875270952173058238873933869744624472737056278341598884549675378028523018766487611519512036467088093370175482273148950555797390148462483859478619834009856079143203770108910469874340411276326519249153286211096776982532598373280301831878747460565457737842653222529566137278898503109702866203127438113025370967982372243907663335565084383636360531083711576179832209277484842060959160140863748179116493888170656787034183047542729017331376359710845686690059164130014343394057680879821750289928467379816472343877187583133979787160750499781058397089892108197551720045273240512386467925496487324421552647564517740758146764565259229662576450048084327762195704012653442291385762030449733024356400398472494833026120825160217407451930815629246891048714752927177528484172236855944354994216228745024357323740882329674144514275330728448907940593569985723212768155972658805978319511171763969621114123088509446151922002992902525222858235834716753393483390626039538377584711187425018277622665674180168901700432025864881159191568155042215501917245477017668410389662128248655250105126314568808866192295513581058317238685192567429151926234739515531707887074543344001197460475642188681214775692348117082779499651634145281723455558579600924720478610686148633020071927766226329645427842378797781929551540288045269157899551855829508750718860970561856910318091723238814185994481806283772325605506375904357807300850400446652321992673701308531861171667169889115784181848272128925565206260444316204231991146302785176721465048013544696242575437779666977262448938370578320913194538904147539272320642731757222272522611296829738652601319912957383246557740746046438481127358327455998143035086470098425775341680236284291475732023731978455233874304251446913323470665325042040582116261807339151497923889466497927448583719608950302500611720443305356503791452588785721069579920829223370128011151453285487681188541150835430027424364350107151203457535381919013617862917041263095399757697171134337022229488860561316870475428382828722572485366801899050826877468329102685109743503105588984197768270299598151705147385290191418041748350161788071736601374568220046866002570323814927676751556244553697956264342376197296485451852538060073347129088991434477968898256617435871532331747331165246417623948368174069096794772985289121850376878253440796425244477560392876542534220643113783092876868742928323932842726401093981197217617149308275596022282950016019464398311712655511007504410373341725306896356997114091778901772977123912714185238916369972952513391961227886550915695774474545421267355884456384106060289916694131168823313362706912088937053830440663809634546884023293587496022309043084493075461052893077717326712210205111054260564985803718673132211052993211688508957233707893234032036699661774366026306820953211357976587345906430199803301779900320958005906963107240785086444296700238911452195785437776992097329358431149790063095228611717353413869025066266091900466048633534978099088784762740020798757970855327264713753577296752427284888601612376580618626398494820882179903106419841755420526066149190598177412396052316640246104172200147172522563262527215513425244438137737956479766448927553606053516629726849662979304437378556199282695117278102751181134536547881802656913443428744983547180393625104332403749836504348025925326620018880712673633584425852865875634253693964831117894090194015207162908107465783479407806185745341538953259508518908613543475660381656667896293147040114730703361291766751397335590820841865910525944597702765968576076015814988118284762033674699673696697070452885594110677913626647197786859337876233577447790450904033665522110171232258420389396466436408048876820169645786360144738171760900479765916605990882161823004074142120609059576090387415304490082089749107581820661098370076329364332555703589735393977993736321496371445137147027603888653840253581036813253215787780613680806778370918481261822251536283405122858466375028309440297256406785810783407886247629033988663734523020662504915822292750086306121564385190317592176390213376667042367628696838486097960950658248360467264391119043129443293745317419841013954102191505097489854308918869113940468720108666159703587826049173245974901927429833313957777441967538256917515288348433265135623873229456056940488523835438405508197647028799093749265947605362995829912495799236400350961561287304055545465777731396193528390554946362276193470196348460277713315985841282569946823348891498560343876100135086958246172624657440378995641123785992424506978243467105786183547349706603644158909718341929531685383697078115956231165135284469254146409869241876907172213359893447403686139369161182394164930990644268550835720203356867830994970113820206708764872967755880043105505287069150989034706096312951641936383633057696192073420891488880258931336267130725630622134893238229815262415260609490808759814865497668883896286003111717129221928764193964885061430656481812240546562959210686036187127346177249937112820021454984647080162127570454552461596865634176466917897655820530418057632733433772784195506084145619472140919799946482907751187071647272330989672148652878681647278360710712675505902575261925222086817002750098930539663667043730652882265345950132792969703823304436645665400528912557113967098337195070497239602144755274452547057399118526311627684804823233428505572460422758482963903307257270407914724618789465307725522209281842873652952125686697420555970034701853857854509910196504725106984959108212972854287089259900391498711468148048965100504930496997548412212026234928303325596878768068245121722383205277981354228774661477751952416289461618839571449399625964800334391639285472477511690260795634516013564883783868188638125577594181933557118736612617803100822316062586198149578802210918778611484150917434962466359447626343472706184310908624031191775844191840034017304693469767092028305506587672365368627650313548336820838363365403621246287299733705822311948120375308658772018323261000376668681824358165585217317518330572659898188357345415895205061618847839302437475902335857043023837626503156253591627366657498755028635758657183128620408972784991532003156278256186551271119593659248929640901398532511090619742895113352282649556602574248265776389272094844782314451411985240321730874404879147353819192581141536328416694025345989663663301801390154973423552188554009442244390340232948477093096479998844225241766732054477455818546305698496794303953122341057254885718899408698806850459864697507960072056628447788447864377373776629218480936715352766879854493578371750122931987115120378279618225302252979858803424475962462334007570085922147989224447133339154600604539745871744355041253762938100471058499197479486813556293026927318124574279700816751583401403447294640936642953864660853449761631472539139184324786143212374136732305212902770148704093117738890740465966745037984005437529228017650186044993265901383509672212604304552610322501800762753297447383033685306177760900407553652509560480147971659484495180324989986829507364455782772446933442443747143066159625652895772612224196839049420779495792414115158454215634461490202109626342735679429444764907374324968677702560095863548903086596548180164872391965457041860378150177816464112343266557058573702931652390567009867940096328629938101751602336780039008793475472063787793263407987135763691006228063848681002265664901488576200412044796436729266715612837001175378534986822240550386721200414851671820147415149718188704592759450144224804174510710355154176124995835190678522816014352186139053544538456262531406795102163261748389057151082848166650843009709123798556753972707761470230829975745695900597606506625344434061580938179548296909626702191342591908508408662914792584095610706109489884130644582396658561118128935731419238330757790021522971894954624127151079077214699701566277256464144722080750580078134692344651265539709205516537399502245071792946871203785759906608256800913846118629493874402968357216686362158917548852702822060167801502343661867073685718753557493844501394393879723229104106956436977632914891579647606920730622407923971073393415497106453669695823445207164296124052169101969287099180294944494862868462381536600851023817017317634348881411328519045402919160120924784993155387795905308065193952152051549641943838025582711013662073534416479825385656135924510561468848973652216720197678403240361938987897346099199224377809867092654437428879374412161009283653304382945648807739597003341771317118048514981426586496189806348872310880045978398196558918312151149741884173359649587386294032277554909326770576476030773578184257966801198096805020690817954143594887890655101839295691029057581271514997099295183514678831389771961699360748546589938291576642190292250224623007442913384808464306231130958034750777374633651236603980496958312703294789319551266611364802947685266643665558089366884389687734068346327858860207031309404680002797371700960753785404446823613584825354275902043972527984970155581069092394597916780358077383504443700968096092538130761808516089340324343615416184114094780085069607045507881277567234069752574599598815048119898831302183491697137137331301092371289408118997448983820759744165167804587720271297221021825757093220796880230649894106388077279744863821106570524418405209101807014862501264477190195425079335665050043743166362096889345899212550963009226178659442740002988389568954638954903843489052183220878868601695423239282700699431708546643174033728036139371175033301370969235623268267527615338083313238658134325827636494743067559394194253346514091947254274701862111176925644925194151060388503180160447956266462493141033427898196263400910443345522341723372668129458335469736688401450140495535582344462801851873060872154575301409150045493064796617835023295009959541252038140881849615253731478587197366987439108268427100485261161476211813554184371974559438844003980246268758900218909363467979190952543163265110082105808039196516718177863284318887392838891642631682421036004646193401317055978881686826508515977727527621060146005872503437959212455315590262957792484753063616211549418238653880088529976313020299624708520513860406820667991183036631469247146699415580210462610727426067222562279552270820649058807486401542942917715034282201714059032630529413917433071570438837845674771873373751078686799562934213763982984582817535136983026873400628645054585600689987700834239883190231918288854248184213103368116026877482520475775957733624036289743603439281107722823652245643971277220876577209481077090806291420852041534168467819052485922294365625037667508258506972927910720684735328395143276945623387302570695302214516342756360096746578954804188549365874353261321373143356750542783550852772310701281024442394101444264330365641798643061347043250095018224965751380981204165484929456402468167354671940775320100038744953699977991047811114426212341202467626519630461807913670545749255003837623115068853691018867397845525798512475647626849115088188537103627746290418002542205960748891117421474982633307219171807298744171131919921089586173750339713946743730809494822393380858907655605163542404956651082397334815104138430713073110183035300251481584396425841318600302688419215616270042940077663271881209916989446560913297363186523785076618202511465378728146232628739933071607684473595988916425942765062871502350670840787534999308082127385369308686617528355393851576894031354183881693645549868862001559841789935279301649627468891735414628497909323212967957044521268506814678493246277822931198500301028840948319441115249852720234961207113610239339454601001825939736486959153917320603142651767517453764493844833652121400771012705976762352394808482875993836967637750748425382343426961408616516055584842514431929591857941047715070416637116728156608753260227322865351300356373169087757393453583502157218375814084879476752110784497346317309105432521477354426076172278401111525792200442229630537616952810210033076371121201414377606191080998289571557764072703830716482910480652921472991698950782158830829050999344718283523881424602741491846664123619866844073395143238506170619706417541895074397548676300312743764541951009385463756229661154786684505270855850358021826117650322362217398348694165625870475472833551168952882419754660077465142494085025506001829903501728994003176874481900127906541167047417144549624036355202157786740818372464855271935049413005577028638040874293062103834235173056593750755004330344041411750606276325349267980377729227481040121296313854758628639480805499905672116971250223051788654381895415028564003219074191079722328036285394929271889328166956025796284603949166630398278743052510174188671161408727226097354356066097516912702105738590480639391530390589255224761217797540330968514837144185298736896679299452945304971865288472481398955808131219736025706653298141577289022181203964801949192159507684254057250172956337779885997931635220276266770318133246302019941720850642870607237283755135260124877412073921901503082120012074390032264252005455699626088145735543780495445274118892058874702913604532814024807098119191799893007916215115517810558513495933008987649791516694179148630770728580020865690297744664549629370468879195772819618203457627083494649422664856371626761407051162175456578619945382750241963166429114646248178211559038394478850540907211003560818947378408032899806059315847370554859341750294290385831990230103052998998251208182547942850331149237687365503893249831630593083500490555872489127034605224241915216470478188519750148009060700596908065605091202667292236450150850285555137316576065210388615662689302018100260764118464040532001837216752818508191324916646105257009091695187579415978729472371312809794663557046978715587008877782180893693967826689079661853108609984406528638171034581846298559535305580126103843361010556366124154327994114629858196585741131843963007758357397315111731102917539050424343828657149140334454912793496519391716645424069507720486057571865813481631052028147766265629743881200636759865131991577525925317742940225336733907301836747169813924565560303647281586484725785628651528658759076803537788340550388853713097547809455351630864358632160870910033851227896927520107443531864697890493505862984189822971259269920745274645128587546280545459417294927262232806941425330084962945274744711293812815236361540964108637609818469829491565533602725973592833489670719599550344463142435814282703315210580158094790046491920824616228826815554636167690802966240267864504771732651148845360433658333822186500612417170291649989881221519054068739911265493808866578361283985715321361747795926309071021270071852062504256387436259754943229225168356023413458456408185926629377684203053564594782788271344554174631535825796203592913760462595003991301099864699686951743207370744622715421579188572138212839112201636701172558093594326946100566415598406081051425905929458571566243482174345433444527980874143562603886516769668798493012006914608452984781000510219986803407795535087111812086722089020737435836068903273925953484470930700273161634809257098313896395728004122138880706249776570391757369536081900456637710208432459669891388186735997389458409123859268664685983004651782759427624881983037561830239658836833769306060372549635406094413291997322730243543284794950223530821336682682616865514276814040838754097176937404658704801339493409631673839476957262817021764715159784146506876549724274616458280168820070130618991013078209453470387689623228793638508341828821737984375487067012852658189815554814350005262203140142473619137395288507600768887241436339689561385968604590407837755900110649689891042171414271150471088086244951049746677087397721702466943450885222265586370429641414757467435888599780730069315102439943523331959846829649339259573574871240032584254139218686548128720189473839137565754147409403009411370210695028383885752426781802164507821801461174256574274106264921552610976219177553047417613941540530427476906348430492718269296566594783990957084055736940582639390489383077244551112219680987517651249503780520089681979083433406439793432220392137992623288730569689494024022016991618017914103823291937193311985177053601443203493964656491056262339968024242836737543117635749616337928972908026694370802160112133405011296324845046474770214639498447320038642716087565646229212377262183837135896774318592489577303511329900293575054443244407288877696192917490852365253076294792083688665343370534404000527053760995655147356333748374238393184170203594183391512691558534263738704382378892193985069099231093564189918694080909944660715075472275310326455743885506009657551633926621146194868340319484974324919305872577291167860017068098219788202540781058890664001200961255793094264544061742430453665950390862743415875899127153869447296839179600647450041904645888136022263580442756686044194544819284935114944932005190683468329981534579904815503582470761101437873887966285068650312063296246073301247758641407438698796185394382030579402842527667543083248332215224143282475636270282679179136098982585463748847308256753786567903279841102590912717539697566846810441479168845327702917264545949637918291729731331155505377953850722072146803567324599805866606124355784020625548951444383731927845225145709663616043449430264947252544630238434279204850261887798769238902406744462268130455536044838626469308291874114609034832692882951792953689221986835850353826041551528307022042717282072286934221832638051346432002278110944695744679151428847022809869634681538294896813759142346294399731759408997258097054878024309616293399195333816785290178082281290558657781896423050345307257382944838065523381796772655432739992154271521190027217618083093843029220269236402000726454975588393768933024223896847135087387996162539838292588360242574363714313301821154340541503543191046641270917989736825266888438159978192622043524662773287836135738570347929424598673300093113592464212564022615443343807265134146757705495634380558560512962752169463115362842814878799928235544058357087776872720559133123389294215864047845826733096619843439187216909755644733838318075387044250723304473613081240099061782496752284460335740733664380380802597870989559741252121192217711362134066369518249420031359658470637024268121899396354013051336558393444831367546465620451501193535373321511620489332121063252274775396856342353805173272809516658090811829360296567188692729133396869484677184813912887260340238164679093715286199582759928290820473357986459284982291088062748866897602805409382053052747137900361619470657654427891306511078696798225724696859672566589870301692051808425286350176091296572769556880029992718066518162280486106221771452468487730809260606089615369517510624072975648191912496627175532385180010642941650592608588139756414760720429669676324538861145343020934306067275146195062044686064112614628477079959877140689080383894877688186526235165672617172245697536261908809467860792090356262307711280697030013535239586590353597098038718997012205622569523760673164389056787369084376361973092236027715367754697380694623400727844876819157588907951821915821793140538633557868268237657439009641701177931363226046783584956238029890283394177038363204732404207469200560615963604997893009171568468889057123772661170763078920704306748967353573272928088531940292677543436824118626423648168828200832177181170609299908146273863145844506806825517199006737164467291203236527932613033375492045002899082977095396729895051599052629176930768190573178095517698928516601134887878426157763670398368072030547487542845126022464176439608300462359814726151017234778942966689791225952116155392629134545019805642893444824738438743416409747919109366587993933805760208512378117194498125392840137391389834119597350192192538412866933180806832276762710881550987821416469964310804193562976596106351370938546802760456009767303341667695800458550157547547502564450589968754589764706855862758370585162476265777392338856243617610620148486091127920036906515534303415521362297297338823497936556886146911888644516643597368899521644526169344059778093528636492577660641733286653623273979530911774039657736417306463602556517685284717510670270343636179592010503607096847263561295949996819044982649949879687392190883931239292170173509805662218929218524657659978958044002334831915265819270269223179488526828952539191185404549326312145714397295288453340424777135648823262344363906008493937479055907617394402212555523139182679615207389370901947715781956453733059343933835988995985470213235176499911128947191713967805204523453758008518071134970835959579380556848245530876407688490405310031042250858691194077917712448216700290036847566688408057982991530669914923981867486462515456033993396504178195759482878379700347377394582237686791221828341590743535860632436543643048698045203032791548530447532492075204770028350495014035355984034778228060255590386015477286574115160225187055730789755857804262291815123727712696482123411936387651199380430925407372519744368945973226821921544314979027756362814678861163848416162674746987738022310798554930436344406706378895009018515111973315541028101204184073836046308927608219650627213220560637045113905983792341668230827618141797133400627191680185492825763760992054628595503802732916200955177540048438401439653146534060463419053960351721189184347828744414268411735913916373026326004631519776529245608320006266097307435128060473033561754551315912071450369856070802510772001299863030969989922157625270478017017060927897670104361690831627953166320304804732956457187388132860378710846981781736278224930830261912450494434209025532331488201632072055682998934401449796244352947234076892540228550779301980331118826419149983627490361736156416628201429328397172172500659145728622460554568809873858310556226641697177125794064445801020756007501483407840619444555728350555915677326855410224180885433120184092127586000879037059223051946546755450210737988591330227110357177411462711383062817161636632291554189502730203352790163269771647870370008388112056532207849372098653203965462190667692741559631983861364081464825698581750925924459275045868342261626364474594547886560206478870040698474517324331078530093431076446726802965328588549129446782488260251989041629369518158351935997173168620003511064794216592744971004678189791096851760731142287587441349509994416016802672192985136490775371316804338237631360950098183858727377885290711707329694628371256486088332006668964254834596611422187494453960692688158847625024151561143487849115084496220289024310669941846933616932827979006326535081017153616703968118894376347595417004180040307190969678790721749986737371608548819752171746854682601359219569472099595956930112688453618967620848680452556808207704310849480271905393210946713804827916436737739447759452264569120803614543771350246440557359648691538370534750402165785009074592787554573764447581448305815470379721881189537582359690235430666455363908952369429412320930454146492467884693194937309139572463236250815698440510318679637767701606677558930667666444677831719897383164575699380444757772407672543703866282539891530002407005928855898956922288483270261047401725367036769782666984883259833211413461398684215336334758572848854004898007472244781040690739684410177915118747043436469718919053603598439176683121067953848816427477285277466289806093930298317522222475882621550302129850834847314462030729670959915545206911840976158727942510736994234516431141475638662933518091084797600872068945687738567452628441741111418275202089434355365846315744863625980716881485918357294300736454005573439788821503084395044140892881265743147592502018431515870814658002377325671140056351002055807005054101409563375654076740294554972979266917774863687033750258136331446340570285691295273910879591532720788614042655727096088659622174094383172738765377052321058491504938200363055404282552698702068731289455941920311389655810454432831832101111278350291549414335997129714078902337526125160809306365112568924191803509828392882956445343111711480357479251887879554105395945504493799999342676583622193890446428981305368756575987131410015355253819651410433277685554091992197162028417255077564410184182016803291445381348306843157442649201838002266689111071340474028228740741942691144495529759312171815312129190485789808581697761043541752145923047213386858860191041705463153020827101329703918060228659528313329576172968538422475498488012198639169221832951112877150244461999669330127556064661460220120996030025706103584696739608445046556211989501625061475883954250920631034666990434143447297138433962765499418308618945196599793468338076011236991262117879471120385929297820658568661911103126669630722027945400966890313129996322251348009304971130920777205753091360144130967352269897641279079912699880140077240185421732253969609992765201175110314332805426778627990957734958543708188930471219426811082015081053034230296345113435567370477848750223318989939589599697760255207897555111938184750970258985261628359970210873282786990981723409462376553514853256093830437787422515958995933602666513329229893266203064385992198100826613545912000079650557069000562257631568604240160266238190329065208826912845147447012910888731410827277027096035328206849280891420113378549568913508159498712680744637472890482003532905784774434560604959577598810552986516042642949072188845110869218099815026028294057460171290071153232731645577810335508241397902152576379925082679159132123152707008795848091549947959659210411215150524266638055867287900523924668259340271614739370249071091651656261577145377453875491932543002259970664235323821823226532438211935845091628230156835672431916447872665926878711108472106592838507897678207477118039812164820052367569750967109315098885404634295283783462103001226606034885366766077503890953479650032453283227802131384159141214899158747331353398101257294421207326870064318248715306390708887198545392452082186793461395887541860603453014185310056077005324485558846268966191528047641714532290099838890614383149864180486523794030620913189885356261690591443526738780537791149566146827327011185677806536181167779486287652180908303364263516315726128783268092854612047320295522529064890799226210514136650123185196595799862594791879255842875825094281909839894502586831938275316649756173504105061305854751549002336226596792449786904370384754354555382469763280380018450764228205200520041347325505285834057566619811205422782154388983236745049524065768935324575263027845019064379893294137512895085362318003383284364049434756252133580866493810170451986402685449927152428223350071262333567397770144515651026129072858629801138038296615084795897639133445660164787391154275634245065729761591784243447549239577236250533257111233773680182313973795447828627897167755427400166879516843267993008937448968300400875529900754703350517707609204717388141839950635077895232766351248830914885157397510640108541421219838620333134209617356769951449858252857874228371654276256830986640487532436475185300061436068120271635755222339691113067550230608506397284832561803379730435044771233960397186653436784816840258499756968948648420787648004826826489190935308999434196147451883081270106159469854390374239318650127171415654054491548344871614252272621028023856577522132585558856891737549121004530164769872261040911865452818883489966721821536781930213969046441106024668510923069709123117284110733575942621134248157197842500822110703386471018470802291908259628124886276284796783757027899570819072468684460691244821452282963629347282329970643834506292896977867487102846043332197965644033341491902503598262970410902026136696393248005295637961888453644167547372487131048112545073395873838097347104235801765408553372717743363813159856817398368430836455006300808055099791914105619504327679004401333845295647881461011688873907579169636443476097726854891127972717736523160514195292124069329964971645362182014788699742207603739514238307545330282880542525034577680213431867249485501636547757101325055360587115716305271566009278383854859566899633532247469580864054992597222404439479486345678026233181533338129041849422925259065365552830635475411037065519989681460372221233758496752765349812740523555066676415588530220926251363523030657360678771286253431360486157462478392003677897931519237995546042635947883462363398506139587634135121130922208951034977170830887840623003999344913880836229773351624024058638367688004020949407798558018195126922288273286602661740681413429394582332365096982188319520460149582736922783746223179314276500589168114520747856302885152770441792809216291926876418464269308138946160267056451578986222895884825212743522016198243474034671178224709571327442175176863047730804549109707171372942013216310594523508872437502448126210952929135498562720870813755329111411398333814879370349737397593990731737627657941937146194580534157902366847469222721600188121430532316297320638343695833599396629380438028218550392946252472115319203360883938256774775105370318603619094514405650698914653537791153017239938689871692669576783667673316561813268193123182968030708490346048054462614267820036209115681187017451837952927010878350695143552777730463811539865131305773409608428626402912017479878516136844177823525120534513813224799754597920146488282704046910809883989632376850597820575710085879676179526991852538323176472588572716310616816872378351334325539016081174315625922200345581441512663880839728063732384910184824801490829016386174322880880938574092135484027716197757625619704664503003229265160745077690765844310911344386168751942127303867494156382213038648900352939339720929101307008428717620311108518878305925102828125718340610574630754311976001394063344031271159657878544404134813353088600805639358819382428404316453374856903733207437483752692157768350123564864855632754202176870242423850221239173775079687226745032689727007103558992054422331321187716572758583193439758952506874465365871205982285070516870315240034681783884927945704679877670328754619909573497089193448804387521437713349469446086211499112454239332659584168977015092522577032765639325947517945581259429786751221293882093083849494319066690755699347369409647051835489628903010399869373981800834206127725371313292400734842916063403828131890042832591476073789761936462864102020807518737385957263426854190944934216569018662441471731549707903797771483123371818589804156016565214655220597728881961812485298072845749379442645245764111258085587386067046890009266047966771559575686507109290333180847103022332985911909699268824460635895641052526599951740416902761571423749108123373160415726706209069862032615307108198621406582164523594802604739686836455885323237684707070923928769306001230301982606393276788878061310159535694763118896962434907710402799083899104499481933581360620131600029189261148080394712042676270017619107533707047767747481424373289233003549592051607600324030457816288801187665446898357086965531123446523568862558417639870791671895494832362106176183217235498102146306989247904020120849749681217100482433515733584225302192154896171490188077882888437752104897065365334916921826491705902956301440052898784907503769351397453640161279706042563470180602991204007376642718994283089522231329282510770625885712853944719645102924704287016865097693402354743412646255111548117023899400449452189723386782612819203497940559818807311125798661659152875341697990199568673013597571906324745827069343074077445521373770051325837043671267176020772340428384613511763263969168902927449668745655824169296300110540372313825685660936409812505973193001271845021163208288582507601054741919356706668435480797959246756779293084600292318190400335819031565036521334954994382362745340473723548996926682254563684285278470619801457966741762281894254777790884586258557564989199225064895374491999625396105812248726096858784821216870086334248717564537323036441589570877739713866007998593863401953926368835033739218249167157954377988061735477111292496377835524356129260406031867776374279418952115953982538352265076495038547148264987760469291820820868136297361948318071927488070414887920476854864765855892865560338693292241816817946487952824549399161504843112482635986725716657580623897208568196072904019306615833493571774312633701316797580487701924644681276134782677406708991991176144416031032344836269595471847060257795836697498682342369957384262828615031352071859199909359140750775111905039805969265057357769218329518120603350987661473086482633571761614402611196067089635046867337172965972741635149381327022443574391749865275217202165732589218562830885891045613455035469297780956199491353415970171767758010567233738592964644638520559828608693169902850827710905218949878855028441256032302970493375282684777097903956132376102934752011415819065345142451416773942313356484134919361477680362248409701742854687576131823528339563489774978839319123177522735265976964186616405158146864509744431092331377197672631942577724206468338721649220934523524459765295168725434252129273064006135995840922519697248361531411955106786275512331364795843553140521876596680741937132966034007402318350236658029031628425043443646827402592809927533223560677665596272954646712741251631913172873656726211495934225493584560871632177845324402777686297561106630356276915366690989643929750969534393756657538106286362508687456284304257591944845984699333776594997303247901360888483743849157824697073586994052511486733680982684811427600635767411356715587417368954613836762280809573725601165354519510177837492002079866080412117001325131440400782615149430677302334553305348416063810165619712136954152716707102280311893373953455982721108641449732960046938874436687744694946429814624550076867932607225697948793713903491775272943659881971103465998684850287142379274827630088951983957406445717249921975877046297352579449370532602078384941825734785048512558579609911537774753431746445128262806209465577424442445983957789656854005315317689680791677012526673503016767970550570899599928314222112247572186886239343986844926574405047523829758954590735481181787893390285602050754913243656409282656489519513051809246257946179449529293831422535951396009649811725783858574445371721789287397204989418125037152861354622388053236179520092645004019557509525166474530619883809166943012320145564253649938391291926735446559935442909238012194604093269073865502792651230867651669806051030523851639040437418656735500215149939092597660097673680044214193314727121810906917743179349366173807526659501039760510763574293178805691696801521685426216138641589827495988877699635930412344280205037100597232921926597110175021678455094387369519322968178087942413461335036751192756585995916411974409746876584004250575961111706345133884330865375576163865956692899614406429073436310594033194030289055330280307621079811805308393930943072394264729639505164752059573835142837066093004716004410425874984184364532306805275049217429434773109053080914203508308901908009890655667355228810083095940956645655916389294031965531463262671098080976068371183839154714992030697741302499231445648439224401556798878685529451142643233041716415558448296606469818714704513492407174889682586160458451769170971494873051239922650459839279803414226036401266405365923169593317633336649463864288549961674791350164813483324762682843739314049500265849146361160479711473079678437527626677223184759901633210279428211998124400321056671467797160805004266890479406990819666023472015390440625476228462924320168735244163849145206027782031537250486920552189892639538536399406253544677099833866625208978628315956113467730333473328364122042611187104512313607737784026191199118321509991546464731696967718612939852475458256206648643381399719824828635094182071915720193782885119204690467219947037436815759067479597663728294190579639631147133173847717490037632616000397751668663287760742894476663947211829065656124956359629662083825432735840798741492226206433700218511518204765969970031245342443063405875130272770395036311960632068045115939227885684275214050391764815232800362002247534309492144096850222455148893119463830261803421790939758591834497609695709551399525851122747994544127048337572457200219382715711337961372724193372906149919735125748820425626503272962355607436585243851601424009115895897384865047048919674038452972748286933744266470526984999643578354010359007896050454254647679615914470728080448221888547829640571297206086478255728980877571344683681475477599805693319194404589050791721892365014868203600107574277212550834915161535874207383623037507046901360169214362948347274503380644338392402653435626725518426480119397226569892588684039490060089099149755584867081206589659614739612776540446424024728168090154635002158456451699213403411304683840303346505852022748860566198972408132488679028220907376818290698835411407148559713993316412458980316678886266969473201946547178644580269743630644875055861790687809218827537379572008613470655802124838160142150644667549431445938776256128313431432738774290248805533541372940070034025586452062602332125333045582300874700760563322406411476739105056091317826269453084265897029171725010949489085647737440107585741042295913482373428483632553053587835220281484662248878554402227421933564458136133324385098749772779972539071354659871422552655373215904213514619267212989067296075651459246270885758497744248090030296612087998227227928295308410284617872967731701597676876459352996139962894522952805792833017965641692395410399158480357830432794962990501912427793263844063892559268451542081282236497380132002402110393889390184202676710661674888528701234825719321967556267752208947738949736551653593733123417578954341440242149676576688799846368975629823462311558603797857588826650371120799905837841568950457770664354032350686740306899052645343898910936130403926706169998796069597052064868003650486882915491233903794958407623863125528788760773868494986672459583990448765319848542559189513547559857066317026129131292785970773102114928564180405034961228963450935007598625738616125702175288412126541550450793844222297161556613261091562496196571281126462956541751755330816568602457404062469333577230777595871189665155807756878889760149137594829704615285701534360639433588529063045075797447700719764567247848913524007662070676284772381947615366510380334524591818185293380694705356703358247950706648654579477515193636511484209010085933857127205108033695567161670815783036311038434794221125732600151300406911891469559786830677983210642273208915377000676319842902611286953537881001682133393348020738739062078583893966050842559887577526031777708638615716051237585429608669697489831799845553660894675319501021903553967961360167610285274901433039146390872336410478961586663089521249215902406363764263256741930543406836856500512420738014454674438280130472636860954135162742151326817153862384066794617523080898096378995137669100318063933699735089256239800882305491599732957080766641699278564021686021952669424524984719700621219976591512794540264609581677559928521765316591481516851077347176322362058182796342591080126503038547547517975109261371300763285943529503377104544170147297097623466021916564808591800181087062059457280125366768659593886331805628952393627780753819028574686154798311607777403867975709528412083258256154700745701260883345635038654205514033107372613139812473310181851078817851075128929635773659602495071365535753115427427447445388515718669980027658596452451055127554509037878952782576533029455652624953481494963430836735397839254741527648144957933614580410814668335989802027744421063862294615548335852656519326423190932850961500921492234123982953531115859173225661766473973530889293047052562093832409818090292059443809451385993243903134009514006272128827092302826146627262747269650639101245107771070422435577217933075925144329604965499076331365050320418950591511332969349316383253701797438338122380371215566227703263055989363778123288526324637850783851619740555771340032503845945091443549776970266429650191238705862453752827633118712574292432225689048186268509623272589124131541261765035920303455014225247373679544051199784909406340050519100121115460869816766719277119841656466789956323274438172382713213948464318336085168678689801194330127634351618055139777434498650501303583100688868036590213925839911773442668794313189143607524665663492266709823128243591000056032030871562374463085029978290638476107227629925573643942335607987964864626294048883865089821842698767674342272732838421060289871729816071045191905869921516982813719288782617895902110845473655179206115546962944974665496297564821792543126617843032537433296786963646454789805056063836790229751229237086583107574128279706718628430036652012376027651365732457994489844902584688094247009014238596500795270404835197387772998448619126053426486883906340955146907153136844212941414653183319501067284147800461824265397103205030938744780343259231251162547109346362998854262266710376217461187117348707570089194154853619709367763083033150417991751394193522446543200992266473066577027179862944707571597014214228149102291809277722174276271513531588368035315287185042786168110065927741196575762223658811417523521255976531863511176986548279654561572468346895390363147441903641101276461074630724451725910027949672000313587299546864592238226438891007176535915877568044283334175413722509197847639687854749302670943123744479459429543256612450179516395777588869399555401942033746369581888656940335672436765052474397717990764581834701312584047092527709594295717327772952462957026108822080456048223066549044663936823669700692658032151253468415200366095423727411748144761431579669296329320254707864361321084593068487663276510955172131840943679970890832026888109440877582121656773756450825561099236763472411894570639884117809251724555678327862667642164165740378956297035080435234503734301001332616595883034367141676129434736873407814832227500511333569770770074467982263993705365271461908824290887440091459169587440919491370722121612655589891439107180635006108658523381400851070206368010378558386157960920063737880523128208805882255631109166517953513459937003052661585513772506873033925452890827049173519157246169280149275652295383208289140082087261489205120000467355577864246193861005172861772583036238481616074843277421283692240070507041149660361684192157318838976630610501854974240845331845814382874595852104789467667447266928033420339143087325251490695736566846626600027222178011284974808543884956254766666721771689446368928184566808384880710139588523934439753311171605415496994160304491165169175703256981417684400804335337576893992715848504715576144544338167707131146011848474240186380760645371736832721607208585754593007533148996588556434774285538428831882957105699184950171292074679470078226782002037512088989611015164428726822754230111643048587202131713818412345299941165925999107227348827436003883552146309480300266966613305578475415707496626561608965240915434866222826916937330099210700663551177339094683151614205273280309789810290139170816543442609756676628623452006340710607189513406945786795346105410723468672403713943455714914892830139110428803684135672370637050657640850936721665586123466415627614982347735943926798295276482761909472519200285178127849129713850303364896268754359517191170649222118103639798248110919350984655266966363408851088927519907402479739902647049198941737617608351028254371557904583654570853571762280009758122038018555372835946434651173599121497302291082540601529939607541337970524441177885994835960526509739327507279630944408726311700125392932526697518519396422459920480781406073497036180287514149142642717429801123924969974633935931977507105842056861949204963252614485183413973395370396981840924523914065477577930253549149822535615220049129354848429198529119136498899676165399665892716657223388723777554855777566320731023807793056218908916265284776133188300683057257486991336605899597175285930594128972339953594034811780896946989925703890989012662696366636175515519040221747186935425305389288686110305220338505392874967568107959467165268308703144256040713787511998527630439831344843425524638925542130208290355580846131683602899581531053572423274657459614304163199959300695839735234522391195260771860996661015350441969904998580832807713577718301624545115424103265955100641713880019275201468748269588544304726129543283335864305451841853255338815946877068542521075617451529523338547192055371771505025726214825765138955076130991177110425929097819636211003283002677525059096698103308863566555750447229558652018546152200224392664502289998515575782446700360091085789614683987170989858651220759798063147072275612165620689891599466800828044797255775975506144178607666463155595426549710156926952040418218846259673471455256353854280895913659547036831051995693914988048323351273119772254849048018309881643595954278446763783140139105519553832175425401619856125362818956286826854082745395676007879107744960770413809400018738314523754232188463923691697472062639725825398751847644367076554956665390290513208032231013173864683828139616354389418047541523000236927391308875132482452673631467028506693184579695832866041341445439877478633484582366687601056056431303682854286628272104978183097360019606851248862685949390218155748098204501818698928988631606271466766378077224794383270111153673539495124495760287261227206133878406973690731685724682370643951821181582271180761309089774477413208663617353839286001332879639165261593752189625039628437894028811285538572360914056225544945428294148064801588800115731098381955406711309598231675998081412849739076551620633717963701197723958245240179343586158831279145623385630196095863908492071767961106291999795194485167143578039885624109147898111385449172232357700942879217213405639143038664844460050839376590274576756670337827355710208472470140303219757316631883495049354028859708240476349990319831066742096959688050005671846798383809904389326675501765229718419334048440246166378990376808336007455126871626954550850242128484774016329840615515457760030135450672453918396019012258025191702561856628806262059273022069337805051999399854508704036641595727987313827155098376621314910984618457980825535109979571571036759995527990845824212155171148969641246538300825489259523340072788325856943323270246499865925916652445570787156002619529374382177325989516628707956088308508454461700215906182566947732674670922091343649989265691878126498094929894249523165666719519092580673412211100405664410703774820683885762441089421562898365919990862427775685453743341902190725915984380864611384533011663959232084073452308588854755686172784233775858468473465504067578111950133529279171706462821208796576230448913489538672836619618243569727269480194230405673761405942094408487150523003589190416989612686492553549797896695694330124787364532720222890843125372761271766996739483913831901964667688112838469216655032627909054726646581225118490817213753489339577333831845086061306129196384427277464381444026106174886429103580292357826528802187524401693262456364821970365294850863423612194303974934702722065564068730945622499951245150884508729429117423775185684717966634226490645375043271530611362020552116924300294649653990911803128894255290624091251717361573829961491158329302305694489614613081704470285002597348385184853635967194581563462032615924085162181126170943067013954510998941692973784386485513257835596593308769005260448196422549987876128858464454853607051576783127861727747589605987523021716884768549128840848282628972927965379200855758035437437347913608874859178991578539884986960745926173830349148506049417857448437661641285668815885108193541431892358143212626460843531078877482386656752898821582277446266679978019458393757586596351526902507054395518082804449741742407752785957091887898060101422989907265937086049929818646626002662497430142421940837871665209161456898067481768078618975601004247061272843322985373746477687822517954376337063620604388426705454259110468614148000403289764587435504981288916335300618922239572070612113405933020725626379813054884059513192276960258395831062917110475846623569619381699881901480923393237528626120831938562350083339479187377474873784391983963588902827861216470205975605789804002794832666882114986180671246160920630202308403057086813227653042393541870521615966184601989601365288414973448002173454707720439780545870347933701388370028795607947672435532078095078673981370180394482654575818652133316637108772040634287656274279786686640920182354273490334867732540752020368678737615563410608811995064369353195077232441861124148906458784923823737203853903921385345895075616565671162470711405371677432021256185029035293920632183288274185774071699517050334352928294184366862586488599444022213807737721994233545713825430690819514341100064934422548166352871528847799590485120882902586556191058799562395463382504681102941815157315273131097272397944439479325077637663026381643977515493345780079657762464756990102713425766195683274018655409480619936369868558360757577855871219529803513840011737971787187724388061998228396980006163461592907722081332459805987724523461400224730069619796103853567793742184637649856005225844265054240347557029687350397056844413639385807080475374792251988970838350461651511503239732543782556887117561317763293288010306466373675870137376237889516090211072044068923198349422103914407337306234079547671362186403977740556891334119152755983466354624068976314049869529455366275716199760481411235874755014459495786467808986707718376681189709596993946097516059926652158054863954385156329609824016889567272676623826817190253984568882997050648241176649296486067536148963491521313826565710145883784744969073315223844011530371524482199531289555820668055877138468145290307840795199469524893349649484711447660821336636515377482410821652641597162893012174178194775114584391263271066959901994361381000155827748540249439337493901898854969582956526243578896254089763967827944190923912455064230868375430242280879420032516854697076037231113507061282444165255536607554221669568112462878108071755269347965729309836423952758881114446814035655766945974428903426374126972500259641074428379135846633377749239945529774422919791255623989364433380343255816794126326859981445458894671609020983970959898056183195834183415061928070681445744133182040120145105273910532191231790082766689055974002204420568754270214824110143301417820599268663155366421253042791212909070115710854049666543075200304610134466767215136441618516559337145612274895408077528556193749795484421171090027073045095545819809348194716367187904548703075972392020360866866631766090724844047932309804541097817045934793269619118201404314929750771727062629630074867453766969177002073762516690431472183258854708653204452946647408938819795308893017251350460115957978898522297100936126710445069985767239300948957658192170249989242523703497592740079575935325206701515228944635589366972569884772901593175351171314109114802960299099389809780452152404075880849936470839335069902426573848347752519871697272623481183014115570870522083765732792339358698124002521778716607161057872705459539034264819569691720005049093452239580615201932843548344919195910989576938411025650862815636283664572893468829769908242933008858144091777484499777144886700305709225704106315370533053490646642966889796900823115236472561989503477840348607930414657814039565920828154834538323215272049351493959964271665229166523383794801301851692788104590914039189767196141869573341357842990932809397011537568254253342759878933985898365369683487818870921382432710755530900860555723890363804339899818737230788198323381979543654824447374929820211191683600041085715447485041912527990341185538709395311623082670605710020741680479613446479466472494523733423650758780183941934173409061623396635891483840825653897469492757889827890214890633454757738292658147785040783239385205101774892137166993612403484581608483165140937652178706927027299567108923687989916964956668302986842209341364574342375616844546635331734447646250299115681302271634552034976044443888018717556989364389330179868070477364329963206508395990792834637268080751053776864289050105771399163184536354849868048671470086279554227467994184673288967188969748125657600483384447769106664346098526638507409611793248807484515074169069110182008311418253100233324100677067488108648953499707078611378823921372177254479940034233607137548228575822741243888633998484416536163210454159750612208262871644886270786071971647119318159778695836321321061121334349517078984937162620634049469528808761884773533473733887417877679003797862856204876013274248331677869890456764783974773789563741376659842421969608400968283774886151414339764765301892165886298714313389552213022248795079221956624297802465691290837823347207697445035260516496976254926068528015936420201334501028433805856546384161284456802248937694945367694122725790393473382067437944668598874782835107678434240980864176133397610094710754470877085274148016424555103898646223960981038643567969381735011272143335380911849701352136138702592034056352459458365557607523295082460958054943585490740619584359242427723803434017860834123338483874646732693998573265041518145284247558197752701280734355830948110021985549609994896908923377826504202597281612489525023718867001654513509550544582010501178509841292496713904645703441371651303191692177999385441558969777611903190384148361377147141105613669348286512500753516288628168751974375878390954252381042931411469656001326516807036294948817124713215831478453013435129975170273875118791739816653405897403538839414028042067701027317272174545021667030908723027209565246165456119120034817722280276545580053300338927029352471064748825971159383712134588064718783025674912139073385661039800218339173749977108826517820430662111194219858456773454583689949104848186211106482916178715043528506206205906480762854709027360979657310199489851739620966662400616622598331737416123790443122561560158211095219293274361817746113213550120573481601742369103894695484480450733017839165496751606367987097686047654483786581417856812132629891122986055073230044910586881746639303614067763371823093160272398633290594412114463838162435675755198193209608773818640201845677156884962684098240256488439818710693640579045028846074541296382335711354383071083399253428598452665962219382773632858708965803460627213019093440875910789307407663226291649135325425806575949113662803467099411041443256556971880411665210960672644307226076014236499659015331567761163089446313800440981084208696493523482313641491165743878386583518201767303494852126949803302913062053928537378933314699150710699292852525284419196044115655161879053445762067339878421139657669983588019025573822234177097613022846046170152441588208623551405263832870918342300279506976891464883734123896105544476984247776981432273995751972229531145376748599144746675669593113295759133172425810413082707275266288135105197767093911412180363296040384660549190587004624310077218229822431982613413631313186059935135391870161277773148527441212403039669792580482649441389296867943710297743817574093520015183432759999443711075899910387093633624680327793757962620009635425426271416981580665803152806125263705440066166065873492521318522331982299192186118374231164213627004745301079642175436183635806572189992442038965111442498343711402330811189686035685926173256448659437546287985751482155116819861064788584189201925019161915781416224505270521132324572979228339104704644061159331673514262116917448899329358869902064087120366507042298436062554218381210757841587516916079699991976589847285673615936400399597868479229781769594019297777957986259099247444407232978812091252780060964733678240099762345816421893615481923830234323922140656309823546417976357437484404814260783405837457346721208942649720466548977581554511861150810572010553564604521376858032341361073688619699377246950739716117029991406366731236320046864573394938525504403956106876617195489611680757520320306533611277757085420992681557916246849696094748835933157380591127802777764718438277836235964574754717708636025527142137264338183073721539526631151033620532929445414226308968526726800993736167085468392351442626253921345066950806831539691261289649406748352603992993308293607199091124810196791420801139867607127677484850387664046875097377882794497224959353686111996140516088595483911359664359567049301455870914280369876142826854742278980290495430683161262275441924334494670976841643690974082254130973342844842441115530861701533965424822647706578460606596823907836683613099209070158670468087887856775396725960214965816253464230988621557076146386201635249548400778995230652211945018318663800638159847304528104798148302562849064488135183131404877109676665917862084713029463086273362524849467978561846699253515358763847044817180529665512805468599620240077200981630252610886018930103573503764611041162985671113843424235446407614042457121815090837314754291540838666056826257579300952178751196093673422627587499597321546602684468840139064215365959729301463073297253213866380533557327822189151994873366808170777283734569015940106226709848929794936021669521989407557955343870375188403820745538744649037581492908257969635327848128183735263562975667272988160928336511343945520613929356747386788041353406303024869535007904665999177362408859383452690759711651626546245070335554138356103315740844404001413190894581759893511973807531127125569351395011689003030731141652002572629572995901061549378299895854808943610196036247024735899955529886510353215687940461692229917788888804518023908531288927507869155504566282822268897425626057430752554135487953556954980998393736567440714344634931130451768106874519594956342080213448042064440340199206349921081784288437300639624594776823045099321995502369441017773112978232613573776002544746743729235001898351927790121745176094742126543428937804168442825151109332189130700827963845992804385171495237633513381334330183106311933778296530080380964927057858818184165687876605523993531895634855631581028285968680587690824017304673771715743910630890067795660322276576107143632729666740732386994570083760867021246031517454906466457258169753635794650852272673580279805299934407767051636295228723507169062439516350765073917034547329097412928473193360188867123275879264716111688010525651132158605253861505447724506568421896927818730558516993304396696220955172678677191333414695896545292471743799065775040727296926354738357366928088736118889141330418800952094331900214524968825717700238066279664757165662421750171665738289961952745549249157769111694816915445709189013575435806770881507510590646815892547059559475799252897900855759207907613247388205405053799476101090460600763724844306667655581412418090937912854928609050774934273465991738692266271566686210328624782852186728540306972726664482216734228333500621981671945798813342967269125426387152615664709441488121155624950336519590272256862679652167967968598380317914343253998423983771820436102226746953169078973816267310811533175751550581838999016388293313923097194680792296304213317496265727495168862461749468861925725337896838314704182888941945906837117437963183366266398880448097323880357825100686137169030960714566446253877374913898546070225102525425623080113653875450518499938901358689802043550206956159244017400870860097355608260007790291382884266103050744939534022685964782112894265372919133333077043743920840845603028009134834982438326093683234557483995620509476262739824859954535090710312368751659106850297125266931810178436641342231855484010928193038418903906289723652417455859375709623843801567756614126961928364580527173821187300051605538463995403894642881178355973397405863392622435060755242360111977237056237810196967243122407852761652742104688799812709315322610801150544061758538325923687045822766880526383550105709830244681680238191631680195918341275736327299132944715840983717790815945021775510298271538258192514958753038594600726113919977428928235951484362503622564104240513067287982482959051273149286335692306402683756943905079810047046159491686930927804658569076738060324074576531374762542533571869668710252940628156491944618047702444650582975350392858100620033227684921114911881976150454170653846612216122230568234279126595031128742238267930595253843566217312872869761287144814933293313726730047862216526781758554485431420655570332018776463563532678455864888657687017656204231747625965401662633287160463217141188825307843769181950172358667143330444566729036735517322588398488711504755524199571130131123030139344320371678317022346394021718492900401425743043963579950592803206431487166318108505886123982714319153541583452410578117715763735962384829452215185927640330059746413084776982512545694481273459178523851052423247388048047852991253266563237486676954626688953786937099508269660302102994483292111690233747726367173008512353579728656126955863409526558432356983157123917098926087099909100505880410377226936967600431075224059107467381892298435582102451980548958589412401837877384397650249414248658071039390294444282778681601515870955684541700226900173384147460507088265601171873346297796990228802271944322707156613304514706812293600824598818920600003254401152920618749187322755805871205497813280355008201180515708256484397677368844312264430830562814700330698314810275643657912724829712837295242286836391258158354531014183363663875284742026460603743429451892690499731137352052492249871243252734600698339002911485592159173357669228144415964054873132296215263601058347809968851974858196000993336788442152718572199043689344936733812423442994262526944663636268346162543526724875600836656775397816589542096158434982511158668139925730154513504670158237778163026228587415627033904235684015457032640895441062273689230201181674083359129217073199106877056169994774209932498460314715324755055220124422466474390936129917940858129534338710988328755157223923997785713769781194297044109152357608369487968025004049922579888769207835598610449418468893268155179081619182118354193575070576053568667596115062660891828541648084880213903003492563839654601414454797350459459789049033300667918636422583863143367923364939473194840698305869133553089232225382579638043668736558563552144341103563557262616501238492881553920316462837578123045334411353329234820757638518677838194107170541988801034829553189171283361949689908487101524747240797439655351236934021183541406806984783215158305020457567050531197617181031364520628348369621394909738679330061639429754124978371289552464329054973503141999920203158546857765287644639336235476404559662293731448651560840015235595961905678275000908422737481739050080574072248713196768818221215176789524753975949334665212079036838958452976985773970213594725724285937507005211437622272380391584899713759132163051921192421993921450488481273991404695889309484980689533021722403494029464620472063599866525756797282974315689560734583297255518573580263432117329278413428452125085834386685836013994920495166744456005529810868678511273905225877762746813923270302084146787816696971600843686162610747812841962639762341390436084511576784478543219502734443127773909243263676370795323559695292599397848896764202268061458596222349377900363384505323355256943740393323520949625999132634579285601353371920799763251177358995614318931859293997234104883133962409865213623239652375686919790786027924561857194860366987875424663267419177977429478628132713428835869250429148852341798038774876772029855348608886653839881928095595403978243053011425454236858911777862059667090271693433958216865094967688046603694299206087111660746536112022944260005110506718831389060944223550468144581662433899048591755668079146268501962151282381484508848957752705872926733220871225366947575500076868539643744025010240894817040687101559941476238841422387229813828810890313112680665571125527426610501758083969404222848692309373050378630495064010540295377749792580971227425950282084024975200244003012938644552867755797525978452090307517832859669375412548725976047904467282747436509859090326771965537553041950700864876397579376235276913852905934134117045640065226181871414056914538331222122286097552976781652681645828388445023185923236779206378139645585888873360177122188916620409960991556940526471005908248515921986491115315857229877508322739428050837361270321698658670136618967198263541507555633490546869202021494786540817171590027038606651342594526578723776821163317809690525311860071479290685910143463479259154450480946468630598150347121036650829591541155131734594043280374368819096513984356758215570578810966709223959478616105775417701938245744874265573411307205273535581917911276437075644014975170489119973401160781132463056026090134689564014362477339906054808555570840006272096079832549623012724465158746229853415323475369840309763355713491042078972312359043816898169276846027137758606395630985538415269074784005158357138476047240105372630526659058110004345684796976378556496961092772744934540486455950849667190898243733010817617723842627712555413080310930676077369624810448230512261091704858585871887574777978356846227571447079734298159875522076574081268415880813022632663767512675527517098970093352051489153739465989099150223163374143361088538581783030705088146391606222065810877089989360490191010353123007026141752531278351769718060406366085006434692838644106452329845086211909868528287588407002403706476851450712644801767362419749394604438517752743755277040884509542306642235112636986385070497012130198014900043907529853589372289445200687738913173352436025685082046617533785229955724884962952608337768817932818161798966532976574456690042833893261425044743664501121153734135478616968167229260131567575797250475838000898364928185956821138188432843426327389736509278184732458950275480662266381552949943523854159819779651315129562446141400618314192871022507950240475481127660485920165603950472395058252275072151537615579920764870865907741657085619224366244287119997990283751954926806070336394367040910155063805984135930962071982001492104044510194650156074895664488853568755974973251737919981068266604345400318734014928980043649382473938103875034602678143545228051942965686119651389419537495029669933201258477917000290307802032151000789354727059197766311361191359756985039827646099791558088381132516053695255038944634311914344980414270741848408575804966438238336084885870516688800473978471206063649027914496499740339635161507150404539052575206523042010870373872693055761217564808424840618836972098840200581170509461178132353097157715436930330816904988114787829051836623299112771626514318611472836651886241785638603794301987196874700249446070239357644676464029139282472372402525828498902982177681335822907583204760646110494526549593958669013697726944081470743350534966776147491919155327701408869837374505458293792386497906889164877798006191893411959643302407535677009294737807831139256112997185945183888241942787450861771993478404589066971356872131610993553893909397598508150760944792093565539184332883888619025911287334293477557617417164906157020083159432691807599717440897348170388220829417643569020688526223559274041232747650378481211656090222665177350017948177757430555938079732458969281372851122848323716082412267906918572579316891348744814341060339287706880535826088193198031541783993250374222367269586615529851224604308498461392413133746274012985181310118089903989715711527576111400155931200649170963241336776971293560623134083311912595678108409438719531674215188938607078272967927055197424343148751422639696064690967417362540813609759309480540098157334821308335582518472743264984306599409748651278936578292445997205474008845886458079692938714612505951861236094260081344958084985917140214533410914676508242701596396536509558677534855553015696427335510406921581522096053227967807598561027371675990175952727627937804590598086404499334735289135603592078752093202753331795790931243786379760584801008366353193497707630859200856366840201371650622400072725014035742008201457354954516744661577515690671053886622959044971295230886553531753604394852043000565921409674134928603943409038041893180684787900422182257324003577541326220825606281576996096630159256193641419114087546382157584715106931539737241023776015006841660357862534086659147340914878772251311793208850905942013267058392889369613772688499385369600271328076053964701996777594224951403218377930237511630198375155340151165184313821686754005934942202089085634721212104653279094198910559452333024584394995055826534918468216035767248538632307028696650472596651802233666914428010108417538343495473571599013124436683388041274583806621383478651017651819340626139036976548418517977192645873377945411558213991666295200004651294464137013714428447010182430699337073920632511762701227976523238212298216989438207055420495895168090607853686640998896425139380709447951792737405500471883655247743572584411029848563869862130375980563414249760953405612698742996683665036428650326631296614471262483622595169375567014076511485728166618777218368736773148220862018718908307375044154164480844189717132803926149439660899047059324007427694573726592094609851927977533090967255652889378092054792100444995049439942740674264122381441370392666303788355084272055506314327018415656035108828888441516868174881412741405285791424837024040069967365954067593278570783457311030988141836791632370276845414088686162099629988918135780269974291172715445090528419201775484468801678099812034124643058752050144598904925197061323462178045184818627163859894460600316637681018417976092743812663213529489993464554322299570613704184496835882754132657411196449948361514839517670171384377416247015915518903864204978576220572738201857054193456363575200243741604325241733520394975883426182611233054036521706041057488050113712579299659371306373054132350682484930974310658869786127004443496141778011356894902517116698360073326906958366571090710834373849774570083610276461647025319560208276949327354525117696284858577464468249727981536730711109618459130794616425394245587533092737206952607937507170555641438488941315765599724739046287726401316093514594472698021293039900555183904974540417416392786573868569090639870562463495728189274295553083211017060760273798028060449753744121020885212306881353028128692410267470713208649813913061824962196475205815973259937277438945516308867814583674279226360956886004841669938549352885898363427754430017282663341153599351027205417121897464630906513312735504136830747286663301945564928875080405402844187851800733751161759650777337107232344695193024132271769020472985076554384558007255769397176606943393462348945579748344418360058986889077521663301747652788576077339092809867795345972895673774186331878720584288947268728393341668358899207273418915138061979099519288122353725410935452524896823397170696304094008059582894030601653827334625307651990165855079103983343653908795607656845747709078441430346939240598100282111443672162577898957507095250735522769519686605400018310373627636191023434525322349242745425204134980922169537832174718780377788539400221778854810842203345473907482766264190402855724354145791716402035229705076298383055880215549544212657771057151095703864889126915777654642074570958640287148060843923611634451607393303225361419005915554074286683307169202079554494360203073328103208312735514393448673914716939951218020265335997680207898074094455207717775134960737243541545079141813174313869953861136590724169226728132093700961737233811010272175047215046349782804652962038414274465337487273311254759463102792448749492524881591803481833599053746872980482328271569733835962443658705553552688150514762201322314906330603946615055386915220418157857343235292292754605980333876827575092924428622417874700447679608455888538698713286476253734767681320267999219430078687408963238883047745456090180480805024125120289113501076110331987102694013832374850759226111335969146442696309724229657317585193321507922363000847201110108909815191715023254426422912527445059466096291725839726621864706180493294209114835217773557457547267153520417241195285068641050389079576569979356049171531607016852944225468948172342523038804336205517004182287669962027589230196881202689142957026716315283159096487159169061885225502494373486207172852900688167589743293718020200460118852118845893319570394000553724626765858175158421726593112928223752577148337605158474035396610770830265481108561952040090484326080338040664615230809829186486891836752635086190211052676573181467622221845234471847418793688379373928332558638230539205187351933641623763713012563889281845632365046941504838905662955926783073733414562577928949511641679611346924914830978850876088267567436258523775085474747826910005311357042284817274219860510988633823176638869308090439588059800821931959607374885099405251175774958607068727930947402060344246760281684090520327996256210541708474125483507953862291405409082925485001920566889253677453243641105559190069313256923994732273520932881720764791584112062772647897140733344700540856971936992575374358234526738268084514061640005031296377057721130592682623698618712397052141957345078433785022432422569175422097955409454649915467445660806120699479689349103060920710869187534778954301049402715622068524784756864164348957107270142522593337107690273758260438846307544644240418508005946380237091677686625365057385886517959452569408963091619685918058805495513056597955085606846756130952415999549735077544291648774080214410577475516695076908421892548091177590573833036149782158108934728140871054742104518836956504145542715999409508863875944088708504014718513543086955101237358551481412747768844926286077176999388968764867125424498541735505568256236966960570816951011815350470302420690146411701740098833719526955476964251704926726364999861594260926293046963260857652560686675434132034523260122541598031530637101165460304021015213041600293084553260162470129245711049104936680037224839929425720365493242116161820337424690535029518082132531144610289795421592777653829471105521765815145431021423049507246703074355915849270078383340084681729975709644169143228117226158891879983701645791205659784327431375268818734383075937349622707617384832141834196035251877335545561394466347756160034608684389067441065042945608209714830336363856499965606345556337125654600512661890428227458140858577498840230395031095243929132450488621271891117528440237044472781983022126382476430685964816842685845008670188598951738321271416995826548334081224061286242711839390696269685687292801754163299485528256147408345130310053750871256131336992434403739612529439784157775012213996546125363445204954215476100745172775341837718668383932560068380577830279107255484987000141350554622735064215766184897890893250072887736507968531182157403592719089661288849285970112203191997730860607051576813164499952893692649797790774942107687213717172612864508826723155446581628813643422204046699881350355233216567952334087308468195701654811952949505977931031239107590657619385840843435504475076551534950604333081014984649638967231775820232875325091787292480714470355072077448491977207348175749984294318217447378312585566094090354402859545921360820126309805136393267548593825026629428689158005980208817067368145100294867978702346783069959917983595774428150283996398145467904589938276973850535001162864193774877508052759601441653592049340012010781038256278495454999118895715147659675612675269225001984272673799241231653588877836365497614865052294690219355611143009323311651942782781941190559859914045938328368852875472256612011478445553579448929817025111582602299214884863208188841434327178973317379068873791971648225709796563280801563865194078061580378470869189717321921696186132209056829216734731505517274287963526108111256214663394849116940127410340345796184038260595666725055039545057132483323432371061140276837738476712479871109733536084785153889736836045301574846557137826492270854737659264312689339678912759429565654924612855878008264545653846341866634825677140345352968481657092828378804772543820276571285496134905669796354421251096381457074608181716883980126099956096860323237623399782660393232701128888337511078004669811506026074235085413565350883390316577384718126666178218671573955878538854340227325514087577823727762073910320958037039979439851654665364540972760020403002210273460324721953860011289379594491935156619976544734136492225356158575598970248980877934943335257631646692455377178342416885249833741687552803484749956811349681078200283202317073036296191385525012921281768056205566230358530165867436906711798748062316492567735152693234381947801351473088952803357514191561613900096284672101351368454379113655189482387969182731375804595293233889822941303819890889956286518745901394288194367013682679246717082125505046115625143984786447338003021545475085261162690348867592789723785807999024311165990509344002121125065586056582640745665198727036541753439684022066376293237138995154555462496503596961470819230519248124760207808935123969041724057951628899735733210041744487055350905860396975234397184293913226745429275111180600186035216637009010873404901173663142341687382012034508836925288043793966579519739564827455612368642629061943359295491879548748292993140527092549196619041043453867157867070402151920264878314200844964418239433443245544186331264014460993983264295122458685153989686957923349017984186745507098064782934584104893182327723746505506050814213235109775596930896800016625908438989254076166524457343870000140422194844971785373849038360081255910786490394061837771401961074582152271160065740669284556019539124032516268246441019670930409312888563121322508006630085082911856300880368926669011665615098540716083203123069002199210381398439134544060523585902406946854800208289069431771604316972232761398261639735953452367324866300475732819574572249825750755531096565340540657836253340377759388638737126792559381393386628832173178995278452328260248387269709628003401739618355369870292292905588061802918099578214803415184565082637618554191401588949877704081140267440279837446698194178541304969521393270600982188862836758746311672733517478283962613580942940935147943005976111777179862957404917618045182156243618049049639226881515782519644383514675946697043001678745627819406684623294593345444327544664369761791212009597480429443678471945351756434504858069678937464344945715468126695300971847702619436039369566427927152849042923134617516490126882051036878269935073306076244010131603343512067118838408899331838133848583860405702837807731332061986470768092737176103020698971925664438086556698319016086240638682956907489827561033428157798990065656883925568824992855104136348929925466645470709588571408314374496857308043651555909126584598167699195743553068059098921183985128416853135291919627290702022114129095169555617016058365981180900348065216027636471709023597672491799705184868744451718411126399124962480748507416025077843999771389882811319015022978291923590310882982470846642966729023935861442603057879492769114678977417803086585845560470019038763016215594152387598857079212541431394812696777321324622321809085475031922439189942682851744887874274635812175724933771965232934090393056139751981278186154791707245091918489762892722376640764495576614891670867717245059695165404903648428775720038166998441602344305053641236640844021549010101510212919874100242551132031004896408597667020440307685278014476255580665510854686221195180073418788821688653800021335548379605260523360476213268887493313953054298969493956286357256994325095743990230162605846230556646808377571704868457746541961560950635966503251858084166602373579372047438386119479823655070931636245936712424437644839327535116137753773650314329296552348451083304872777597949254190550282443652888752593618855693411209384609245791861614944988729748716442772963650708980825979571407056138003246246218705843772562081509911009867694694666769201365408578111230730369803585559931470138838525348695413341961619152167301150934263582585031548694263434570768043608978346529267288203264670210283485930471202067521647439886042759180390747180694775778976479428557103557363089058655469356807533142226263361340388908283890486163632265500719619289386928165775588763521670966627720139756723908012700365271051488369997858364680077932181076672881924827783427010262271562478516701446201230769706894558345738575423438685522377899614734694213097836564775469820040069624488090942318427945293174504784466383730604077454082359603808704640956580201244049758835378055556379572925915719166664895401815818239291599845363826096555599731359845021484587011807898049100669499991189047418647683279193257977955392156367055225869589172126882516882863433023103972137065421933827546290042103631208868111885825969381872220407878957392586589535997742888187883544495744498984328830927728152060214439198328070518194334499599431194233090096119959038532046655451755035502405665712989465012748243232996768036223701419131826977325966871310822360926022244655938645121596948813453251740589000042507360349742157926144435620277604704274233272975943796880302771632605485579026586839816696092913428969630685232991675787019633034605218270941140036845942052674612275235978929600433609039196900049905338524715694913303407798948571984887635024595834629752418877629406283934890382688154297266288166336464050986510890475357385455644102177615030690121611438633364672574294439936175101506951235152829464684560402167457286820895789432665594926888486281159800966813034362457154308477271429417400409785938287612786930572806699640148563859762203506083224289676491330274313520676520438233281499176758805158649452959907400310520514758281013974847291873254108090985283650392166424334281037735818088636500070644274098612359792637642775246118708021329511176032229652554373571545943996632258366392160171232777175708573418365764672955798451086027554754249501647875090337900868052706839155952340697670673175080924494971401434011581321435569803743400918440945908242268047828819222792119072777141834649975631243716808774860024607305045997227538808198812862372602447636223375846628037068094007611050612422684319389749351032859381553958227164327810910525039789450652411173841601915631589928749378594799851548088098443064827481013360303946683547494770106027119704209151887875712409848561517337505547373240444912989157941909587817038001158096640507606727471378562910813358168159732222103149945867297698809534560348911938980308803592329416819601741801793928062426266545464060438785010129071903452523351430033364007576312073654752076033530501342377932265010230029592926625890128760168962096955250917617471802188756676037551781402571756902686433194830193153000870878470982691904485624474129184691680046573079674488421225797527135964044628115353331061772262990486155685258717746478261092873054468459357507945552374983180377301395249777181770525261588242300846621524096516089077107387718758038786657180600289840723842558250472987167839245227921946803747000894243004310508390674070443380414470261116354225617308062997235137159909240959732125631622329223055109481400264440122979829479726827970668792805801640099871031774717816044256530783781920351140194312471195782124576617757945812160424950538271033292217776490657301629664113330466459841102683618347957212771745403912197513285722393694899688444445603924929189664731182027718908590840625995069503307680043572066135280359228687154020627132011852693247051231933868376396162117872250434642079931268098974708485062714082292959932202977111175808191578494971834142602337117236872274538460365905199267032718481650996977132241803138835759732735781633911249243942585424685687143545733120965960956626887736321210322875978073430337961583882274283250195902990338343810892260618492615198812821804731653478432513067260279578916695913998337170151707638744824026615599030676762267763560119700866500572385289529568444188875424258886027685340576130309425267874309855689855632969112071768610326848021818623767676068565476005610124047829084268492953751737077932432898568792590534111797721309015684369274383188815659232616919247286486686138924243130384441210040199129251866536198685906446146491367159885018121667932117639357140913575783437260752433094719083546101288480447208499806359772248596964380379985666595456230509339723201836640757867318149540700524495101458304125842812798808113824356365457190068691114791455637147725073508368162973784087163922704702522371214689394639922457385658556852150827575224928299896471339671116079927108280235919400249683956121404548951856479578630186526592224673245545746342322736914545658789503166747728388301247755605595951094182202646785299925441886492813875186418982617372399727170619097446874340497130461644981945261727437041669374011515544043089854450409659711299162753656630175455924427668243602851437609067752460129271850092737303929521562903019307266958870571932069007814336903115454166188879692945384132389125485896633857454940016914154162783094262987244910955287658552347630476015835753646527619729515600874099525218603629398311543966388896373363395777328789348811679862891337033831587468692065177443513528377942260002160115046559743843501416759108135523466479494381551617682830016788507421131336260582725922851429066816288651956782060294813760717841877003232207917031802176199579614755236482571578787674761125582074380180697253557697499544611755144583507379640728889853933955529790216176590023675215446860163064911059080140242155426666523169256293556944738872136043757740066004592191471079656977518645489891123885173799273457511941194791185976496964777239363810967538488817089745843676204536439402723136156279548907879969674484653495044714813141396565349763187565189339496854867621735630705546403755847933241113007422240967873207512401549667656712930831297431697889684669012038428822843150174598347620924318801257228559913485349002959961606822397765362412151920021134450486085463711605737372368852041047929538646569028324951955533317447100443000670362892350856335540555314174104016271998914498382537277947790012456956749478271083926888258441462852910482441185631617835340489096823241355985473407669048016798288387620523291128251009549002954027466154034408997647640342532948869383974967343632038973213966261703261197887481220731985907473554440944312590123943487295684632547245017139994335344572369799902082208821311953571137832456226623700994571514773972586556866382315812014522995523571965670096492441820572405527030358429104638886909984472946366989490739534263306639553099921952897209268852818943366583186327899538249143010787795224829683445042680230617583056416956757651926906975784386361420703583151016910014646285187947770640687025493823182587869163356252264764256654081839068290589886440748899867984048051559259536298964199782136564029391431174048449513223275803505868472709699062573076396358846267349910098133253685857670632783137395369860748832941185273668280471522685103528765945241141926856868680284745937090362206631120365840810599476061050313216902279583446518619484597290192136722116659237464258249383564278399246945089892140678294567735611253480685308846879115504564932782377802690800465489316487586260034413931354634122204076617276925207606042502634106798354682029762387735901072102645161346840460099867756079158162554723253452983683607390288320960229460715723691623683950789584775651014305824841926352119205183153783494141962553477109960154298790550327086175286238245149357743327004111780476762902165445578165285211254218625776105980964949143696235117758696258431749658766687605965048634359996979610405473561708246588327644228543348197980130547411439457526830256681428657953882444607824041562087225361094774114736468387377429488555533733617762258650670153176991424945892243745097756978629621649801117559767385411077311887829388716698741294000183150524606758613008056414753381896389977687057837360239063772874211049073298856345346517023269892737407206960109509728255070956685971079184908478658482824061364456296154581430504014975527291267403014373257075756666943918737779224263317130697638858659651279282770227584327919107917769203707698128489915470736575641196129288561303442285392329490115383676726335032484473992794898445185482246176132896840341241723927589267200374484456470218572825200400579300965409987546611292261254158309078932788962543350241048201037386097558789779357398223331584851843887075820643538605150496565681160072437166270418395159164366430764679879845896058831856416238286333015147817615825609137052693539158709640755758585331234906655568645623965693126513345871650029348101095199438300713142351395318755180949828294019150200727423682583904955201087092716198171465529146694198155397025620439256002976422263554933669237575221412381091844758630116888122773064346917188808680219069432938579540437752261093196113906867753174319962464907902146994338424175976341807604600778154195826180499011060681310411636460772730003811211800859226006417469130522578258310251331024875671416569230349397175752534689263487536086890628525222191217396525111515238547733833018946815991216541543941993553812215023452699355922949177546349230054297613147114137228878254850862101506072370811703770334373567570011119812901632573417386406277463974788992084070019816531754787462140781945607104110661598525487193416772818098443210365187887395197056877176604490429294347934049379611273370692672821440827215238670910785392522449475017638366698549757482036135388611101456823297108087103771773843117662581883280618274172049882826709664809036582376128176399777825279062399695989650961908983010591306879880156517438290046338896705773916108200680630248761462387347488128250459179087857245645607180460961220965954540386155211037631704480572539251957852095521689739641901099811335402497790430076966923417535623150376183132087810799275943362943738666756340725138639500455294378633033188988424533545257668338142429396834074946840069978351713731648151776154870036763398705152887957532652318229136551398077224133864563223942071654740583011584196611038189902383735128894598643237161771474854785680564506819495747562538762107782690673710274161101897881811685482410025744106669078256421191716946793977379092110069316649317929913588097299076078459009990777234754586682055114619697649191945562744671749509687966866365281934165997722518598141247459384276137904802021521819672868326717358597275597926954634542354224203993197094221945923067958930711015274686070019749642381723537756629540210526905200525516148135263156850317353407343066102625433246320685937071899800364239923726042456951208634136020081180194466569844378491492731057514182342466349505345001414668506601911292468408844061731200181996154136128598889725601738564061590412187619691596164454100073993335870951991930286344364273131808622653741490592790479538142419118338200815997985801783557149448218791581545644255000894077993221782853017336832638581743179391364318205433281158374017126418167754422322658708546433836559536736064402109638797364444306951492742859887421522365053840981851414061776773617309380151016551707757759018517799912034716123774372990070792353110823535945374622432292393531400855024673664562577801900675911340515582478341158121628025228562574403346896000717294241614651939642958574772482561777388547937513484808800505202250881835182760122642559467983940549065929078682493378910411838884120358424047739106159879919348384019092838954794943967878038414409788272816265882115667648188768117179700861273508173554224154276186294049184300188102055681684650000064697661666076854315014732187395090892703527495302639138867851131703466059875668286867747230956930318941035377846724266022841342544447824576333199200744367891686010571205314806684565543183197441193052833333385773592704292370940389025130853785393118502407197240335545927580617357644535198021292999928244564221777244309226036971765447960264950570612607157738282717768045649645805064076457620609983720940862801041416522042045295781458870548672147529361106266701578603831945354874777830866137979059543996155084268929967892749905197049924131538530382899863102175715133489714945251060608593508686148406918401205523134910374267278557458179646024452279785849440022487222000633508353807406794277156911016854215314762501022786975833730160981987358284325056929229207508971987617153217872682011263617640964343323152538140693253939624308042142766451388914535300239694106421164992802274210287585304110655862535654060497902075671488961631410674671155466014989701543158639382827219596250282080134132602792482021644452829385606789265392605936392055694731849412618925074480598514764702729923983031585120256669939921574766513446395636540043195300467690849802732686451155304886692205879757011718443386183346252132126827544218941723851541576678904374577583535402448784174664671103984714153597162798017238703106035900076439222924488869204474816087203957550304239430295714415843159435286270834377268882630166890825618449632100854047039528949694851821001648538853384652318284139934385609997555353443789105221440305046116548528964790505379870106280691240795647254343771678294094185928978213101426730829805420694291747192352913233803624510471329983414806459505629906029347878345859747444332353447146612990489583141109222150779266370775270870905778594638200876495521212696766645778784668941439841996875012573931306808702999954598515707148480905422810172040834897012014623112521578993416155394823047718195449109932710536633716598248333456850981837305240159061776848814246295022397092025811158686642852607906864564448791956696809302432211318418689937273128711424875740160680259481224625055003412343266015089147389667042122061009000340826286959926030318131102321800183711737082431541829334669859256990022658763127362117765123226331675243510115460772165970257768267190514145352980860195002222250439346117536158029854220234022273036944162228287924452654548654897406820068514571093237361391368904051935643431359937411724720832910565620275233651417601244046698571539971800196243990034127103857758730357981144143721483748622303357539635228538542262502690562725759726481175912131006847412947296013401277729072718027043535322771572278513641429212761407123581957169764402764411849310891250638010309487984655381757708507371662206095135343398041622179808100268600888775765772066469053762284406765038529532552991781174359518573460285007334429346790494945750996116980659869850460312170526332365012664011015208670234036721908301046594890640177764982788064944391016725371864450436308337756055703444582560702177216293471232449146914153122440628438808757861943511015703937786609566489785899164356121727203127905952536145720443475621397045463278750294038773986801647705302753617369503532912085814912769271826620258537364514552767127955075262867183009366628429575423762084598631402158696112746933319360211174580605350808784210824032413970574246872856639594317226087454878753548840986290452968412264578185815438062245075683159199145396853124083602453483087188561448254269032514431020914497860222700555439738669024934284707336987992834338437797507863469055295440446409277739565515092144047134222109108102614505856186555408078531370014074468367022086118398660431333537118763846569803963804244688512158718842086180243390416352256695923311967741142739919027427200599721602640419933534341833608285636864087263021979905724651197280398714775287950992073501125489299110880204935466204152925435783626305135176732524604822010403472453329609757466204154831928866741510274413767582365161778559432380448572578140425677694535497041589380733801840449792774460606696294919673589014595282593423641753076088557717901831562292362740181211907483527323787382255039104866765507456895679222320479143757875756731783494540280322154933786762178451325555851767310390545783358958335333371209092744357175414052343125548832513540395808663336996444760983529857019377012798177735398511439830187973918603846728650831400702375721823470295079330357699981818758706682125235924964172173054607206487168778374744247155515461232084321639061427796906942527786738958102417440234316053988054038326363046104200574300055206107467905940116477335164792181168778837808597116556455496380590731576806431203755098210034270805462242067192406704057171941337223808967203377573468372378849887325158750633213353437299205773086890182635515758903879351816342855201917804034043896603716288621948995364067107082384459178449681619731293634404820565367547920397173547704817995130016394158247912955104331141862964849122396926160825418042010835989498622912939136616800369131769457662732306367466641132201344440819063146198263523326806055270620020132439611298883617473615978446210554953440095431166484233036824919966770214308516437558717705516086757100845495368984060261887017518313043666038368424976458743143462468002105651059783748528445816489853801678260012155435202524308327141352090591137671534438645552605661105765852393039349168743330668944140875323718631491003794129887296236620563499754547890230894541905512321094021402982601884109930138189647900028426701319223119350250592433176619282512317964668001135496737299388664784046396080777638339639065696196282253758215893988210123374838913034201209565486706471552198618401607747035336762008889859944872754064252551964393623987585367302337597911509567438356920848765707163350682357260733678622032276183897513244011287779589608639133385397359302545348564504623201217220376597927849741115061690410637033329952281117529938527203621809003291220194650048152303508397415600208297305172684780793807616603307961307430096942823324870101903517894324232284621502007400611377746754323485642410126106095985739793894066462334835174828641125619451518435716078398035364718696236996810079859015019459736526018806391905816102663552030374195871893180027066065575730958561335644712984902546585640429941756149399145646376221845698090711492811933711572893164161718267615773207653062906979942783973209236863110427114962166721686326105394175059653130824697896216838853004596338681841438293192789661550812519054444491864146481740672387051071491537348011447405452338354195099606444337601092276542253498736751106292261741360770586273344672295463217158172767848517332465025878854188640577354357715330719702082164614026270810985892621067560002127234572272228946417436283537934746600469281002482106891590253478050385359431338424934276208168215251989459361343315800037012511379178058562467889266995618914103266875351646014993189774022300960301633065696818932296102951243363148921700121088121981181003236550186086765280268447354846068313895470236934195472028798862123085846379265612994512374604918743868084743000489977662405918198464835034977210802121487508625632689322978109066825118447967042818513748156721452521851277118168679296484488763118526869514029979207270491949886007659721039424178059745566611648753633786204873397021749895867136989539269641379647352353319458409629838372203951900025918028359890234768598915368773886319939597485557417863920793602044414908742224431741168240756789854335062908063438447514978064219386590777313107771203527290854092262464760445994412050360321416417554942673107111119353000728393087671641699180551067761993519732120813055335777368439516216541244534559931544626971895185902436466971265084296050356816487122053138613279767664763927818274081162745190786750096239862015395620980217861952522821189420859993965053903731122520648091695975431125283637741715687586046894002821509031818454915292933592913231198211654608021694452242299342974962101651552895587336441710843239509380050124478926178575823752887272786720489278310914480784886246804653534314560867349319137482652526327259289807813544237717139002210551746450520241617390819279396299367345267161299048652395565570083637278397665461779347345728172644639269392478694456966546023180460244405006987794447104255263689386186505977699019553280298395782671268144101999473917056606151695136174536321679736634667163580059457212388781273936477844141411237365752241830834217327475629254416040040872556787661635198091406002501545207072564746813598820724845716195589009585364023330104026073916270954696640590236555721478855774777517750681252767220184408267509271094744753656329500430911047255552081484358915607658018990734935767000403049633310213039918003761252026032026184923450287157151047393607394820038235116605290898537147472905290284186565603669052350230741553822838110587709469780434365460071861824825444122652259626408549432201342880299367582522110335590169041924082478680708034862831875146552890995574531474035516036614348214808054788819192965565197658453489142013148204142561610889693407687336971278640232313500171392662419525864881467716504817913187384072260371004923058349819016932802229527191157331719205084302081382583766924478202393068876218498297933632275350423006747952264367308331651650287024376015202877552120058156642985129475424365328228330754460655125994373138474798726629113556508192953000739523693134428363520837466981878040051830516989612061799569666551084240173242402616698270078422045815990435743397415128869545743491169869606166904482808081821377485705644285661529125058824609755368888280543710971892580035357276676827638082284884868718387481394600982625082285052253755689354513525577154742511196728270114468086580787703899217753817201767445168338479658140405066968304615757484942496035658891180269718126386252646543421013535456489038220045649075586309315238636101048988859692466385310486620172100089831387544047116938300384367216625456002478350250589004041436519494622892252345182321282371210530911208543328899603238601455347114370698718662568178102654729169021730825867843441369828366321644438029153987278648629328464924411640368282229862175460591898012267287125131665387845211382926785962674948866973751138551510812627203114506193870191367064555018737242086980564459021867757594548023061815299649223667000854786271572020132446238751576718037066352875732643468116671477158265082409666471472497807752631576010084207276244696726232653220250719935321578087037546270939267067563946248808422959035956082842856625559611889945935789084839061192239852717603376155905485693347966197143554121178105679880129275623953879253919209301934660703494944563579071309764777225763466418583841127382272553138640882121428298687205555611714165061732493736828841397728537374959187911124075013637694696492400294120896978524163913667891488307463724267888890638978841763098729791975485498344669451036300481860337046026270836732425313465370303338139032305246220113176876507815553562963121464980464284979887109835024073610705766640088684491425878129253696859847693557843575757039267420160211389426217707905513343729047389078006717263399804807919745749817223394075469197696599927921340613527062436257459832381322879392374865468997295708941099854616360996208092003426095749572553109986107242386080027252409496709444564125609252741560878519899983365036968603065672578980669342830835344698161989297680212763330040056521750278801734239404708223418293259395761108347084371779855355698116789876006218636975465321134096103336111937550672008347649203517826886913546189310156470947256698822871188359200573345803412841504928471478602831436691309590400731756683473390295247388052777002488016371257183972779998833449445574040692606463811788475015081982298559453138048429981361862140997785242946008548122114472005342459243228081541707919129194622108503916206280837747956249337956881175015506891898715588525561533943805031196012381306551121976797400574449353640557382271059550903699780144510578579171283313704445077998563799118064528708751345049674881712758594107380150959770146139948078551861548799254123909646551578528107369120673438310261340737514773399777626655536493121938521319938361278642876530867759041744838299441672743117633064016346605921259627068045440119724326405281684959669366975748743382100003725879200662107212887456333110997597746785163515060466554523413229366630018877943949806477204933719220829076828549576565029867705953529729192555425310589721065460884647209883662767644741586017055859989905426521783115256896381267779674348885920149353751054579329719482475175467579681846840686828208868935830911181168981327973259861517408902003775980778994899969125338630070527229610169606364797653956355050797311558426163102270107872782381099879595165351074648075780326025808002567558446171621301337503268467095517666616254223503455925961525458982416665589039020242130114878011758295355826499614476090191036537769811558572678885357598919411375597477998650605663405749690545162522435505799814251396945809389033183343545065016979599590981212474216209512388847683182577005619815759953150412107120722462952429017420903955148460099406521013504184705907198916905468789496065593703744517364338441897330414987198955536149970650424304543644268776032333809732498800571477581425385820743879837000959830950812964422299170104459474017892800461196370320696445043367289370461389418539417910055735782051480419342890710532438807840414490649153988949130742868153287902271627067722199080412716108491302780117300208479578599305454225233520139090780990991771752136324436586773105397714883173022593714041670703575906234562948018238402278323073274505229510668091729607581994454843118376775875493622277378763532607790910406837760532982312220800365555693710484749570501249784659854503668056777681063669749954937979262676330244221946558302855452421478915255209920441198441367828457287329223424600231393069216966445094822822779029117283375285032494342303110167491333338242166033370747979681361125557471763185782933554845215196963787084074712982086392867300732620249723257608193829704342109645263319715240978556589212977918536154993630186927792121684434175680692772441899639342870803021700495579613809725204263478503794635266848659814498395524527759960181140591221060302317760229013000236634446807653989103391265358169948169725744282090532123567083817909725891315147490041412521696578661552787042123655479387440800717444126640854985547877052283596079812449021206637301107670658390177792515794792616235192220933249095908800083463782460432868353190465144076718938573125929015668436002321867067763122376249749782058186269037099551572214113755271928906300033832350503800895188515761182766296602370064427690678695254719470551059862567477023063021998644138718106417569688499100308777381426397630041599678006296265854681775726854884370817836311864132030748490041717714945778054581673036443728018496879412251529224798270717409815097083451189403097245004658642659084716290359332211762478215447861764456398120903069175843167683640670638920752400667643796276812296279102173069121253249246307057121686928859097004389309754281731333760545200099427655191123259708214969549384438128633308451695331909757032817741401194015944600936699280685923214173227932171746976193267668624931296526127010919941125576409099779036488730479391519831038980147052233555912425755140205329613380629188079443954126974725202528724924426958873007721553823962858612663080911587764384585556611172328309266496660684847986981271192382492305505564231483141004469056991338494132255647437527167762039553538188981879969667402513817099564681639226351531592615114852351985501726530742503772101799824910638369082293798044544415156825511935913627959809672547100613004836815119403452344412877665874999432896198010666662819520921379488958175194743741308549186500022437879117548871122529163181741818613916830502304288023024247165333754595562836528287253422741176520714965720022723672015669272153591243399827708582066704654024010000436910133085460501853188233627153115536371012864158291953999355370351701711396119676868150439357829111665818555718745533829108620562137736387831862787658808208308192992894847674503298345080222743724989436215500193474062078541527821719871915503402393087931671051254701850316293236689620881026600847636898661619699890985128826314234558918709357883664311310954160942805915725178628807440043777118433276511626769650228433885853123886647858226466794521223432184241577761730687015376070760342240351307774321732437563585785016268854309554245273491066416405289162172449301458447905836081303677922778383281592696705519095725229400471844908268891229993694921365653012416471436449940219385777070762004162082285438801194837279090838390941357847022424990721452800230097969116675787778049476534461461153990475503136356450257595775751323096746018568288969298863557492399867772089745315666374583463880668991806088065852257603405873385991944905724866740091114028243398545761572607413373867472234685854435047869120387053992168023709847895425553510827831357624774759466685711122074076626723935801989113342104258619811333693951002617303622848622769334983427001599499964311283037304955291088139102158949204064356848825523993862470305123012931251496765768938862829175151107383179975028176989917487743566272392109428294427761907153754934524971031686109807581785411705972621121182398915936719822632178851638362351282174068903056056263744479193706069207361660921420853330778747303085060090087215092108457005073292094713794913415592895863723915874962246119537769860849149402258811387691449590882871620193845043325046691636996873173948254234580138463716644128591589554051295459069311410293057937666407600259344284433029836719011044588298279732916435842288273393070435951901781806574693159360686708468899483278356031651434616361251873296765521855261463376318742544196117171166597784383818297326962699222089833063446012907379266311537291758264607780592437855598861063715867730041236256378361066115138317082470617825903251417652161413096325639889277067541689257290910906212837558902291966240402864996376496817573804299090348669659534600687996984559234015466230864006817578847779310749545691414340445334926135388503754355317189565719985519296766596102531984648160446674289298618000541311261219031419651379398955879447511800441615510638483037429915968084705152457078061639543916852647368956212143794139003192589521586040405595014038403895743118970274235812083203055032331589997011221684445786173217285495136579029681664412873266200606164896054079985548065900329972918403651356796684784534400298863188663141948712976172033480728956867157302524088880167352539310912043796339591768915552626053637843730508673878309719808256665408405509634000974941663513284291978380228183301645823544345176347682426048125635908981746910939195266221257483213384795264962233817803096893150258704992386052049758622726466712809650986217204402867563794594510537967515106641694434384133832177272646231411924113447025734513583904675366443465960178176133694598899882439133625720421462421984759839877830963440690806637596572417449027483508023814722733001450861398182271060053048895674133273252468650943654555003611413767168117168951928104822980955827980784228734019731077532091832083187507285110126449211852809647298790720297590061336288922773721545741608293329419512282319640699545799856923020125565482635082238517139810715288727236871067069836533917770433423783951761567767130728606915830661702333267892450231885839259880464454953789837548532854030140040416741044131725565427994401230724483238011957368075402488245041200851537319436170063405087664045702370617016045888287784369209202252248465734153195055359920738752077911437902810289461933981931024841240907913378909539975252116366090548885421966364561431739630110493767843926990213748521823427932557264483125936587021463710009267522474094224469943957457857747785802268410727932010245071027071054913185750185943355926962061160366348040079981821642603575450743535171490528186008104786141176295211573179671446546411024655409308376299322591485580462239649125389881022760855160075395573772704972620990185029918057788038568247034854645817324924455620769313583930242672521445618893149708657862925581177143940331906898679772179012933734455665146101603077920097149624228892916058437745676421464747389838214488339640806864127459027075478823562614137907586513517706225383669199102276002206887808434361858365786841361375305242409583386371656438525146741705133440212933840072460974767157899830096526379521044908644215779842988336336036546984286350519895465665514339687329421477224198705567577566865006898157820004680598743143329836392961249143330584831473830113779681092999554190554151364360987384446358393053491759901521322668856929688235175838968832304207086584256162497499301268448386838945995253500204977162752499245626025999234449940068290328109654179628014292618318020253790783491053261570425723598591029346566945085287463184141334861774172702691223980339617729346653639046904602005936867048689483334703856711992444413874765873966500011400028997793972854989872034007432748625314287057510610861816507637147320189303070852503787648097046604935599637286268832336215724818284771765150554769569089280198464154880888868708044666263731914033951862135349579122385246551295911002254347694624596249584265783089768057892893121081825212238041462854357751322174479056309283459160979008445002165719333392893427321910258983898135367797466464169641112448412670248632868865335204557409049746662358023463946164954686254316802567900308276999365750925172968946031034459838482548151803015454076445594982232601265085259239564884524619258404253941820852524539522690098721576818691358878719979797394891974898257331738446910198038888430797456152189954980241374703853734128188366358794846146953594203255382501682308997287050201866370713927222726006799392731557797145036587111977389341906942673525884116891620412029185185326385813854057401604724419579542892309473761625936204151028862237790997533981715661079305561918404286484161527615138110283453685967976644382924825669290412742440831137328740532599182163981101214561728592578397810406136478131102199518945223340892105747773774725268879297495672923107931334299467601094417928874972473949494292914529771586640037478363169058943097760337676657266744410324473939357528649089701561023059927751256096363170778923094539861252236270277483374813544331969704704089404932632711210359805007764570827139558366368201480936222231131494167316517463957708603741087880228701892506437730799719712468649675485073677756608871954597676826721755499822235077798379202783489259092476813333458812033414326208973860987370413224674591035341729017468654717638685734329397896165925255370315791340522123071491580619098625001937549730325324887677705353072041986783328599602038957290218783067522896087656193884709212516548692299901753687305876154267882320481423914066484904892064894411825376839693314636822295658707144315669934753170615684877687614895675018346956287576776214925224202977606855376054939501224437709660591065815207206515388986181555441975281386736111320012438713399803513216463505445213497285026206228016472838540900139805772717162791682154492222783977017404589812957524674133981731147461404338566358958882175237269708700951832389515531089367156769875265282573794664761452500150938352792030485717038935175329419233572309711812041527672936022022356422242378101212211221382796593448647870543471035124280839289636852828276152702804223731877628636612036726282959540255051989610929124918406400073334877681831228191517781124039612593963183208120568756906878659675586928229331586410364125554355172499126495439125706361663580225758792664474498907951263830191871582905663844038761106982639857447093932364540820643182916171619269737053611810277870973319996020078282125555116677022514730652175476363411091277123335183243023799720915982833671006946199707164119419384428114215728414317291789425439039527030544168826659087451316288979928376421271793106182452164507570719731873029724243658294186771173839290511107016414982830331260597290472740913988809428457784344608586798688103934430523468653259458301857864098560806257909335552005197889486696381715355125879858353782292374311831516673286121989156962222018133731820130720084444016160263216130098843392863557635634577093172755006230487206662066546490924066446296322923563512927401501238083242695479597872911748920850979193611641202973895952265885968124054439923435770097463509399413276642744756997446689560324082848478469533766327880959276971186366927951190491094300981766759494959926674055270041998411798080397547346993093362820146152446771116385938901642295332116279810736051523249456447207395845308516822310847931127628408134575473506556928464350638208427676449638970958319457358270696812301052171655559499592057908379285196000867361267892738695151683478449239041124953988855645969845382747883547205296470690597361255068193799335142893744371543700871930833993888827898244406033502117556262454612803317302431580754488375008881173357575913967941744196367726325144650628996153382875820512058118058784512355444705523898286727506821669262132862267032350095267515475822119744365318666904200436695712025004887481276937404955758921086706761198287414839950341072091170617614835140656366721137691421592534509753836028430369850360174537804847561916046395642950228198880367628814409225900501362058502322038416605278637195900837606683327064910669984299978364326786448883193868079314092452517872755978973081162004652913269552054776237515242907380507959655885938489923921776440191198274611284871634375067098846740365117734213274722542277291191546976756681763657750624422403654804588740265189643718788901011105701170444727840075231589646330661899800440316783845206209151380715037475124893133335365538138823148164872172559366442855654429270983013268805047180774883400974548951636448543346573634032051372201700128136068505062523390867338385906737466054506479959225228717597329734198770628272291299145827000850807057991388971965871917088500983393295898810427643679208881102099530976861896142433375874764933733854114736114833192981242836468497407365107104142805550279442928001517184856484515394366434905592247780411516868983341490012283984546677916577708549034844914697928477207863528023916097245309275088247866995681578336862025903611150404850774811826863195919810367422596969602404559506564869599181735192306750391639051726606634810445853479553075392945598129487440519112480350895288300791816286393683074663342255710029929091068227840326623707937707331358241782243379598560128147788850069947884648635657366346974650158874037410902317127664883077849650427406087714917037146467066625444845906280682127008887393563656917477634451754555548316003249238575950982127832246904317265122062234783623375742153898456412542827856088786731126955176323132387537483731507797789057075286900954758259321315671228840391515679094623738309142624516926596716823305489826096791898831779180266994139271923549381874007912757162204927150498037479907480222252229869576275792661242472776758945280508587315553349698333609527875792226666459637503027479872934430390185679725441401489871398707453089985380809649685784052426948883148521298134807142139010375721962220530237025693795560605600025294349811499519991131241742188771892982921987252513147896214430245721629995749024354253358111981841209452275414508022343206328930874947664963843335363843438831199474220470280486947228012630351699763754094442816763490381353061224094564843734494975410574841435101266446860713649393032453004702060605854013994986828107786188503979368481980282039818442780298805397364978107988728790141317289697815201878743454296683396317125071055328687275838130283360068507683603293800673258777326940513666931511732954781007706800775039600419876618100720177584252057607301766341185060922498095956287058912958134535026309702088508730803616629908292020103855814063530110790930082155912652234609532580415371100258522294920820156730563026897221625635621913501271639826874768717514640593600099506491965399810529896525793507112790297554284234769940378746373612591355982362439731753733909477496422182677349641363981467264466948711074242662928316630686002535689456254334848929565988478866796380844219243906346986583673761767134162317420538227077328744256611738660295830579386122360328677555155209755423973757410400702926537462734586833402222441660492095374456752688979281616500586859057227069444583600639271793045447638636584202791133044141334104823563261101630937337775624027231923023127942656033298422615423683817427785405716442717636602275926272493677950853952846286922721104899401552382859842204448145747717386389837078132944982461579592098780575381818487001995964556196277248287325399470009600157319695718981027834390540127736289070860877776089235645305871168038704615670386126321241895177430037864408094424482062509508286623340814555507939531277164181254051535469579652567081429068898694630359661461046495882334997978876750624440233936888763152385252783924636398649405661946641371064280694555757758716559916760860037803827095613119499794484525164026550219993502366287762332786406122380335380246817340717953951943512117836520929425772191411459495743041718714369374856320038554471716472568209891111893128391008177288795510090194912500181043362391043174891714700356495460563928610180492544341592924909168053446104374533052974165443157784946332320215513359923098553687098262676117794082141751111130180953764717129089165133379654704264337898403117930136536910171194659067614182159338289771661116239293355601701636508376889699192250440190943431828876707360362462743232338145161243449050880069619274772154537134253513859200173330124900895208316068893804511906387912414363170351796435474373653847389262103598670542849616875569301243933680766835316382344425832981365221388855068247565952498692665922684022105841828503287532132239616296003262255463894944007689211225254869672228651961842867793848292345091092023467567132203676085596079953452695428579169882889878025694010087156919962185632599600408140175533934675627444364950655774410670638196852013063057079294445909568075384550990725531194841459791505077353633688065521346507147739480263557067245973004246211967318161534921843588863000020289169648084549386524127947798995675511184543986484460472610144948269516221401943387998207508352162071680871288034216076143480697809719133946784684261753349048317844804860025803526731326171149647406875416662507495503290757499240122624016223376931226315844452002026028618967610733233034684443786776466119512683919096204096005776819163432502059010946093919912226324315064848014009072128964308544437181595171131552763567048982030221824110135022232110567037438814299611412740140114349944987923129784635335700841789799803716923807081935078113126683443712997561025920546951347072131011525305533486662853003591655985490422018295387841383177223050247057640799973444836545748183575239505176828077404843468243461071460665309372156351889948491848435842779835917332941522874703065120586121970878816056541606424064785897264608690551542732042563195202575720592102372626164942473997364926851386984837428189723268040550890606673126334605364102732416604471963460324522793121801219398542608758016595495812141845735051723860975624154292556411661208357192865792693400862502193062582825632262338305039458663222204722293025514227910682516482481765086279658880533379794677138892807401390884507449756027854073020771184750145155394437948204410483192157081839402666054740546274538597574706658559928375683755566808089666503395990208543221368861132289199008559317240856000553145277032547413755573889002297230810437272874185925152349578587738685769389216775831174649780826438534249463147812785890225881530067821185590607880963032365304960270770917197038221939806311820241439482127511041962818224276837816031596607819009096634355236522767670533458266245413107621634502416211432260992216396506588568667198434264340356113079531169740042997698521794387842613878183442072834935431490066481656510718042339205254962296948680137860453948754583303812899842114631299730852684286404935340724093390512036565172001268535133754956491454042620432310844135170763033337942283567107760679256815657364308385792417394408077512483744450526324259770931587135125250233204244313026195255912237411120389945160848678336637112987038900792938624244112064924738306298131797244158076296979851957664559642771832957364857745650244020673119414837494276684599581402008174427460987258748040667668197662101234102621406442981068915883066309589204429599358163053858943233897634165157834301279195343156859282535663651951992067156123313239272161070898149778874104989793530621689601188463733816229377783053159772193617918645997745342128947098368746479283025177729945204279936473700951458455199456666009995327638841718909895249513572715413022242063777599588012128110507020231164111596644783636994908089080893813608621605160889835648098235879523144521197864617896419471139402462822841285386829119710421311863691519738494404029814931271138742938698683090745172475824137399423767209649514629148198729484861708430843264727323873215422809160986854812048661383615818737898165885508438204071314358987470665272113750529716715348693367068088711585285210870637766059065853797121267154022811443605472400250525468340297722978593688695821865040178210685672582808356290471844299277860033546052379930975604219911867701416980957210142658971780203041775675548188230424960075880522467963806030531874633385181257419500608268360034457820402800423684332673641227874689028473935231078062741886717389925897038500091608343655895640131468240972401486568146797421020414250293705637965309812528535917109718697441667297550791966523316984801262548131211721609786703058456256512069083684219919122288811685773040927900471269100898524139184347432724415337707121955257722858915291175279709397784995087314697791864591867401297756938953405520290175810013261289617120166933194256119855664757389066823873444030499729088827091414645833097466874140078630710732833568227023006001395434204519761426626995673405972743111807056556920471173269832913962797745030885784817069844370782453817227032080850464842261508451538885929122408269520197846413124173224135730871060314812809559787286152955190594180659233486525950752567778593073354606421294841060662974462556191355857709815162389833756498672157993807076012230357825365267358660438769295098752208801810074156135692575154030287913815872442061353340521229047000011814587358702293104374415156629310146376211795218401529031359390692742280059030800660082942773858396829008601358844584196487996584571759505749970962729401346613429534921278305943016328103526047065978254661860654498986059319070319128578252643916989732437938271561857622911144022395256051543321723072766876475436142612417757539692394947255251071538852700704674521316818568914720185790554735899300142339597870107477247818429212177151494814963122105913184809257402684850177405375649111130232702583228787129312253368695901841418969740378293055899680779723201633687965309075731083712438149009040911583857198581698938425791779769174724255164882199839567487200244599260930622328930093815740948998408111012237363388512126182062447234468293452796638884601403506882617493630904901961150900366163741705158182578849080676073123147733711899360921019548441103116367127472558947818131773620539152447212492354316168091869173558766382540438967197419545323537979992779686636300348957665041524455675163926669837297704491706126870130176399096462740666107901552644678040829080597189922485143004826992352525875854204558579082175443968014190972643998019172580867009974459751379451384067178464085813447465764199876908881777403071230749720085112890135767354487366766907513570329461381519084494878816737662478972451732456499267172675541144292357751880944450663570338779107374871010479127955652174382767060123855585844669697062391284962796478572930539920927601928125167629882992005916270292396276274390806840044000566406333425558853389780578509341570111552653291478832712824941352540783824695903231907192517161982538636775423638519098329955743856185540594521358584373310382203624972065164435383938772598783500845445789077636559695908799793156367735851270768746839295829069332136139491204592458452065249717174905534017018655836629825095300628870925948054469074765170162745692728568919778699132017034004964822604565576344658713902831997608828668801195738129275148200280564163177670197468869867539304063156410021141996370207489105569968741377480478890303114728658572036159804411913629597340421653565099440489684460296570892854243262266017897049910178364845541629337352191817005212114754857470518327088717066420039292747707315432957646918320050868276409820520937370917910368403331197510490511094597222365032659026691180022543717702231681601379540452593653912304979823720591572532448536681906080392530925277558174389069435594541164109416959184351414701803298442865027244151944342933062723327597396954047448513334654034508112864439699365644046455878878664323841684175990079591255096316317833466754362398039312690518587751086594990370367723016792119838905907144065481924541038518000164566737846979437034743313585100426673675376310488747627868532166117466778371005609621842199899921223578445449436884213612535450723132390702661482427589471762336521086229770269371790416136866545376845170373944731502836200125332884389136320369062372488396153444131439154148706015342285988169469949664830464045237234631228538805187251253084931264789881966745224253996945099077698425463417963014042609480085043828018671375826735249819058638170737748750726037927548188744227776857784452127505146218920858744036938850906603349028135427628552901108175927198392196238361549416469145840272795673762031367694809713862037967227409311644814840827644668610480834956486184887581864533391530377681081384757389910225000734540840818227218239930303780571390207839737114944566763318476499533139289890463393039468010153250708899175926560565275928730137084452483999131022153526529593194558768601715730967074296470010301571381088049726845775286038370438701450265893804994031631557658680302594966132772330396487012486993275016618226113248900713189145588531449765361102082914280698764458183359194502634476324872666676134216511993103353592949243623931912944624481981244079037614506879917159527074504667867186848743037583085900135609747286017141021640953787825092808258010890894506656797467575534397076288662923268143614750618785203846509776151938518220828325816289914876234664305394462526402687236397546223694740554925692974073012918898004423103483111773177406851470715510801044972899060541607107832237228724754632278042510910604949062052841292716875769599201016406918581828881835290773728129160574004542837589251279544228106253894573591682831828485923436415649157697228443376896363016282359450770629538454007174338801672118024363142953735658357108341599209323407380336626464137202903373889111146502922403661577556108900804535750081507554714786546594028605402728293056773239365895828065636081445420297892893477705469843011304774392860355295614774500825929787948098951558894817621360055139859638407852723269229036018357291157541067034775174923954312549683788964135120891591794291060157057041750001929266252041575998759476822119563185573827335090744965151982511508998747100542820306729881774843365676089888078287685490009312660496924166940175088256880504827112663014021174438924013019992974769810890808615968473725311253906732433664166036422064177187816444541451607200197236644499425373755814129337375982950623133466071135730617639887244051458612209611463174360543696173149459829718043776325363379931577832239061588560195277704192185618373135860169037163878797564085982916034170302780528037493355606541390055576136593832576775054768493491652463826686735985277474768193657682114714124003247682793527906996052845444179991164669391894161388507541924576422900503117801493591862334877362174708165324009665108923838571798060353163299528750011424343664841947447897914263100530870440100061240456055162281432938200281761086723690765961846188774724051747868315628414734084759389936125728215065191209246813825367388244649234979630645860391389115821141826000629668580093629612864713536125169026032976402365759945193995045658554515749326945233367737442225142969404347338971174093751627687827318707809447165833786466151964528382462960550531694985220752532511526769975881959359855604239308472241830521257760406428072730356664199996128226189889332301246435726924860341990516840202019328193533988634050705664655504082850453015673359304795100232695348473840109046756167052812125273228295194997711259246936642648257960693476790293513401636568589222178525636411099157551689830325425004674213755559679194203922525376136502978936139368732858697148830661031472820644832894536466690268425735430683796098378577916414106838632652260863624901960624804571896458543369993659346236633222504534972385521051664126977920418730403321298110773683417079522635998181023097662407976422265817981741645428949644362227896534620160344192483192942742211584688504518709037130938827935532106592279784670696374746098780426847837483997318582760090654279263662948419860235059996459749223999380664738082140497718745522765989544361291962788367446548669036620763769431976105406236620658526443226988280603072558452664467653749666347181040027897832364145163429503768954507966614620458893449252668067781149335889610492052440277973746921611751519655244988005301260489451467751420762538396663975818613400614393896323569330873534003892924646475846871396311135267411447661699803141354130693408479846812796681270606821081383521917954679133912788066538709568887760024239815341186748906310387511923164423796599814381630127189808657812605969342098379368224327926532946487274558565371924728575411644818146811744563954100001247594103445674552697469240487215174770182938222269580140163389529547379666511180511453387902150816723186931216960165517177376439663062406469098776111103810784300608802297389464888371062097106455285921834065513095603624264428758051621097927605875003688270619660545426151088423616156006292851941756850400016952458088564370117703556118558441917132359533214067943843906895973807503333739958203018774021293773674243451467726043123447683565560932332113777053725996609271360773285972196478914981427597807499535455314927925470953849392107766600800030900504399264141554734196420614070039210898511153664030173338672038734670725041503279029159829132846824908589218476377839376590760855449989263788046715310089580687488434108657921437209423080302775604486535716771459997220783098288497290771200542426923695723062076625053587929644440929964676698597221866115055724152620402576808020024621567701184280267118470203059144468458650839331408935268700488406809015616567235601014052247881802923123932885732387953749346080576109056107615101282388646068799560159242677892380224579897673832242788999487822961023265287128736648278897813758078805934733091909522132659819537018476487564557308912139327292072178091256485985075561043240593498489795636979432536158970194648631930745136403102767110233753721556486537015811529214017065313054217732821556774830690002493126054582690666808571179686141061525686041547851778461558608433520612517057891831295840977172307163513723455115182546863147554397619514007898045366430338540967063621123596485500490644347917795045551259081916399397472963036866785205165198910374110537771023738510266550386037499436299596788127810864350799547354240710547006744427140151409703042556869327883671836956503989996183207314033733950586265244022259933492011690710489399919775811864725559710636615002820816699281690864483130930611799162752362047290740220278512469018859853213236250381723260180204693574394500839693776281095717785244344532948712545914104171133135784824133517428541007410974871718203980468971920300807957316500565516646406870867225664398023914076102304788572905915281326359883621238499691198178615852901007546933744536098219255887413453941536155005312984673071989284200192960542742802022217104985572737886591469394408211595821488228448859725291349023572749261783136220852877649627323328542522865211981503344561791120674294650612972934235666194264113254983661030254882794983689355606961042717276332994557174198591264093433477163732490212389439404192002478298411252259884342879238758980082746416331424037683289302877543259939105824768299476090172020470295511220670431063618547019149788786632761196178905115472239175971635553272379650151622852525326588794640037410628907732479720635296677085428123948615151953885068655295202263231588289744525754436418067874823340201610192337109830370509981853267961127427212752244946940688221922465397831843398690997784729583029750995064752782387866365705324961532945942705604654337999055743249860968797039403163419148701840617330646924156553382153234006403733379785355723499280714843452336446754122694782769608441407155598706797792870500182141131877696196554714774110159777537031333347422535534727652040885336907339563287209426429126048122494624796252126073252616102885879850391671054944523485016286006043247400930241111474236898678590833038027496553878740598501182701523573491946720113907282518737960524624961549134547957266295126525156435102484520938902160379701645847488859375739126281783574105137109658418025790517677389266368509305486511257539419934068484858608606510657565425437034352367398195133422861497784311858186687069707681089695987524838404973477707463526167390883512931319403246056974242077854738568055406621814777163703392843099941288702033475899691147486044790395178962667368263715515107591923179993286059156755708796761351191748002099122115248865978431951627128400776476359896283712787099742704514036844987104975467254948576188829201984434197921314930755936391274206023537090759257933623599530602775193382981351907066564679821560189940393957837378179601249635420159384269037447389977677888181982084187317417231532817300594890322335554145365653356559415699489983596954618116755083666748601801147921668246395200232254310714948920779660581855159748132100166689572496663988209109382088514800358635510953913542936935331355239052277859174637689027276896220935206716925351916412386443176631281428833067071163849721505358282437328501649149460983293845774014345414968623694131972958522197257891642308498380265340116242163333754516528125498935302142877408027150413394984098978393931411788334625089971015670614801119157283391901436821480951109558639996551614255743759301697048314058320873540280060020953756961839166116804142710482712778342803285233761587057495177353633259069615265127367317738062040235616300955799465674885983427587982745319955194858256340308842282570113175759093482787032368148790200992540023796729091472717981201185797431536101673481980829215174348076532934244568867047416522294370385556489903680098428495246959392912553486529234167351477091746535568738075953072691048053788260842322000242063562935060336554481926832814650183063727936989707863324852667996666533974086555304032433812004274655267855179623843139154879990535740109962680798504389114481678216976204818404135933447243975006018037074499321999685609990891821755234722370127764967065053001238647581708373279859688174317681736753606344897555352964975310527362668150803338636291560729704156083458511007903854205331125510898125222262250537011427818758598272525305420106419842104370131797827263470143620289932501345417350893161863158251395700061349155382887055686736454369095382085382890819322935761098406739628605283031807276932899221909954855681807689500935265646979949860732739579200336053953246036604759750569743591278550048163472500093264243444592963794595530780228150482148209136302548126243584986279113073897998448092713233011837043075274323430909054955633284118895378355806180775520386791436213616397815800456147420258380292037022762977907379650952053885056641467989872659819403045290078459215628278181954000570024388992104723433413667759341961315210367276794806281120545379803985382566060922755888444602758279739332688364679446452685780817686020836327106314691187263588579658795764639502447266172634069944089000768387150671554873863158229902053665696626461962216252932464926226073133322563721683598156358512083017101474150087224885574852418656252834305279973057223867210107891997464898381945700112599912793929580030632690152675161744738946640992445314438141874664268317545152923632430197992016398611478079137055828435483079338936390094094848727908001086765760332845351971290088665194453736450580805159393667237680605943387545871358978742098071917521026496479422597086254003969229544855124292634807027837618404046308401984621051484157469854758378475930514990427647051330174528995121300654269190007673286317767895843589154998377212682800438634983485880892742319950245365547269929063236932391919391622721650375401713890438556881583576001343744262164360957081356854941850028570867280217969737415505176276374431511030508396730263545581800085139334515932241724002486650328525929646082092188849787084420566606706379291713525616688759474595999663782699662178528747044168823789828986062705705334306063376857847714498847644423153923854308027015004886386677192272143039997264580885563292380703636376526623264967631451591216377173910543032632072977006152584388253912087863923007127869198557998757493240619790056927198668302998318519273218590747061756437907839026551042472560225635612406392759025319205253779993328970720795936644030408599732035900068579662928405040487487211987713341732618531133399113818832501140890504232978749090988066747864782612304857990119149117083917400541901190653281208490007235517827911803785084605178178668721037882281575572805633011385295311249928389905298456915546306608202015281079538612233477414964819886988681038314660986064384705438035462722852003245441085190323787261862866659722199026848874282830856543350474301228816024179318211505797192524342416408189076011711879048584682395766229522311366193565508355942758899165272749501448186520980589559968038637453025652431894630683770392565152469829355340896433153382818159299056111201901079831543605745352586398336933426507810439147412687841842081425436477439112319360600288529400346207621995596850322846696327531572684424210813862954603629726294642430568655750235328238840604447096327440017130911774052253517994738710253743219459416060029272303706612282732428829245875512695270725329149602538159356336355079447975795225614836725726062850333616330417684364968446250075267391328507988739651424980347629182073618778127957863775854642683521253522234705664519875745691660363789676318951077943369313470189953303366924398199350365761816010110429632731549716109552849895818543104441193630013998583306383348225331510876865623290188950077314983890059936194217953493296463314948915202317120409072760119936029270814086355327658574932153454260958179900316346555623976345675711049145898193791441036659349392639506525422804114387974741417317218984675753883852627521748242722178189312218119429027594881628348856841882769992868181772488015851491981871513480877111922784727986517554888686258284028057683953002136703621021314089981405874935412741028224679876009459425846279349289375344446934207538865263038426544416395845823147191968440807973947034249739019800293232462789214070600621415908458106517638404829552329293792487247261421121735172521445361906991815629352967626667834751259197628543848901709099384858774691501797913182204715635029492038692283801052554219010704972106235208356810861224374983649292536982242488191142414276438374857499118612226519425462677484610734227827775597339443476695238443672775352043412899864621149780223565553974471866468724876352466131741219435411707234051974223240717265238533585098113136865970144744668454231040649231438293984002885011557280165681969417949358275716404074045636214941980022912144717684677684508130163842355721495574324211886724892024558611493397275282109421874174786843973880224310900915836449677837102015801663052546692271533891760848907417251129084011786131280294710698440584326438057647708171151754273780677786530289895675497273532260294636616192728377400805561518855797970860588226481031872865594416186232414729577341580559028178247985077147067603237286623285456483947996142914934813554481060503218790306505601612006095583128491340345975422807966808322963560752320643924003453039097661456890294661113161356485412177858008611744592944234000596224570782095072875927315254273333186260564677765256786023548910161501943187276382992200669928357736125989624796705344184765930290889026967058227408109371017976578008678170379274379350139364799813364898006525272259697719104563096464203193948296734882509555768052697823556067793430814088578511030940868549642870060243425392334461952349543877631139358630062263071145220948379134424195724727530794180863246488473504170091500349563794707000084392501025494414550334280024060147274695735594480283808654537771649412326347546011891560911334001534891318931259519207676154214017558008564341789670252799154350106156145438481064727652825824223158994874564745289391388234502281739354261613782119581754305185842023593428367434083336722927582127245398263963285238851895944048092940698960653140412710414463737499339026496784924554494928026777629959667063290037944905355088339874822532458277233560728080644177573246802812091216528058174826767275064681716474685514968172317267984420949140452930146730911472821129536385347145487250482049224667663287886890627403406259455945791038326275125933037806642481756445777554282034992802496046954506749741578010771022426453533216087925745731613977658988630881341642779939312488080989433714493979680564036998430085010500610032132293603297266551722193228806587519995190971141901130489381857228218206890254765969436658517887360717659321267936567968711918657018101314316861412313720041533437839856557196322064364741025754540219131774378167969540297138181782778188758799705569110550463138677936200736272090452742040971252586423580145800310461529202215871939792094420979773177958934969167841041221973112836413777496805342990399206518552077606898503024188752593617522504293914033060812558051396387196068448145566606171843138873891871011866451333902569849918061565263378185317170842683729111760666843191385140175153985332839268297194028057528421218256053215785055184137069445313256238929781478598241356277963078340752005963636251750058493468530213682605571344087778362603894672450007268044191761500610395603235491744376297829376747694572673415286496879410246830438272114877623321576894459864093400067816327507611759713081114477268492579076914598352834944060002720983845393887799503021960164023826877072642650194277464004844791604145373460221842266509169590716575065442058543860886366221901135402329904214299275660750594077243032999925030262079680679411115658779794839774943930757219991604154778521914963866658148168637007494655144966211366988224386344876181955601469811745207215227582568483148875974130799302268922505829930504866439236577477502904972621025209658327490004555314690885087885249834296442541285592739060187357395455062640542798617925422040207222309598746352045663641682265389644724812905732887960184920401888962049179748854161909308745476804686862347353603978989687995884335200797764315716559497517470614522211346037075957362524142879846434045196930466529409944248525457798810225091406285249076930671327764414568335959349750808893078656783672761649396266798189409768563904014761702372558955401562174089548036234797016026916110095877330932437995787222628003776200300360297837641469126746607933722560559636012456294392796950311667323778410693276255717717056212797181776635157311126236853665384768099166058602062988291830761633485197741184822322369454109077215509502566641919890748604460213737641404831045450861207325206165845414237391420699575041639801199662424698966004492715645978090123494965159778483717707192365706138307493299194747275448931889498840848087935978009917392938381122557475397097042847561633023915047827415076946326748923941871649343977950949456089873333429556781261940480860435670995859285715868648065464937454124215674124674038923688747153883232661421890379343043525380496697462453963414180033781767564461381784307002304775468242296140107430172789810081542791204345540002493300086714806851383592799396040123452841674669621509670428936322147165258109049806011615315704122086651493456242587207498982694753116230957978841367395877799909617925139982397142913091355910833780621781213549392759655036963914882655681642502531385915993766215221195622472985483846308485941726806019583622965195936834328321377127332788697984262246142381567714055333175478194800106838184363366961364999955453439928621845513101991147556951902921161396215019061812849243393905548131394826495350900732347862221061700217962741667195926604100295895485235497950308796083144001583588964053155239812253859036141950877601228038160132930878930688808869680895854915861389038022378928028752262536061756831406827700935168030153381685637792646670940056873907587145095982312120649518747187949674358440078797082746373650911321591974146288917738344286858568677634686204194831970968035256765313047140432351038136609819409155222079872849285308816331220530437726740079945499894447853016004564777413893613606706935759340853499493678903472418983116640718320786162400006796742282315788057904616002771631493827254737426509591629066286221374713232923406960841929152408905931997526614888792992410995743202241118072758879310594127971789756895068575394515010811301496502676253826199876761134139097025851191351131407315258653544839014224670876172237764432681546410098194231801537704967217037181565984440542425646895659706380434303689962534427914967962404631514405278316477951458003684527233069758363984113015302830580219228820120920020637804616987972483617208146396592473782217769569172115867334930997737802263781582634224205756044655664622071561315227246339637067074337883781429864465002755517550297931354212609600364532035639788020685914986155235269649447080441544729272097541771682678651401287648030331679983003142687619869942254907775183949410361752671422629659548899414679627518474000845595687003997880830320678821444255181469626222111388272518678239078461401748630950158177744332887202894060358845451385346377817733081972589584301179252755275257233221545471030378731879046721458035853844337641344997218636896704889916757279453030962615096736076113243026716377388022523565273211225918482049304492508965879570812571795969257212271401258636523076297199064546913289478204657658217182418392288452903542680220928142172661290326755799689903055365255288374212828965953355826630078628665743792568068114444253552580818671188968623162152807997652327283510128695214049222103016405277794669822521450063522901223640991452777613585080024467368532035596514449078803582779284584211811625578068969628931508513771179457458876756826863089458876350709061189912853712395442781967320451475468414212748163712000872677945678829451815978824582531683195852756565074925567707270399934819941654496239067943161211653147200694785116313967245377745610547122931024834791820371122517204642747568944903160250863635464391941542788070379409166629524611884577092045637901141068783254962590369868340525969219888948529518364237744694470000527867459236322541500175044825326284924528881117889126829818913968963649898202850735033992457080975171461226733322933518235369808254979880812504378741673998615943690720190181303032733002388174837370301497578099296353727593783947368970664384577580318596800635319869284218037501792875792135034325940071023139603264823340168108117151859063822037461106720967516626884439820246698173185554864908298758321198835801563568444269788138307998049790711487590336981555407480848471218773701906536678560509713610321211782703320686620412106956575170884590999731108145675892152214872969833514469512085841730299078912411914656827872663598304630240960529063133019232437606735920883992789719625734350720577020382842045281620624619506944197859812381658620131842946331071547009827194116824287979403706503385270367563808635486210608355102769653560801283625601286667565638113130372983082035670835716684652883381718846328552194536995609732923535813851903779403407932672126734314058115452355278214830231672189572145169127050583445909643148860155229789691535627854965954482999764447781725157519680109743676117629790077980204449434112488544062108043681733449390078312640069174692204721558694725585626528014952402732091839379567841614038578543819257255561820095043846362189531204883395247906307101339647400421643043596192998891033527169946102734691488331939946435837303598220048722977587898191716917644393408081015992327947318359165834019568182704310527596156822455310670917370851903322295901550695555557375418404650268768957285253140018960818202165900510797818519085661484608414320084178377320551097318066033280556270110943525417199679572826911657535763211032521416775979870656292585225748290477938118910196925973234572953344371799081094514351658632476059704999370399045647612047640851718907490599975636990722174933965710536263528127223877133833014967993706609338516814024702817659689665046610989930618370071260920139642998480924745678591633549026531353806170474109989312246810934913955402190824430962683493512284889743977818126911886176375859815940522769652221576128256159056507984517887486687555383391528573665821210404327822835383079616459503570138512764946218435695235275823580558687043661380650313576226832621100372020891964810929341008474600937229210918648901896035273475952558598977818060972635297648846395467429350133673843350249069145253992947323462243366709689812565162469591956934409204064287361218117587083520666837825378177501981741157167345214618461984464469044450148998310930239577667368578698352227034120764898982871338839954330039015962813708717238414419094521159498928198081335996561179903986601686100081839001727639836842374783045661501595119898130196461016299323257940218266483154555241102137132163069669839467736290253191121259793911097350367370865841276203638691168693601254873587178235994684615381531046811332509413691484922676044979722094699026409615571708301768323711528498767719203384727655215142805994946032434537001948025255209213094587713010247482446221252302680490428645584004249386423420110605895275116929855977844985236059246775584323734587442747251451992256468126162742142103307480190757063780201824307842099672474862264707737267850035127226046705284019765229426293219463537306813808636802393855964363073453720134601765743433507812419183810278661438275028776289018116175794038610914465018144733187414216570361458195752533914272656406910652232100602261914911996741898654188864342238726688360369074795619306830169971695723042674958228171165080352374105423705253224812312719100812251258998186845612446746250719302552184921252252484661579343239393072884264576212601491905395149220981211261851509432678149537452237673374809362349306137625238129590091959336219756515067544660924054326240444465608858138768309649151890041544053767156154892707378897378995309311665564011545713544125511338350964959773042295188778128707373616651078364036432877122121956631211047532445373088002652010103832582942483728664230492959289896646882164419069673673501678363227314767318275896936766309035013370478817178575730758590735644215219703839750214574623018990472555828417010625728149123547976638526217361548813149665686926466555097018158798870570864770091936306133280413276446330992947183511427466558494215163690465528884648683622500233093454007252711691590296630689709737134322202826484834584066657315339783541962529854638141418954736507707898441894669516928599675929384108879826305440670902613167840467798690084332338975125479878537456570279802454552726717825630957444447251682681880277616658115045056779832737566781469793011273838881094863966922585502884874990576426275402070633677398737446008563705810459286849728813947325429072654170362345521485920823541894072977762052738563559440293850689493014178796982429241915454273472486638909901377175772509615424546631282672677021856903924142269041040030071465521647446579558577300117638827903614627921772335322960445925838830708859082846122616239041315914726506791237706139460600510689501276631511594008535360679516894833452692134831479102541515306450975836296036911251020980012174955899251386216836170415108726410916866392875279993120333346307967402994606365479214171886187480276330039322049786800551801721579301123361970814575351501153279184265134464623543956398448655399824523989689189970890019392215348010344108538342845025705785342351011594132013180324209881488120254974484745667501386751822796152861015568348748734005488853298491620891609420076988149560972815265140285562252263071551885272347752141373157563135916453168559830527431970456424603165348690428145260162933852761007231107135802882134050529830589577550978817453488142223682781571167400697910464275579303755875007925111166464388490448471178367679830908204251274853139487350893673864342179647953525762256301369111822628803071200049724748954060251084895393959878684932147246589008692031181617760008101355502476990080775975451692052550121046350906916458504077080913120635876779991505190696032120736372546033741311638019056577441798679739924089909579884324934485025223368308461441012784409025589098532661811444545131996400228419944350964942428048242958296897144696217624042555009315937496942609684158146339921357893890906431384544741588721865966489435723131808492136122855250586133044427999661192172907998158074136895418677714939418454160359659532526548360006027407177698968027338441268735703838254720621326295142014970434444037631029756918244226726564970627368957048856818322961688097011726429121096417008036407088462798698031777071685159478228744840631132195559341109961783002889784406555551774929211286289851115196401006040531391064649167223226276864351628944707769010680254317190407800826350088804168893609916151706373306636624427941761882663129616970425171798649330922317530306634897851499116860561630780198093289144455192682162101022701302393608869287111748913163944867953170005604063391784641440341855555199287183581737019235067365306040661235051678080706646623353757492545036874667695987567227109822643773421810535702095548521165564563769244069307263635433500822014110503850519552846425310575824342375206710339251182707473833304005475632194078910380749990439634910392818919236413601829302318156211540599638434706301540517311588119959476018435769505900039903293487095099032547708780474352772078499027759481400199482279250538384468599939236987883632889927782044833921480497958770766156501346015166844919285375825502293698026927736978264273066003801371471942028050767961238960811085547821388159089896791632031174844553038450433811423662055191626265441438334067795262468374997266572531033792728677778656884592973680121734919398538030440675178247799248920807418054629536225910878082233019002321059638893511507323682993519759030676721470575942583764618656123681360559741344375681991668390530908404482527337983343475343030282606524437927658922635052020149260670591817401494420524737070501722755709392109426094038043211676243209756076894658884555468349802303115259671429217550325530975597404208139961115020873362011105922994156962119147212035525569729113041692925930220379706469672903291225452866255527094495785741825942989539239031192446440748940625486718535316620723617942796381405829873883287694507309980626469145165251234486939644140764650133241315454131961362855950960188830076193878489083488143096285741519193028327780933592503902688891935553483142130579289937093775066451316830403916330708263953166959232009018085670929100487035679347783901712223277882904545133285198892152807367188974811000065494501359760286273468491721908302611800579018312623216607183318274187686129687195280238191050137392448195975252777966898915621196074187147412003248234913078487866667396630870408601036627351512273810612463884741374071111223035853749698279606283238448883385000297310630182878673809491499169034646626721735967918540940648451825172153668458170749355099518121176832946167185084884692294445037387121284265131691791166398120443364522034475098584232609709851167809515630605983364125279399087971369353813388086847462362935416663251427267275055464842945899949901645618160611097694642208065682638137627587438131008782251261875461995031933618102833809183531635542433479353681648452025421827363096305416542436649998420571182023416280011381622346880564057721648586092239233254425807630612717191216896333136953691064150747743324484124306252555235384109537333171788445147533966232239147367997977908442608445767760688136613061809611196686858908511564386413717278747304825873892454370821382618424494971371988385644001097644893837485570323722071227575952480550462338793192658235671185210727479959439802042425795005585236363191217281569259807740466909467073178257108052325537045143666448598294745983973741164837480110433510484726310465806071255154413134427645808906545242259172288522570091295225147444361531717561077073736926608231880990812078368889995815240085636877543182572126473121783670439501882321467138569959065295446505988129702525137671140017517337702538244915806826141093974117001682631634114030984520735437458894355150196755360326864504308423619853968995393360599624256364411979826020488625224945516613271615213269428292033166131156075709837669240695491317372459601009445833306139719217893797922110056310068611117727575916509859958826267983766689335189947237087592922667785640960827518157285926185506798470703896656671650700351307803561661313414468941569760016829560959138381495854704895596474444919046022134336908343295747286689302303829088057694067220609839374409673924923830682880575442441580071601329353529853536792066908124582997973761459811649140037118659459210407993445995519173106129467685285811959431705487798761292474339199168568059214756687480547253993461194903217388444699533111771967839204350202351346741671027366699838649235646182475944656221104887084264446395070377732643368131209957607651717634500434590334825733667138642671778756316191604006254074466155907978155108944644930991597039915523998589477684350486333096879360012784012664422793882416122644178580611810041036971138469113010020912095663067445379824262909403579253056967115955611096816643691295802884237875695433549750814205158875323655220030359990470558450101752990253677711031708641881531622783409770847598956730448821337533242810223517255821738774992754772523791308714691735863183512250053581426315480706368000782382503269783822129253110098463804028309122414127108082988941318462566014558094411581456496761693778493807758516130502110173683933244680187650581199038146392057924898182947625264797756212124005383401207814334840733359778096880415007325666449485451723288303229271450198426787741018138992874854868115096735904684801697947666847244535525004175789074846266879281104577107797372303270632060790006218385943786604618065327055222322811794922244963928806852911345702543117908194297470624164277639333077918027130535669518689769571055145665813722555172270364677465446568570745600997162156005480502697264398215021524840883204512951943546059452889919618572137463424485530738521061830792152133822279520436160184022284012251858257343189617179413224064723950539164944004303952032691206205924647312460879150152422523662271216101657359887050917424288402236404705327422559417244874827169794914427654507357844424970498358396182656383308542496426247613685133827583915955566562400846554334878668263384970500007560793124697678417779760287564249217610608268208179756546733506728596893541289899601639574056591034795562685301552317589786508160881457126497010814202045410106237033496315296283896590062651472492858304258432703473407248106702300883406542215811677283806872324572509645978808440589703116482845255645333895401912044016211830726181936729865109674527980239586627342067074169141265526830844410316404726182387610292591618055428952620923974893576484104800345061980821342867462531959447286557416235310558262046561889557090125265439815653139824124606597615346386510711290560374686406393425256588704650040595020494327607182603891720691189062755980531055650806063612001953890679612132325132678483956041645008444257537814886805729017914629585450392688986898527520875116830293258334320090744466240990064683822735503904059715325876411993457402474841567061754915887277989064585726794392412576948581856104053316912489657776982599910651847875722491322154059334327140414194308843150336326378281910116827156069934978359176704637511400479303550176336539184932521576234237447168819797352578834585024907724795534429572757655635661835933629649697709971086453681780767285223059677845499641136071198884509575964831135852212495130447447868300622072565450153464666119392299613788750321371977831448180081120119726684496281578937585927883852385401324896367132856146121435674620338567108090034575691215335926382047550655055194200103546963208360568795344756198575699399139217623904893233514721725158364620829425894830718586470931279135306556893491545064238435310820367898030306283696055815380876684171303191274399432265902728366354746890718371664137613313851738123128175748906160617102356960069239445572791229421718693145407302635684382564554328571718275015101177273915467511990996551404649634564990369323227679649511334136389808751686009024591620259646678451642397175928813510161744203729607673370280368850844261913685979410579045869070017620636850566737325421035810779806866571049205039131460953098391175092407227222851073799998256632620348616753390990283075184861333617409414123206259537204309054480468340379434896219686021274051770088102274838861810475356743641076409050418465309559059188759060370654719434483204717610108728544354871257542787152866769098687912027892851854065259568982481041054050454163585761933257910696301428388713878989497370818062034351710265517961080678074038113727730079353092168450033015934718524602793991424673456703814779363025925014237007339223141880216813552159113302321865768339191653357996359816037206211054102182079905366321544314536773589395658934933637338130857883237948498592376956573332834984854596128368799108068232775102166751639814500029147379641294943419869229664045332883626511164150342427931638101088248514336899322931649402870088068220697187648516975802598936976739148629478133902255657279011388121172894904483168116169384820744772929042284660986136390691289471662197950149232197764693933136362645519041788189715707804098003708241248726363898038050273496435413352040132874454607957825072647924721404304121639184324865579329886340258859867223229552077037025853156046635816403777286849169200921202242312918934435809050075836251605619086120133915685500322551707394867207758250284780234600531098214392965213824836112848182405510196879623949891841667497237963690017906264247890873344188793135381336873037601112829378898710224750325130695922618727891291403323099750377288736542261438009891643264432915858368922234528136805944659774474062756362924018847746297811819734636661228212166816642912913788033250732872348031703245445262735269711971333311884224112206013659131939851013570804558312255150716023720378012057578759893492397897234027322736247604473947368480122522258316829940567388074180591303063071502803883042317573891875321031193452314678436173105777743937420163490014470828762683285901540179304255120058651158286383504447442624987324614284107932314742115737477609221594093841352834115744692056104669420352397609942702598740037205651723598471872579504764463154332453943888412141570947223894365915858479432647164010298005049109033258948072188871018141909063626709556216718258878744587505117254196548149414741470826804178496668682871704299377954725898993784056558508735659769847151814174076410899460599656790139925863218031019884105408593111545971267773607340377431904898931574075630737892880578145658759203321345848375155527938100398045956168360249558275428132907998293078115815862372808871137523115399280961320601750615392888367129195432621655247721207343522957780690711819625115119255376191449945594390198544804637682791192999173090016633832273082127510150269772053916362703581200583314238853753531584279968162769211506373645915366998073270166894784005128891838298966400042673917394746517506160824912120228079027577003264063164321276179719081697092891948635137678989829573750392137512667797895142428469095227771111732149041619568464196633099198723332022460425404944124729582687618861032382239981038769223669417365114238333191792791078719533296558426576340417823912026800486252116279494305473799265501818849513476661680954037158126523226795632697969034613422914713708232539998808678179467415117292781638196959367801422477357860000036165339612784575449874267291874945883108191014216492325292005716202337088961042320023493330249029613307725753195190823196197201410132717346041922849352814877932926310593846021365448361147857908914580292229296522591102367264218009301446438752537665300253503412634091013002672114853217806252113110942587009358936535953098205853745292449412844589441606631964298579328636137085708408792322063687187555022210525280310223253362123047037955574895264610524912382505068076704199322498428067098321957731781943386094950448319210566275303817336524877405011175258085309240963649749533138508607408288654652209200417113770216084857749857362302492284556040262882538265999113194182581029751461649040550361281613126010741666007293157516047022303458849631257146344755370535561369622674318401753067725134374225670506401395707213333517170868423765709899132216241561149855938263194942701208034444372600192551325010908466694585324619013959154729139752521747534671257082940728192263008175797040460408434589836633550987168877412629205094415921371741435472144206533786317367962912968911312475521757695207424881930076263048852062580911122350553673448703383010698916126304067397327676460332088361145716667903467398851637893426119082030359068558266136154355982917473005851587147755024599830618277226548419204830499151499153934670535101859593231648534148894785841806610922378532400353604423970206821871185411876649389967383105179494269335782267923367269320546132627668321687863078899775886797848496653689921320071391862847290397848738471445487682346885909808151549948094512082157316967822348377787904683425355186516133051200430979711286865808873544408881344561061153392395606231747510288014161357722346313918634539230290137720522123529628974975521357656899540117087067626305790183053439263096739857445513634354327259508229451841714207121931239516183988671304671356793002093557209995194460294677169692925861673925491151825924367987879942617005722018625110795111205569713436045130515965058311879272756499065438478236733695754048133267066129224338904445866931411722199460192871546671028759425290451410560896914667755500352622192229481898315845290948652164794532329195105855330516689236497706871788871873248638074576722119818349503327260192817353208151226782297965093124410633332793428173639468221417681457704630928838950576185571584357402340396649628386535642399667728244772060503513533111421629486875116954397207125425593664847801195119975820051478168852729112569509869001169002025765589792260924999112975714370651354064877377520864686414559251334611805003123005273203105488757428348171633447873221364471746554160774003648946094576314030867804624311116142822747686828087830458821786800454660848161125312146959951084740071138202524375635129090661416374235115178842892224878290137238186779537496473365751330037872426235574141576109875437471886504384775720188320975854639951276064167933210597623141147595152611017318602611056128294201434132199521663302062136730638817231213471868718267064501098027635996447364392849476587660233969404809109326526473398488598834389439625920862917255793446882741903581537943908273924210811957378085645013493777333203215129733956391388287441769103140364564782610573596580643798033633633570047635093181175609266808672681405351881454429174097532575488832210447635336716050349182329428009034211530207946986299592336246231698795417277143313597862028102761923340259121692145647638925700138928158480341585165395360837720368746673787485570119062248236140315044983273304982857545434298695630621511018261060850774145080398230979562521200019705972869620596212323111122058576719748675571354507300396807844878385290221350222700307910923063332524671196548401260592613837838125985512298495733277806958270195139803170061644408883072292332379454274984182433497210336508698751500663673204898906034840572901853869519218365754243366822795020205907891582414101483438360611337810864180239554754752097870417975448121629764113695288291796625746816804769080977870060501727662653845004297809340968997297462952325464096772722285275245392390000984338573176490093580847203779959097032279236465053698248166673465148616031007726748789498066177618365794058340859873390769092351185857281329575782047006508691991350975268136224178931086448533277583562616500432819839283421187880714294763216102377167653571962088926231779434918111975828882958062896818888107102857060905381279497080587146779405522760775440771720696891975322133991156554112586721793119480080462278128672905068760911040972861746004559770025473014355399062649302750989373570536401111059757083219213804859378109748203838831068963607123483761624859553113384599855309231462826794615199584792744113580840400698371513381716957483741982027327151116595701113946278624853460045714241629080463005912588468603422390998475967465248386676690497310051853700077555636476830363744584455708516681167496744465205580767413811929393789097089701196242606682546341263344696271909461346592092782466922911533131429069877234482342667893796909435044682007680042161795405906708571977586753961685547753756993846006861337047939771698002600482906699005007340663088114744727739098481877071595333790950191891419953141752353967250147402609150100737932132136280406329396553704547917903372684368767437948537651327185526369536316606527375212284247285256138565500799389824000643090248147346410047003346820415076768287679595001263522063092668276698507319138696190739301171716899976843937757066346864014676481806457852428036286270209912145494615590761446261105718102620540593622905148152269976492772043642034113517085000158353098998610226058959692632329042702668743003487295284322053226692567640268723488192976391593989782614693484384835938924966636228327183264499401471098087787167201349404615320530269418418253128232908655377264830140655904304302206559783213092412553946243215957793655902523127348915617579219796559743546631557708128445907886746383027936550026600137129790069210069949063563505719319974664926093126668802432029890356644740270418054903455319599260391013443688766744295533057489572265678157510071278678278885588454082622094481897212658933571510080298417916183589165341377578849279893944416375170494343080974946203941388823848061195075784874358596214860642959024446107034658367751138719558309301527300045098588153511428840288100921296523775545940106923972516701005942683497066945645193984857861194962188806780286143366379725941685456371130590977675762176595000928300122624776456547854352347653221288106679391681900292035161325780890485360875009341922260977726483104055145975198567278697968702259574763097998732721270340103867345558054320235822875014040368109398507082667737309089641666263937024151749171802445428125186190184092043871221459123274693520234473982942337977553822639621994040134325006944991485630059775132882888675667173074579416318818461630904805617595417224020044229448472733253961408666091656121442363923891667871569353990453538500632877322146416387066555893886747009384074954973273756079147485565119850139224146405034871173981176786209990600475338417567516694448753724113215490451620315372638886097494337508891611088970356024709001151991066414761609498785763385627252860058855353438880528522766678805654910579431942614547453430699791475728793606704810031479388848649366884949489400095938795202493168273260541978191455913624193755157284815065706272767307551852785818079889217671578445695050212925705695997381261000429171830442706230095610164548288912675946338065764973213463537724604022036573401311414777494764767895594304858563387175947346678177345168662105496243457570640702840974784531174926109775354540216772813497420817993206767532929550866601132567270168889176178528026329812575232496375949385709359219564520214376263523259749631818139730528986367357732792211084862728306211353125378357784142560743960419937240649555220148026574768238743624722993164930754458043656614870478492942777702854905745430383623967769293638970936366349531728256656860189732569324112620822809656110137125965874848993180278148683092756485916935247598601039250211241848854277429996583501160777741795129725783337146396030829944950911768011112795926115638037515538123059777660491851219783466860687005936284411751307240309035653139897708143488094433396369386391508021275327941552289219652653353955951063272650087097681003762132081813280402814310475968982505160969176537703493090808504444370028323482974546087585261293401805989888799916839758793942163010679931597235871900566822287826532843105534968787273152214990805194704320300415490222436205699332040214678210326758638512754742768718545177845634220157262502272026268804374212185360542316500946848109931781964905322123719919901057049143906088329875883764663894020268340544587688091468064742425472700198224935203119314151571513995631877266323955348352874498694852268673214348651764746281180541141877049336969384125592814621789455279332961801398481195655172434958299584203912600298814835166872810625545304337490844046362905590340546675634548731691824885424164465206708404515070110150117930151375954345049879233783725684951158160004655082797753225780410334396307566519034938462495472110917226909894374105490062624773989520116759798911079045473802868136198371251823976877576676899037329653316943151529855852345268397380470645433240647425801518321902355616813126446390058966605563083593508066858490398022136913780101193290395881616692731013602361700172762598138737564391755822961455316274945058578036253755612681808835456900449851029919501495197181099042321625095855997269775807013170954826602812729893379995280816745007810670654817795339635488987225111322728923076511876659901105629457026780664456784826004590692855257784854004702848168268053821745928929350069741472909347307798462516882540626118478529976819055560120742556936878839643041395482319235389942248345533411093044764327185839300351491085907936827518174764993767860474132912290664112480522339074989339627414694925893724349693671972461544127884972884835273285075779604295715919322023466564736899808849915215461215623574076268694073674347852399397199416917433162525738027876957620503280438815114812264061890973626396087238772513507899408731655400108988329372881944686448065519492029547726939074924593387364828691791288721476323737133539869392434351933356517064419249688938153744892290764606458243697097010005780905808051912835484052946467360292789496052401347100588387153897156588824934810706013824679292947632687069872732586687136538189448364947663630609590733408454804892417676698405537742427694169522989705771359486154433148580672029155780316374639467742397746689086529395153345334449455341664481574277034674789276918667330088305081180084241459234914710042082440192850318358972954742554955025109882028664050417562484119860353365369954156951664390868057944458552435926408117325275423944222051336524048610044871097633005613473660124363530312965187609266483615471787743741082498660999595203739458166841269237336773995866759903504550065892992285546240054512479908782290722932774286732787196160562831559722749870815783116988865195178951427562339069263595482207848557803775621107415750233384405801063550333792008731408290015371410469743584430015596197743228311961542629485693464207220256780422882733263113211946424064140660626410542677739405747867168815712977608703206616278542302064191111293590898478462082018718554826740481373475134030820387106488232624847513961489501890655971899641020907190083736116806500962504987622686256298507748201739388552676209944013407042022178810718890847241350546295302060196896421570988696420772576935897847664713504848486886348628461241427798688008649211151279652624247303506933774923833225173616275925871309732632135904155339061452025535261706947749056772097987687341878297635404781010919555985570623912119755668093502746604420636430894304899659815276415027065170769373512470658235254640498949887206704461443560178906453283578912719366147667355316886256924735017054329085104345912614804744631955083920539445032175372608485387471067365086673769517418321989604514515807357824865792514106746069988205168143446523696551636950314489170340541506157896405116577232450154214399890021223173014723716326294076224071043059822398645983843948196355282510326452875215242849355582564873560664339299648434636402238185802748687172964684882092648432554328006574299897191832774140495703604220634717549329572617879795714995227583429370825652908912619173582814863105248431722890861532083023871002751532309519837089804983235371374891280178288079288698501904337575802256880964509965976690916254863462125050044018287340077371279269545694087694931154663223399573887498162812363733331999598345174798671590256390473350890925341153308958566271792860569113637020997236336111587686980611956128989243676402966756210767701550658652943715981252593401135631715850337683729991927943925104022927298755592649557222796636390080299362427906773399312174401019381394760893278103418239951587756613771017777139206905188464774041711921604271000219313016444637184860107025243880716710181608006998543525098598012902157039772559179573455161902050493364352279573000315610743863442184493288658984465838277233454203859270795231950075679296310466214047580207091746642183646398576278917660718750361839456753246832328831871809788434273585444180922042334967041378375666762013265179152602170845066938441750315763425588622614770535441897406599936176160543603434948157815872697933764881648866265861885693887897685906357315829861508278822494401654521629182945034836060523203819004184578373539751524347860919294207677632350625163289873457904798117404625317742038025550705409623490378127626252172114210457494840603469485722693225209951563308855169505394706784911687395222888385591079285420311335771882706534707551772404047571805327685633635789602108871674671541606661766587244323746566166717251210588306273254938360278666961963200090711613899923882895689589841092995072788691353575113455612605856052894067180458122394147167846630006449713942786078719574165483325076027305353265156861285889398691404406603860367672445689834487706544198033568812784581830626496334036182244126356855938621140158068821764507183023039284256282617841360236790453434032247346687830833396329435459847474867248070395240699886136885213291811168608418969341298969896751272343812207332769479013736944349529283934332074640341859542435347419927370940406120576405339457131595635801887592778188840895296713391076434659437486404006516697186234003300828082992251691739725943410134620549035443832347021520483298855156346674640992919038026275162689852142730616548628460407836243823911893729913776654930009288822895182038482358950498709035683434038812129733402685948342956457945893404868564510651397876842807407784343754127791879647728638838095537452272708762025962558850195437666541976113243582364682277391331634926718491934674774699832217093372284928195746463957114823432691179545637927665165853841295791349650297664069161231681491697001608982930379546661748996167841402116325050864263502299325295234236725513609155504396343837179673811201285746751698036059712834188720134575059419260576419158830549797287759070614417960928953466018016810700175434619446096087571371407660810427257235732781593409386642797459875107677525973267124681634348677510435114494486753107530731760472318395061667090706808917944535747189768146393397447004830669220326995752864578301471967605300803280037552860175523819163951945731259580270410828170005307488985445608669594306408047666567138203569173150632334513822315088199794984955662732491680406505332847064053978850628309948481641262850493153718768242695190310432744555430974523855035326954033566902531524809821647580738149135300931501290943617564421472913403018672766660996181542178290700739906677386089728303412022716721183406906789639537935779836878192272543821577092088535142183079614325138473004085594286393471420239196114408084267246079021848440567491435753499144111092771095043934673278979484864447881714620541628037730759850036564208195447564089101431903350443342793335442805362216853431726665889483830584756368071965002546850838487323808358192789015828126921472517677016878417669624283258386356739819566478689028953262666590678124195351255506452359541051957573880138803641525437293835152474413639989154084345190080813404733826185363987361545774118484975014715877054892559361085976809737027787421390586157758403373500909702540293056008845087901748201178174265203752286706542723515509942562478385559148006706113840518601589130660301263807899013731479112570932332219722598861864601847290411913417564327319860271751743689567224051094810183855530159458146623240863280498145027025422956490807905773043457820779528404602316999612674610567211595728552934978815734014938517557463137499692662590969328049190039292240750727913660277092854301015863341022080819681433801127298469213323321067265058302189608906653492720499545944366674685419369215685988032159180794746505017013480433896398991248098585620562107781912141053187887168065787652583295144279258849684275459485630359640053973678516394900708868153463260811432562502334377470118644214302905260613189068285597678141504492738516935707807357325949843785113441248383812387730060069646863805284446307324708297710097519923688593733972338414976542440680904780189154846474525991478678041065568904264260934656935884153831764404789911526930436329062718002008954027149474695955840837783081832118621724575913625344689211187816533219672187921739940236466019620906765267728053762734234422260994004333875252803039771800527774238021320893616476811949041315357877442435472115122366268026100747679321330649168684457289678261055435526840604504175532339740022885660167910060274023385015356997837709087719724817397749047927707500853512791544324930796534913054374121306395867435740588721918778847390028966984984937301613824709911698451387661660752630132000721913603213323557112664332067211457649194112040367743639541009062887487977533668411445411054908389045072807337324295633165205187443892763736317387886732312018043572741386500048274947758100850357828260582395784675248935062549020538957942173063913267227455740484610271707387683156730942618078017036222262259684013215270640363331812188900093139762047282566177791299342401632141658787910285771883661565899347199500755438166894339691593874289707649596127680258980681562175987381988331446398253194190341450923786100257055841151784859985717890512729239731229563955027376328026745302230974670135057129034140344370034619107511203682328850766846579070680173444503600761859424105732961418059634373623322650953987825560199507958212629778825766638380188996399173039725575644588417424492844842240587601257625156541437307145811571589381425361985569424912068231075202815611476828655772584138089741273387816999332127195141764378410426353312613858018281635217110375739568206258886439865310119498661151381595402555886113051929302200110118476571340273931837889618116390198897821687946222122506667488774344793166401447133008189717044972153110664834510069251297020887959170710592944318509632308081434579619956301593813195259574411639741737208940912061551085118176074595762062221918399337295073762596794319890973326368720416158669467724984408909347911422397556218333360933882973192694560544904512907843333912259888150764213357891786508405801626242367085483759849530107560860228640912082019033678375431124507647784309695224786743052380993006381185923417428858291933754078737605592764915055770179342008696000352192408174230710466512820197516101368022177161900530020843206452181400296945307499896128958747953014460330856177746158523313336332280758157446199138827234380776168920207750472180204441661335164107293031843627590045503830638471946823683569785349283690578493750481629464680848944769951162774495324032125884083800483637005957869968488035333216504665254973336030030937063576123524079272273352252801338884537107005391419173117200135440361928833335162648985536474144945728161007028718955090676969609744697799483413863619294521348842988140352230390203692484353357201948450672961517012400329354916295525173020940133929515281307397650991683430329115757009579023709223002591657849534820333639069471866482572644948443933399682272504557728157378801819339655782250649501785623256352331784958224919832342428193014659462042898593784454798341065817115608504195032836026469357449062627384494793411718981865056952408814467236200828436719043112398276575326356249904984179960656844215542977141525257529591913112959540773433622275824970202104181292378580580229984281055882716641927172244566116911186581983968322560483955238096553894033171093536398657295249504553266005668205502463819840256655076442200353861257264863485272612536943331406486173358576254109035212878868747365313010633747948220548343043987961412376450570365571281511703294541704921288718317177955692881655727499592481512697129872921155067334301058833470855302854920148255843221177042750909296515086953187546688151573238032193200026464543843484842472210958399735432991816350414935430509441847831069508864597061140612327870133616342410175797590629764440235041307806808453375309659014357791040488411296027570809143184071489490752934913293285490540143905030969106857152445572314037900821160381060472651693624753865248762985159149441988608015415949241093210116976421554940547932581218664047730927964780294940028906492307562265632819604013860483555702165711367578893069829507743570216514373396990517411187597366977687756638411193158200901600625777499895152384194069161402050181035057233367042740392388789039023011658456811282956651001432773301122483259375575164791816280398762969247225120051846686511601175415363703154590796508031062533136307911341800350313921196008448045251037540793480656091468415133727743801836280887904402798948518365749641908011854013965854557751096752018086557006091101837342861585493077603544317895189043982773581614332431555521240134542162217519853724737401653551821528040550774236311486132218316067903665064289225902863272294125271844141211668951938469175714097174761525562278724815592945557322219290259381526899068724132766819449416832525190913187639106395448281425238667490977983694647303146105168202588766365458378788268393715320747859842523542122185357677580798629024499854905958592928654347918184835782954150015581857342360114071995664153062739885616475862539362190495447568131391819035756569646616952889701189020180810462206252665583351973061933177017727222994423409147645181522590727128350383886976695457606378162727860599434743312757244854602654136567227666815823943604270999710728983854401596002173646148401797812635907792465574252849442831018565745476003797838904437014490613936273072891418405520082713032537413468411485353112292359605354580189917249190039903165454135994187218811553019446243312108710720916521241886160648747357901215072282292063459222753094712877431777632176243216330295093777499154760958199160125136539764223205332308754700935537802292848913560384129158134788474058242807858483288982106902257340155722928931736076108158452581472742287459149510286470624460050845167752235942604059414933709955157288774068972630808458297516591281998105355188912507501016868888733342425019494135393959788832380379788938847220441111611191841723455883514890311254302838339067089445864582590343098347562611559462504540766067339762673597340387911209173512057839018199788048594847390624751888423363384562527691819253618918541252458306723833327992602387121845019219738116215891122756682719330477667890535372449582160220296404145562447817524590356926175731811860123645533489647036626612741999464695815022454648200250359940539182849567107330782979344622044365012348516380961569429199394416298863448469670246847768825297724945837833209298433992170365629245035425606588713416819456853311608897734846229802801955248113463046803644137883350839941951371374163314002797713521060955806436030386019186156296322602527768656997651908596927340324835583755276725090457002056216294670160262456617872416013236632866867205540207932382474637771520227410281069537560535317259166503139295553599439346546075073090852100337839988741574241588371553273943587950490207347311738724675052501210452225174755186957798494074181470745616756916589897114494940477837348726587563969606471163842742427679837938460274609297238291149817088499146192104805840403373228442808303326471411583640792271485611996355930025880404014026791084011282124602301625360896155892449296806363255316554238026418868737844410035454408757271060919021616111614532912271832025416514504578289583898749580145522807768888577175518413825195811332554918762821147406378285850452744127006004879556512035873039328500221022174730602294856049213445845572424875843876907794809423766083236246736043457128377160607998116810849349334896459320347956250429718463579259625422315918921057613167698171399927537469097871752334098461645381171559830637895138553891515024752488559285822121049700203985532442976812365420767115869244297386229695653950664925517580152833811760616734736377050650605394137036831110005377669750985868321453542012391779206003524565614538652505652793088073601443891142407474422257410272589929964373768475626059891473468377623882502149253462335434290097646701332220417766666613714296608488784990977205699574855372741083407410549355942111447029582300890545698744905198940284721956602616154758521536581919272739171171363574432325560098137736311448514321328465933127718732136039807197607383652621570831443445642972658225398464854758304884620815840256641196657697869837364033362151839517707998663058480649527172587001184926302094389820572452936982495103626578241384513846844582071347377821490922757331924983632381670333683857313046569015815939423389188594860898740465248309192879275257426576800482290892249311369352509481119049090855606387046399241193023241601974074213466291418801056459477929249729896482538982495596409834139863738080433174914136410533642236189474203189547143403806761178266373965843524665139583843164162244992824821838168758987275530465837852523759718669595251699428297828287499707430583366078422871498772675704897055509848303422329101775264398457328172127011343592805747687929319595762999870194235269593159476903462827367270875062763591814268835554520252232674076734246257066362565811838048944620769126769702712452524395046294089786339144639213728703201885007558431797552518406350749468044896125488296948514820887675319162837646014191728796050855286452367900765877300963676827404367681413561907143619894434556653675947704902401215153355181860080604654371818539574348814014790159804914448719832437308495121810535670880610452358310020590096920520892564645420108304725225654369889080473925736484907213308087547780836586447667156653335980948450215884680201789012308463336931761641322003557954443940512192249599930718678492487751716077560121538860596651168188251893595416789370591742524819666689188057560472975564734250725531959170135102378195621433214350966826070737035406415735615645125993846602217189210443166330178215593076355292838003566659768549453704007210666565480352524722967405025322153293785182437191210421936819075214475859453214713895347949248241987773669211624861747161124036690972386567278429646685272377750858439376741927957225195430356705825274564392361226636677948131104199999456614673449546301780821180861179112183200815795824304674866724486389209763074221464514611303100552518143614733557941301640336588823818409980187060045182979810773678841446462534443066922655839316124715999548342914662368142870827904355615844739694492645820766256095615441543359093256380076792323406949949463175902284205737625799794599487338308887145860892976182154613711265510297934418764317615562940957427877801674652890259361112422510084978005631327362808118478038676101100724469094663359543693521633250631680548765750732473981843709587007480344263987245300288176219656626904326831481828768949134755798025397957738967177412082773996630577264080511934375081952340090784015155235382363229784572094624104450349566930421124984338983454977765691858913741288849436529953440220525346728353189461779813974462816448823422646222357752955823312551204779704521560280994384805198216369578669241405500244934968840792709580691811772244967659038796903883662734967241627358948238149274614604886268830689854132718877670117182495286838996865317639135002490203857000064385676931476523506417934294372014183076691553613314336072481004393007437039430287355788445193367744395425848984003825133538126623267712345827008905772609183754919637248557499112686189976416447832901890106531648752424127589037616424244630588103063463630087779239932497944554707170343090529096367100744828172843485729135274968510173516416327237489999455816762269958571949282078940504389202184598956796460161190427818075196101384765212905712735357290776266253406496353337715756934059622730943465202229973474218682029346383386863822504745582399762122860148739335586908682596038168626225804122888732641338989017768631769971423889649024439364390468946604354783125002069969226352554977150799613895608449280586937654510250670677573889031036471031498879220253417161039713628072486998350259218859666730866917076871051861584137687463039894465027177557343680644415802290975150149493288437302089935393793303888231198282572507883791335298550986150309029211995044590895848643925776153642421686222639686062761809355297042554472487028278263771637271898527824127286326176757672735057350828086188957034905993868410066863668739640025302792837555108639739215958660454855385327748339270902570529870790907880096817941896470419013878589499152886900091344588665457492080469699742953252632317791889045420883724526788708091330671122447786985840155719155568578996779229261493595171132720259000331668201260741077040558848788308207548832841420835138685102214376729657637326413407116186207343395755008672638083518452901375352724894425399774859197684199586997785531087380774661682183144814807426392863533293320680613288958704012690201749346007503997192593388508635653000549888847133769754567571768234144540914744102646196398874545328957356008267285684775228129979524274042582846524218011862403844552547249005018004684107429002165615070285172597934395880773524565743807777109279660184563926904923424841636415605589734797350504657636092448144327958053371628328528615957692249611757289038900841145534893859074129593143416608742562803871990019461342338429495483041428037286317363631647594389194812588472113098118539651498726122614555978735264080003281165602815303032754850249247218291817304776132217679265283474790284116442284802866428403920851070925286147274074112986821972440401565543829024273328258402431159370039411091092273835200679210970680323738274022094900845404096918507839249427486071266893484531905151606579473100329665893539169838350589137835282535293664777597005118274885126217569077915921398963607446382202004001711267716596022128481897986533662666135727421867436967832913984122305749144167532332538224065863239445602258480371350340063448765151008601478871878162360632036830106819646779678016538787230997517652849540264982689088651517872029312558036069987343808560536969395681924929003164946938431573651745464971107929270177338653101019103327159422357404830237215927105253633703321731801468209962846350817558771696864179755479312891812344334719304811900780118769087187000948922144025704332994420016650562430448030028329290032241837686831037463879176367383846413415308761546910897305378090446011967725249120763481770623780001444921876792014374271653569718133542933666301296661295716822197168904782671177396356691616082984199396381810796869840621792482019816354085277799050031703308566434013570452939957700259647619806439606179339689543488475441401031053920287569429487127959039263758284567878501337395942165706314241083099199165556349318730931321608944013595622735846160347776909990256146681762845564155233535426915533015437451280704015493967516922192490030834464523801434828493909572201604022160622361966894460750341040086281296795288117676501642586800984327647431565657836601397553358596092116267680695607223277743748040770038947242001563255252965379173287260755027423856574257390481910938078148243178129218666695795424597496285865332484215492704629487363694481916401230810124666588323819923364667537383299187319186133233262197434424782452655427882205261259708148482890486234166492206738307397334879250253148469794685845891881278239580184957117483024412816587668170387066114890166555622145961672571110699446020759619933436830964217585747411380254782162159687469941885451913522457625551826580329519786032761697160380542519329706543972853582903953855520869822922672628694649374190600531593269479188977452045749923900017788820632047157703695578086488857695121140491076002789840000891526226516025617705785014912987401697004178625638667941369245692570607089585643851595896873288477215681802007761312147610579954800641360699791801406210472644673590123311594649120749293845243172103072501680156697232122426021204525467148513900916506058140453801418961845056425498279707699772687674324072916143814691337798552418980359144087866978219892548283705974089336756709697840522109080815738699357299518326815897590248646376847403332145944101957295400626339351509135847845593880256054121619238137723763836242317483051583451273724493542742050248138208465506887931891302125957888677067967665379479713251701832301929775667330053921428687816952982813543328307767315891655881272281726607945518132131683346959756968171514691124644986743062637009503200435574436009857943254718169327756846986417502534236356146469788459526841248561516722406883977791065578989549603271386722644954442297168994885783124188321814817756188203032201982986407696514729943834273658238572488797436326687215157048841015322061424132665937055291862450848864648550577196604891189235060328133965443138821037687349227531237534505142631862745698569992748840576708747921588879711052938401394417429519921511140208993272012010449766041841616838368969412786390888363490678855492600030400484109725139972091885264827534613324937455688779657307767740676988060540173361326348752308620115200206420536507218177902146828330261752323168628679615205704452335423506198376500790881388114253863811630099090700877968604158942578279149659459086889188976196897127124186532535388130568451542854207170197399240367880023381155059091524610925116705812450955846093361046951695920345444965720303543565838244998842166233843522299460045500306905698146837662568115790569661377491335905481398017386321017683502123815689321530183710667123623576299627279634709302007201017461270978933020430579574849671172651692816549800161146026140866823068731517062858379871502748506273287896460757555011480316121620114708271578077797851747417952674558376631600743086583404413666076192986061132528718449844925721075533896807264229787713739686576052913372331747601003263292442642738084052499397704069599993979789331192084362734630629565864771701874991056215724834678817391172645475492401827188314564455732123419631687236692013065784139996129097497452562101538716958080602837628890675967405814268739489171901303992202898969473044610593393514296528406786598709386872269490069148218837974610422642168851234400962841702214371299683863526968798307144426759616855588720563697116835562601478639196086088091340481216190329508224924126629698625081566034691169260352614669532967928175561350007837323616596614318526150664259319690993178836306598063779522602548539554459034711419160824576651206319389678351681638776388575402395679053316415333598412778205167876157676470530320332925679688731328696461512350701914164796069404346517899842299594124167815067510905264444667699413856155553413330124580611840046243725182626894690748244305613776767305876970408223160032461581855762020488156308838636902129330383202294277136646786026617504533733711546595859458688704087875659854931807658482004642859765667204839223467282854755331952690339672981576782978990526681262492097007705433662629022762253372638936593967401287514329009508327876846529080388274581846672047870288372978171847187672912153685629324891161472802595407133741076564895534764457473966383484488256319346332110515579539782262320559269875177732847061714132297218130815122118299399048574129589901719013491892351302128544867840977021207864450016382767307516910383216595378839332540783855384381131340833336817819680768333547551125032318651096183112584358654327154249231959794296755069715496900530282455743161427150939176952163711755296679826353436322639218450051794050541983747836275161399547449925178267612649381851463754183773728444575206469047944868221950847043113043983855711904988642334909855328370320703275444688010065274914403842454652373503832503831630559085255975243050055866559174548121110029447641030790657056535683043970736015017626385526051416886471927842445997503081831065433329431933154537386219669016915914911899367583018354762253308059528622207881971840856007399142184701235352920241681061482574251062748536943322511117980518575319360394364059223492536392147669360098584897659460409718116912739515833419857743451175156225970856332406766517948989567858584091399199689438814783173204843554599933086670843898379479272865069322948967703120871803960566344713285945046962651331196440113612823819747985505818512891007630168973617366617015838604291541821781976755046423236038192102761188990517646548760099712209978030594286782760464118643934217366450129445202995793533815331230037745183575126072810081482204573708199668378263333213020185527013804841801579490816919114471902073683224434844330203786764900587351142450760743329753331690046150341749538548667926663661252497790020809321745227292890286126438243494126319365615872109043583320865422478232669512980457096431464323270396820964713282978991312349155031862524413441784047753941537283858405844206092854375645518113777826036094432039441340191871583255298586399974477873779463614055023930461586400526759002495349376754591937969343532914012913783560637595863575028708575633494241071225877081446831106097559224841467302906661472143487690268279994903213647288846735108125120198245032290878215087709351020811668208084534748851446662374982324988393030993412033383577541954851101072062490798151756201664114834189905488511726959355177101393476649581005533856078403304320794697085758671786011555686681048304696997748237019886395425954693278420335658054569021053596651858707112121403736870951496578032470878469931661191521545329626526399208807522760274185744014252692721462449103044603245447261939698989650504529240737182316545150184315593685385700496098810126572101138087165582972126124600512750700692405035304942369083712367109606512841231088492220074658400626418486223217944094752996251838752472367092366841669884910480734988222613062425581311123116386844829856543383474282413327043421553097649630396198507039115261229736154581477581049253032532583873758435433713780031816145064764083149718915972056600362108805078795901835820165990400376031615230885907275472300565529807647290068036285220490601000560088257226348024552702472160375783864765059885354154595927503442429641838974404310468126724084782432265887753944185524244712313131686034505231737654044048623507877973031979213476971008543780340292347550792114489413231786693390314015328919951832734341982808787844835163535191145216760134531200147063814861568708425531525603942970972591642868010593984253319218519482763966052321741001439757207288093659435428924176470113864515992930400236378326619561233656231505401593656692033649814443797010699964892848978301070987998058531276011186994573554255574115437047223538262433983679600638769126859801022330469638866181885782203332148584010833342493482110814317418227907948979422792183237665300350246929099039296333523555784959663141502060610183165186303231805425448901644695717134024308923354375989470636863031749697731721789331454865685703679731544481460420454316957657946636077888593428716338799464543255609057993009484089458098334874370584676635983846908462909896044314775186111226324307777091558812165970047223577186232606238422644001805877062012770007371909829062985791875343276514335837393876693712981128654992884717613299329137972090013151104208532849186558796662473818484416250392851475564178454783760970292482126678569603659749102322655713387972515682907808124536903340436775113934330751593089586124971205150750181673631063621950238548275580973395229714390770008259726761738519700225147116658064712395650027028583852063752593308290296385721721020576919060627146417560050188966476888520670140963608976903809678986315519746532619435205355756694616017549644066947106361901687898715467157245017905068489061955031736350559474859452310695447397617601474336541883672671789915860079722508390272591190292206429246655054924805214631636748556327364466672676310857665206570730328713195834461984323733706628775907546413300239306674677973122511469709997456892222741186197250149633877004345211844074926187323803838572902626434398029497259600382213587614107994643068422159643972204957567972594985105959577318012730337627312455391929975739440886268083243825844085239913955093690762258987978725353275534436085329918228683651813800920318055148023065964775125058829758682246713927500053899514888464673113355131404613118872427103456393653134233018051256487607303390167395031158025777219007057607456962703740611735302230711222462315492255607046413157796129339867727352240586533145190438631072044143547578121860523037915797697345428108661381787132484091161577579827098561218657006427319871363427616731069454159569985625699467538816412814977083130236538645690369487652474434373390141879225168593309431332412070952340552358492470980299969604737402567913857514588471823490918017660926652040047949796311123242919170746293116646630967777875031110232019822210619065406509661293824088857167449449031527940427787801124878587436209393484770996077664211328225295684678355426016899038053780762173153660117415864413259482490665751032625333943345540176009437909459287404506903442051099441556382282819776879283518136308844063556426814413695381939428103961811394137093805721806150957304572263424302346625329158732398052254480358964228196017423196830269771664394259603511776032337279573212495015056738890535204076188245536505252190323123033458402849537068207401198213686433443082053137986402921711648376870803056196572130889338783828595088710643309325230677579189612142071945918119127040236008612043367497904104445409955120652008176483606885366357689200100086915052740684896839600481783464865638617121898665707450646841147632349947925361718252564811343926241883903121754732032442751655032646697270491140336034361203780743013719151118123134771592243393074055510342261044964581305020681667449667342866786074620403201130644677358924488600047254527828332943490119473331028858392776284404340366407221287468891526138174162616396788303736662695261163021998503627263458855587491509170119433129257286427850553958303176301945444071398026543710328512608239756700840649566334548016151322229083818726107887496385318612741823021206972288210548608705454812141260898416960862417550266777725205477648112446754562063457772372632855778165824223093459506232415206863199417881203567497208989968044805610858496346819752259847444887768995365588977115474684215142119101357834894833214056865660146652052504612177018276841572348653449992425527032551456685388061991296096486737623109944839292075964437529114027661773937351215367506190349696525037527877017790846817847995419527929316769031861767542767258428587635258397265675169070003278114482410775149513599742451908641769544544540902515846157152552687670085646746875290092945471277198449370670379194888572223078398308100858101898117954015656359947842370330633962470907040543016874359653561245554028588122635669046775618174925800105168176410169185068833998887500852742310940823317666986528864883225178602140108063878404246403468627618629552325138114762333341018680238907072685859543073332821330701845868416588236080940822136673928660953770951983446165762522289009318724146266424747712601641171682949097933120961344128482928161516639592419632542521181900725208875074692848530380018194887785112435542714287133857164420361798842045987788445046523288131426094401111586997006221554047669009675788912222640683624035461944353088087846949513832825215118435078514577849053748518847481405116658479588368673324340206587754368952199306170339120615962256411880983209666688088125728585830719037762158128364540428415942654681369367262983051437355918004773937791830729498099621781918656818205814653414354666364705224622534747042855055112922879775490411189449726208473929817162806394648186046761525099798355061865331638245808712462578099847522923587969532222097571976318724245786598022982633136875887511903830838914497345825162909939785713338802006120974493113258491242365624282171409332537129671257260329005542449674502731817980768668815447299085704230320638594585044623344694793222238021564222230168725244879542325878391777512051147304020888817791930891829537979009718514669534914584966114897746153162639217468352188402527186422956168035096188107427386690631808786396277941643510466832239825905357513495599886274177821230984321684957180725465976171485628792306257216224344313295927270793848817145245499844398110359379677181659824543512682347592386554116436272875912790561405483554852606040581696194568604623076281860586127130366504200493270323679440941689646642004853431838490077484009158699913028919788743643334697447492990349528187446051014406225307284344820353995434792007983056636430167915621456224523648280047680859285911251334138791450956094118069709118883946834751554945311375352514026999343282147630882407940855453060271136461582895888061287160373999322802982315741328144637110509572556115218860713860898645185689708209365710951196550127950196957719560550633027627310612495145753342225654623272971249262137001162210026029558985394788262568725628820461246384831024234880258541429626678848805096475399867515886726629453272041739373983482141333308411113164674075313738978003899651854597999894731319151947069195471270298252496923581800266590546419682904981228737017823344738013286314448697976966783058494114686045523294160167199464071647883291624824496525626054396900077530793647041922901735733146454973232681203703295377739689183846823360685562189895688297046639068987614005561721542017642865896975585271020928586639071184793853368857471864553159115140146836427363530786542178512330433831328309935614650503634863780583879478208204481998968831816644880011426816280387325652666450887058183311167919097363895583396302146765031625492677173252169903712955983467396275551397280233855404398789975226714963613656350959804799974074746312810593878280217689893364807110979207337185327810878124508468988801823534949951796577847177336976638436811254919069765593194007889618459097927873872370791295437439590958835737925379007797458133024428535751388002215393086449399644573232702271875257681758098962343511151945632900190640240184569006310784681332167850767717592475416833196158635853723795910575961424709571107059713684318781519489227697819862205862368150152280868650317546101979763539944442397969307421213403884151925655781018122706210476463121235368394239092098142888980387374261478021478853674853588192404814981367520670974506350310546577086938000107165005032619285842107108210574693273986304732363734006881544952718209070908945808159515137704766202275957097227132096743120737631038381059238179083653324185175327857787088582524729396949884231473818732221702826331034703579775736422497871860774351178065106436122434818299218391413688619508724496978839589298243130960543777289381352630750603869128518923485875115434909611385893175248710320617089140877540556698027438435584488278517045531750199911021398836627137139037281595841330895913119573380730107850984430509146784114881444801790566935618295319260549366783360393471644308875918870098313209625879026823125141345080145373470755403919522413116795246193471815728589829778451468467659780965289221466581717720857828789157829069875526765322042095555792800315821574919569910423781747498753404746704329706102028785903766720868578872788193771009056816870259840667434398696848626348140492956597477513270851999636813531895266141877616785918225788777249911567663767075653015461804335211109425065779908294143123981794195188304504838020770622766849070706429571732823953842844099951530074006107971168052276916229635645259115275628984485608421761285545097096594706646256103902148777976738071345182200833212833657018638381639579397879807797633295710897919975167820084349660055152399111247498579117261667565843925137900270021026340023180807034079224816666041869979644874810774129166611295470721128591365209879706809698909548368955591628363798651653936191151160412266758521538386896868587939436891054917669491710174587300485342918587165615543487522896436165431365774278520652086701698323920980803327153824403587968888294766126598017153507551638140852590498350598659028919944380035920443809399016568526305177534377298102871493317453217912934860492801734362314506038126923129338606227615771961776077446061359222415580301184447264494781989971970910262635072860153375797353547131772381551727219862951787874474599645554715101994424187150963227261348701680233119917198801199578792626787732397189351320026822392800887487823876456561267931253618472416999681864778302562440787214476415586983596491835253399831137973950262529641335685333411049861060752748261179028085904950928586790120798292193712138177066719487111787279692066783253670512063509755505803946181724298802684673721211104618709963716816007703926074107485602363036064226275539747426521617120210707672797153532925706853699515214273636878520263663771605429509716732733773328109255213389977996487690808600288480835634051478025612771431140979703336474290019175555081065219592733269303030968954627014135897274756335231629504982644131610298045949855488283450018271655448711173726677533621743644309077286944353462085460006153791664282978177868827250852535799042875210459025311764021995625486501119870850219652205741386304644419298858881204196989492067376390808726004707759738298003446148509508385474633088697175252061283581939222414986720816225171020162327426295631245634354913314633604692049518017325081865592106789695738165601685324796106248216262769401623189093582202961061803426314463255035331438140870911023855689954915001507137303948322320819685401179603741620777004715459844600270523339618858854234063071597028779888982640991293613937991630052230392089533315240535734727400415995058069023446303212663221235237976434847608888728594617209520415077485369513850776096572093595435054695136035186361836512129255919564872793373751479276828347224946650368733066990641405294527567014153756556149343896840108647950779851810783353254658950085479746720444944096265132526654325554450656060447744949735396122502503975773966045675054490342151788435010245303866574404332842294456309663688142516460721373398435474600891956009284337376941811811836947223414530656848252563830343053749165255282428966382936475943596098417094026932613083099192850379107755691771680880913015407127331719038034630848934961276621373376617502279086802882158241391046804950984020822619851467085012146159259256148040777340724933120649509827554243004644036509286877207870111151019096604775723609979061158888701534825819983602486202662764671251456504588446705738224271354466165747559043496606431366098586928577569093567741601013637044820635346025430971820686263791576056599791723203966099597214257090808988008039221950128397150603422927194729953803254184171045954206729359370834143619691822093789208246317331578486198670201722902541424799248604458894113190015964610195295565614746450377484649065694537730599525938639280087565767313663824624771241127907003914085395556801234827058822220231556594923986897796441176985265591428974620758721391546964154772756830405038535182465706544002177055454585972628845736683258586347347847549614588221409087262494039760642082847970546410157401778445928925405673958371041207228144968111600380321991210941644479537097007875597765487369684449222203160949410478615027840233630008217901061927075027277850018623801885462818296752583989199334507839251747426639311278688500272242346450930859199593587751002335124160825853605304487538331824173488483001615896150897507868751524798054010713602051030088632763067608846031012859391227929250883805100989436872831331283340846715422631686545880264368012484531464965227024602460739822733435141772191872938583569188619462942610084749888890074606349280070053679225038853234976010247160547243109146705075313554473827007254567917838802789888885977912764464395398368706127189357293847060728955869022678874967949587184822260223791041931279597614628444822228766229768897574582656087595896976662242876032342244449839167959297631261555529405460082351419880433588806880070954237466520346216773246717618242466146804938701169616194938582666120350842976246486048866809260170513546161510917118825554780689302908428041550739694893371836208377623399749347320622443578189159702141291643854870283459953304748752661834034681052060029574695173970969400423673879933488065992853898356387341693236456899382188638449945083384782267218998516498183362814968543269934173421866938677587171807174318732072291860724401799273297725555741303598833996182882853979308019490998535532077899439028042340084515439494485269471963231295703031420102054642757102786199044557849319283162573284694367785269970686206932461272614749579259404683432604857694554362523872555145589889061286329162877019742709981088217132874713229746490292977854492681970310380182159429766420577161039030763549254101752667719579275154066679599846627132459729593733373618487065093687004819315008645808598915805833288363959521498097109335028379546025207922953237246575518632611648298132554937814287409471850862920180996040779375410422942565824103542511964094679986683639458442352663944700883262776004979525502563986181556659870265018733833874419541462591836926409625953087163511908416481950129346551272416146487922128793268668522301280921386485716855936339762204921721616126981973716589905157015390627715498013279811622577794156332032422288796996411662908361217707584471560995551816097854760244084009240273112665669308792996437775567400228490366369239465754056074797015239614927116258155041378784812053835035145926060640408394371145110106314533717065676197943716460448109861770347982344826471192370666182688576092169604697424001936244394383844633218664638022056646770251748782667513016825310919171617378878976863768778770972507857667586160374626240492020813330654806945551217167878963065780036799123135342959350389783138038516959234718928844737201556118411300823222956496576610475310830908111695801750895613077160712778826132349657306374850963772188888833930601944812738930206202552678783301066395448264880254749094728503498228660967539551649796895064098630399281953374341000091380861930414867243065255455090005301635106461052381530816313358326419154950517373797237423729608109214715421518255875839590785658904383301594597555191769994039045867558948472914899876000065596162292840722248910550883320546215440869676883767733781067508959590505784082746577439310459687323383968453809456879603114408875677676798331870208258935122073441617600991635145162635399153684007871693520759318847993992699915710504793471553756027595493823264868432697504823682811487248058712875613905020116895707146437977523925634536007631547050951607158430133584795153212730443467350254266863736899962069627492741938955882626545699690631771016308247032291406493364757060223657028347318560707794777781804396911726112214856490153175599586347327520158571821930309248687190455209023216660868000730720371865711558609245836339386805627574564336229578165551299635187048750418146961748924744340070207800891702861197745915748641821330223656017838110826952010857955391491574965960446981032681553573396205398756860966395955586337928792580392978474289768065334821216383002226777202889955156207198667537642669150833549825142167776261063699983330544366587318328433778550339033679457148223896968014872947657786283528988346564366902916224489023037885117263913749063279383634650773322879128600732182720048462579977187310829469225621538604554826078945717755220595382207444626085316079324759698907912227631745051077437137016043283024605019447089204050620304397983291982440617516496109251670771397988837973914055166483975070596694599836701625427797081521599960862333333477478673209883289936652139990284608541648018756143481936452152024226435199505237329058318281668791567636551584781916566130952765999961728408331094232430628427205454547266054945250023032371300537810876792802996521793206232386419584195445934262529402490097513123107389645535599845979101411792996258286301190650454846651927206478048706095646123361611698105780630420552333145327939359918943321848904314084223573383157107080192014573954447956598660415403976550706358519062321426104946527688866839255057722751597209578092201238260822292895340368923971039549865971036920832614941979249822675897590471434894082613078756284837293496193185417605520750676961239482421710126019076805290363904652769938409476286405369809490334053953509002087338214572876470526038140347460185217473079274086897134574614910555460460588554954523968395742351194122244855124095096146576895334921628656293495491115149686227430153597030304845806141566732006119997864175175888949508581351129281092865111016770036398927851193041908567961266247445766780894797830898184367524278947109716884439344020155372435504811857471388354783711884886697814733008359097317729162909346399553007454631581135847832116028322326989665134663825854538149261581794045249398791590043680786943114679956371972972909171395331777140168144930170907058688330100739729205657255303691180599440959169813735938683463367695470955772238509316666518487810496023823139273365718700316632802521566021375898113762076742187663060962235143782158657870391388261752921553043398681458474414917648782997450151647309033239831533663064303121092730289787276517635062655062291653559016858133796877069545007592962900385607103721666012254794670218329395686340063650396878178228501348869386655951891150934229898358911372287833152040942149474922760829789738242891420026682536953000245434993634737885549984832938666906066533997909195910371562675674805435145727542204214006537142384150444527025576428708084336032487311029888004828694540372812561375029335213325342093932949251652010092515104077356118099124968920325594639128204719513934771151321113854091874274944405776588765213274593018869535307315905257002846258218627632923758328905819219527850760437944923039476042373982384931639099747690203813969364098672852021584419293025505337169777313560073142288093397654063955308273064561076592213182753145123672273552521090076546055992299060361274062852993605691251695588694296275522050659804626984163603971146890072076096464163176804178032517060327840691384022592948335997228004957389597092542013244810957246515874462226624668710541858200285839569614163015488608256831725925385409268929681594773429714698194028240850686256649771634225655457432239827582904741349712666479372335873474155411445829047056941657341025426446628154493041990117926914438004298098364838106989234475176934413396020075182494697500867207497464563200893620907578688153205923906337389388965476437898532520756427369521444688776864268059395290655423129655153513413882628130049387946521812412503427040864403195230854745756436361108005856424787709137749866460108334659883172259624675534441776538629369721356021146813880578652117699227756032302010723538091469830436734908697196828880404726637223310752364007346629885127585635897028458135906469363931740343653667231883578073075147812367193960990843947075927553152418767709704464325543552618309267595178858289704717580177344713883467154555164179732715385502992678185999147041836870826853296930322457650660565330482187002792477406401955095785207378238463612648411088336953559957207435276214936438101218466319041316049727785274187958120652870573994683747877238721057393026081982402806719893403612480735928638041530489423763552689314080182866556683618187993896997231295321306774539874575037686987844854933982541762657453158103694325259217820363597711683310027466577150230088680744026965051760804265651545636985845513844344509906537836092732117765347203095272034223939237658425550048875377177195066970713479110342914588850865133469769203533143163040036337337986656507845887419655746317215530182422794370971676351710857550888572774375535583428573486775131117649806793133369936219357164146349591030104967265817993363017297612330113058274159828908007790155992402298296099344405666406868180578846692996483241715751284048216652565078896063240157719334151422254618641442893554211951990097298996122670710515186472362154994349179048937736379668142986875560382444413064725737988644954808604200627696361078497317301714562211376567105067928084393047941103681941374113157432851386662205759263453569189082593509288565314524604419411344257305536048181741181502982157665895610072658948281016114624220805708237213868862758452585298066660855150005774386483278179001110762044121564753335658862223236140396482280146990743533085123992299164866415319897191108614030899739517357704275794871654566018485695415566765914524868853823533940218368504649928549809437443387945915551340977594181669750569899436769265663059826216406400101260095496656011110382986058021041101740593238773276883869533452674715206800304861370195821878778612890150998042529007127993945627278412984071461839540048198665849016252542978410066490077845345731101364348911432114480994280317019585282454600673888690367515831800435769130121285461147808021983385687517291740362153782490599075902482127266283803112059226325775219703631833754377061317326498689210156779888348436365502724053029210122815927542065052570675037261971300897112195535891415088715812847767338431480804817212365810015354816948301982779030477773274683939235130260386796890166907182516764088001557527598571720572402512695273213163634584585129098574286111742613464691498528521062909475917140375592342168477325712109807532962201266127159238292410312291602787084028693115817426237489060819632877474759741675273432003333260328948391132393599452680044231031707603338163908098355308865542714502474386010097787134505301090479394354652413952110732658894831703109551795120335310288488397359759669091775432884952111269863978961081367785161370289031366967817686000855526115813693603247191246849824181911128139835518257334569836196970268403497717557160867599807673236154260173523222383810136905177190754061093000971459518939927159230845635447162549698710838514170774934791615611663126520136681446803976350922567065102395612837232593080482285576589414911126775137442757973261760171450819145838190681951160094022598606701408521523714440024401105088474771265263870310291036567240740847288552000303478153705940439070646740175222248704100424587936115101534482488913863851546496258013571765594943736554990391925987263109321036698245312955767465634717766088013771444380265824239373840084014290122063707259677134555633554164309567931702292155843693540664632163747288273564805888401458298262065120733305854318844912164106614319900812531660467303511293746054981720849140619599009592009423254346970756607740294157089969708455515996955336467771869895109658646455981684714449246236495365277037931033168014225599667803634732399533296797652876164124380643208011459430421794657772821002502584710476029106668557118295118133471970803839141063253194500006874006940734554440764398458923643583289893173055370846481336769186593284213351611074409260959565221840083895925889969504491462524989911074463373288838564197425478773615866985241915400927207080355396827829439531469789479382808671358321786054621121216416360337876273729014713853111016324061144190432443127784947361563364014849060783486047804751843289232159041443610258866542247071858940552537112796371457044664812698517354787834407814569327458340453937057810756153107098705183187096224158560888049925728032086624971728088486413510396223237661911089752086582235516979671235807796329193354779369060872877767973819519369041398520645180853732147051146361889404493324700925942544961321009607418420364434010293567962337560163962662341200730455075518475985329216517494335641751091511150418748229837499513511538573118591613311288161450022417812854819527116817724274507181309632211186489242294066259707137903619190102387213276395895317830719941154537798765330869668471327092691990746858316933278519530763005968475933309437886727662750840716634757882567081138785672430542427064036894683528727350643928986050011130907965019536262123666783571814230286608819538057521830463802699617638005802570196755069587065302193215169463777477313054159149924996431448239957270752293278232252557499632404451888774318595089226436990009253386685595407586479882705748220420187770643636133895529007617387941460394694589654835200068125742411370336333674742795374984398142020086792536358987420778814616971768164026250452337282635802833307731967830476639273029500599040663147753136676061025922768174289449873763148588840418532826408499475605495269106346102849232740594601126015265586548810103020704643637504073989600258004979222980442588879074725008850583810262447214182031735245567620810173310026796469430165620100557049181171787484438900112744431190199754298771744028520625857387114100084630327478163500038442667321807251655413798896791138958506320487922041430220773130220220035196054708240983725524935762417575208267760416064805951672663041228686296470783429803518515789265065082859253759598017256486045967061536485338530521595820623869627674543750746157847310651813993422159515825700379844451341153410789350177157101281437886583898096821626779397326046324596465204579503434913751108855578900479180045627145790654099097647781305927288193082036676096987864586713320626069813889798205594640041415797869838084953679342628606685554090761525319134598236005419674503307197683223846654461193656172963097872863728931368557435721808320145296739234732947022062227549780554346059186280336765171164039901206461908446564554740721845883034136401340496775463865621414011533510952693663260778475755783110126348033003482329754173277346701970521439262756619675413854440022075315617317171395106195147727061609055474800463890827755648737946624513681947043359249642147607059522199811901397603151538379263364743044092006033767207752552866522590454877306245801095672724317075727941185309633152678600570047007944700026425314413825206457449897113707450368585073900125623609541350364182962063439880789097383260844876585606550443936273165105926125932726707345836022031414830462241410020654488294178402807179335835484748760883564761363711564204354699876607615295075637236534438160217891525547789598326848572625440403945280159795288400981273334188095055427799984662015588186218710781278523353389036295281179421549737023247043415715024243512106284764453239632703473331695911936648368392890927431980655395645242559253634034914686675086603417297599453229824625095441646789504999217043545510233327375405361058995821651286018421861753329786775890195257004700047035234944584435147655270475975422695479311098536090386595065017449017362093451263895271929621320965360429138315173688575119501411194469675391614139663527501695237994629641775685688603360743063750640942636631681725005211377457079929177729375523341481465738018094656013612076499524345726254242015801070895145051667192764990406643368658075788517374791999342790560176825411864296438222421604829223502773419983923459487215092105076672879475905392498552524943832124978597064577580998224759742643997483609938392423738893399705499818611513370889039318437771239412261170115135012711867194300279906826478660659806941887927742671352374156656602082053064823062128764742744712500650958574406615660289384092178901062608833671585541315956336225215322439908226268559420034103652302530770033481491267836058558285924918128934143644110362723594555766979250549775763805954414928005368449878235378590800433016463272450791674512461618986478178376706330433042530006051037898463597254153045151375966462025968768566949407425559248750642578113324164108108278737674284337716798607863752519112173891687853101815301296802138111128826198213458836278476466737128568406565811423936766766115047640593011491041674077800020346711901687646730596435139798828014879611820368981891550531790792575062104948521791001623696839635474255257822234313542019666109631849668765125386709460986198888605642729768335044809179788302027021179317926941854110632207517627120041867241765650043308811119968963498549481469055000206760389254125823825656930928413917381848568374690673943844389073078222379407890340360767361752688412731597518801578493643955375910806476103953812836584671071113315957186936826387402540635103417667212341916500804171967959807716160988938642580401483176445959212884312152695907685782637075202460045076104485158737490181406121889728778931663205706458007136496653469933720522061499227849733724456095215499244978920067177886348814665614766026596293719373633271712684402792234549179888643810163941073600692875889331390123338749363144179792046004748910222300072021953116979611487171095045624275819549214448512437295570904973809155715740855548381244428012785968724206708556166772627074663658388062405132848349015704599208910809077130018134233513194191784170466904996738017025409741181368450167251808148930146694720650133160423017496019566154546925265424522843984956437221949280512841353119859137023464905591773907295734435705029112462393807418568426537463568284202424341984683577158157564808495544125244051807195678683677938288393108159428741951651234135017007527160286397965814343293535986923732128473561001863154006821923387952337289345586487686001655591497985303476049121327089701113252604065006652180094710204231822865729061284109511346744063064929073253271128926950329091106494484972885917538865076586726873072449219601195815494369762960721877491562144576817980464985637637297365175682478938593740236378329070489816866610648460471146930223764191961364350777709400026776253062598124164818154399228047233200581399586901397392423268786655450460264875642384814121876015829110223663613729212769331780673778224921582210993700753435716292528638203350156422157679360121375411073556388533813274031107098469716094006355769223522139064406970594150069389887362522376717450232249310636973382205848314207375134844542080956351349835461605483776970642043665405879513839586226190438162372125898544036667990703329903279294254763617842444109899243843603375997716121236373117249839825325405948378692904084254098999736681087676513161231566897564156884729171017549880359499560448792325479939981257514799427246855468242299208746441529153940412023204211372294527093619244872272002857446955663898647813379212315946189432479320618822576568061712967117883223251757073706129193954384161450262963362613994316805435456569370620643176013702639381603578381956535213303395679336390251431756864620190376003982029112753937917641189473716809781487968421092755518976078264345831746475400080145076098032518529616681392325301566049118539744239890722903398195383154004252383661726780757537513907338669673934475264648502188785101318524995632721319326743018648004046806720302449914801629290151468256617904341319084555811582652484445557664644930416212311256657499315227960717955306103440175179742256686115101241370157048949331419114399228132225722142464829971607059440976935647324726922914933806243383710615445397820214614479858292227746627677964742982298002364209285939580175390208549390823104368891062514308409448447711962313291725222485772937445433594484256680087892215345938409195040359029272717698676153871507076394701514242792053764532098377650264887467318097206770141501995670491742695509500102213765216812851878112985362811558295620212838187300661641478210545745795887419186740141889669569727465204951215979906013677076913712927488422335765004067503473143285271331856099656050290679554994714192169005111678740399885948874641732003595485545961251748362374514368569327633641342521827285421899183794086416193736915554496359240228025416948639224417346984125401657256606729089553744183258592218595424330025983420591867535370181264308467592880994681338874984283143222556442693666949323485544908188852617029283292450496938285801403767073055331719636275148305886447028251209283324911948323256267532814650203857317932038437836374499360104413863773148274972921085508896078880396553144508886933680390482897883585935527741636934184011058623161869694039767382585257519583110943321407445808882595117998968111108075515342191368939649876810518332138121029665737373310437949928913134967664646946453086633244902903887728777773962275958886828068544236745973472406594702389388564787272024096368049893892618652253050308287654124948892618840194054637792339310531941663536711532326453288423266508995664712368867387484752343339346456283432286538860408893420997576522350041911800510994543781351391570974344955768498715955870530925813508420171358074998441930608203612266422500517865647300242962391753479681588767580543648276190286410140677238114241470010598219035996337422989808082900904208076108539296636014023248493354345398934843053678663511876684671564620370702756181677053717448038416716269776903064790878335108322776406935053273374556574496074479467532122317868356128033670485499677687052679292535567334335229224767854092936709301715615588662067573913184556003772778549663861459544931527630103970470997550110075023405676726999703400967842824862008713010003581469752115022385993150522559391155145155439706525849417950768500911474186331181627848110700752439115816664592475015012574249558723053305138736997489233020117420495363039926934955706641804731713411529407095547331159955427640487482293601853544846488991453665385131515051736291969885572666548023109710324449042646862052790457601940862220267094986564245573572481752488414876836932801642898878850646851458824633575500270631615466165755980977729920479995247566446703653905954766670965675442975547062471221303162396235359484031468666318804076103530219028436548363418769092930162150790201647914868761586126588196696307214207722755801975528832261529538021414137126442087824436563632964144389603263251826780096506404066595597589349067828444115758805393237779895812531038507637249075734282753792870479668113165901963256166874336900775167571326973783454800745386779401397412142571693039671605775077786910612381108172639406476356940089262096409197039623579091072735640073342893995007495938866333651934078887135319579309309808182433647861919710251882518863869645918181614109971361043773154758816800223468046928770938732856851202718736749772806447536181161853876674689823133874648428030580411803232859322311982893173317761992584342119707817167635515787984515143828356893174247490280923294673953680956355440912234124668362580574659061666967035212551352145632478174982397140374259752822679655118674862567800037915231774265531310115020578675789688820543326814506873518154903864088269404031070889233976751634402965050407049587946284072036088998222063370150323747756223907474248093676832057407608577610376058973508554142855747325927603830000884691152053047044514583692199973205743366505730823343588053585187847516809912756581348133024176936192435676642192410133391731673019839560452598572868200907717789569735204572358210174504489746487531365489911685471364199444896433716514557962304247613715882260509452618232505815459423943168896236242334045538338473654337788772568570872352156233811702162621475003835838347557619870684113906462870072940375570830372619026664309159350782598076541455460954410779466206660258795403842637726210477032770608132286436225578732054428816135150776231891192247725998093764507102475716937780858916405809331300378742335838050046055709154131830511331773789780579591301617079799792545564459416140576151970739374953265181963984353716987571735956992260534590800166156214723631173761264019291864287953650307173831899271653535284431132343143308194318883965979166636391961453562326413914915019822297066517203693402918407566573101465302268758528806159400917196207330404182233998619215318418655128655175328495100940887773372528388385662888536282050850798960065678540728290015479162832673671425724685238915930926505379367303203544852352803626994467228799187653293971935563248697621881442223781042095159076354059064335111884245868806974889951396928001517967920733451007361073270448607847431631122037809116286263394201904577802900925387816115999096134063193876680819725745553950053742723348559498530582886259359911282872332193382925295913994846418113054892577216492497966919925014698042713959369153854710993197179381662307282355815174483100199548654682305578689412367734841579783213023893052451012586235317436600823997849635151421643859119087794460729412817217172214414629302411624523457801858145264700741932672169996853779658189317021647141003265036489278751722956495162139573735591958469774683077733734656296907801830465381014498792273218647581766103348890804557599149562865206803599381410775480212283358946614017759655884630215885033812577362765784030868565327914333849110538117509782373576251627855374124644612262142427554148267566687353838035499430830547073759729926302267831792903413062973284742836840057803834383697178858766578646893210382041474149722988873629158850403767354600687533208932863315022288722179814253804664479090998254282400087260110708863586837326018343284389442888538767409291115077486393348897004205670030876010285687125282459769962228067175529456435613002157507290613134579846916795794019191140617216894183957446327440671869826215813602968719718126283124321901401825799693747747026430544716902890145538683395191205205236194938465129415492216152102376420844988917638050287521259290887742106138164621187252213482101824054682267827904264897713751506591342720226750290839605592599720844360580710459002619485649008971154700659303544975746318421732670023454517709136142012255188300688710447743824064693372303203620242938935313339878443466689876147703056312207655321153682777662022742762415315629732994287869827237880016713682384800661571632659997941567189282833408574795943947210776535125914752754887885091279932700619201341760981961646836733317723270587194568674083608352127250558447202620254498914548800349480278707028390692820464488616331243950918039613071248175661014058680904275259447294214197985472734556645929753729500684023059673092065239721208358279117606961527322602377945876918765803251338924785403720652745134492153550684628445114689507516037344175071714717188722509829340822776729392647252407722364735194941772871982875345834810938587060157650541238018702248391168983231133846489307875440370932151782429227498974370618138300208274123574361562462381607502683873811899919008166286507081106691736732110261689921785360196214906800538958686782903909800769493533669324268835321837249085226356607195786131648841538572055045931662880186973991831304865940910716285323647985492167924838197418860902015040214574339589481880147527296032540924456188455169660595991187122023663458578073956937805846489576052010368951604594934347397095963105958209862783548572506098260442079038326484608413339430462449208951993663554948787764562906517728066347868725409860353357361776778019424556986359348327909714019515675874400461842189322397109893969814638587669316123043898711028616260512385619132307658362178722864663704899090806537921765458133660410073436923642751127308555326994196042340154000923393754392437763083457107205333561266830092730679237119067325112453760201263537607662043897019029961421837791223782260204124804713194562409832110109308199352779774984693137489418141070294259554209060638740982039621824926862698532347095001914746115485930076133882140620780267871380921916967267048714366568228129635350463179575698288020981675150524841726064751133530887548389357840723109990668717048788287239125282666341241699207712343095264919812093079228056968805262976409151265958286416050880318547102688917591482031299284438648733366354279745172859788263377199656541008185467347697226860091870168619573107859495075377224036319640399041669753358989656525136004486056546720465994154474265107407354253018442927412101994734778997974115064623993751594741769297974734190196543806381823560282182468103260132205436071366893706623844993336405300583889111147690482147837345492585418780720210667354332139005924127010283400309859963501601117861029373332379760078048428284064472853838448317912272015347393309290686215015829493680587809023787526564068399335876434127080836047796164815220142885763042876799338449177123839173235762027191229980464828420399160538982472770709456579878750997528947138570077736630765732751392838034134351550526396820034303565403385267879622154285488850185065833432289098876654211411002027859092180913853945170668195576855638375746682528890158747678485442881063619258914189473822430149122511089724101770478669434811884910809889205798986788583636934461037657374844364477374554320353497543435809376648421291771925461043317233717309519696819029829088002165686476812140318687907376628556584791360251168752010706833377277897255531627736599889697914359631834162897756645010119727540394497142263912190545919923431837372919529807648094618825281362610180109968979755218963183599902786849049650466152072412478328466865918323388657510000283522707141305556285748528281033214099458123615888366710596463250824296036468340231503409790209509948290367103299017427561767025234226906459768049355004185167706447677926007804532367531896073339538119030435564575439854494485940247956016769937166440542762069293289958681836469796567315220336051736058233313509671304034218403445287671882146942777984660097682607952414400075876569664371593522441448559186477116500145233417625339235404319079201871967382372687196569506174182425395242505101142707857734853664297157814317275335587404984696176790111150095170236494431047498754843306396163615771085511738637967833134264565095044389383385102773915454401079485751717569300632465851343451664362177739450848661878009072543970023238995031000051161993030358265816823100362088940531597348300891802033383465223633923983920822871753012586660574792806944496017429637634708692158931184022084893026027679703316869813816346290296478401600799850675739224847807777276652672395948113029569851925451818171886574768841300012118998856403255148512938272873260468103786540617317840864151074997517018192548575088271267145168382157709694703941041351539046542733295591051142761868954682517168185399752444227759985571152571941824537564897921216240444455391136976639405279502389766654859980202945534079841534498752530731444047699025617628130170161348104885082501918438086897516404577387888939643992176251108944417835204349401667088067498571145810979893291058862593599781975094372540004852565173569841896395953626889520513334015409742985221181767061434393953236397880340895291447970929965338055652201208495349220079374677606846678977795081083663028240868402932339008068560939200588867573345958868976186933974613860586720274678304225995014987355383001990576135668018263917232797585429741055781246626661681307886626460201854062112490167476403583715251242827225138003647115649782253062173563489064245673647040687944314794326504879425487598184314901130443311769111278638559396794887099893579009080312619504977670959697167123912816215767015677502569649664288660091145681183931393095816516252198614713587351854277835702795424803926242478160980823538002228860208406510605655359774369060369973618858050233452344497985274476851979529925268525408778096733441780494502530789349985508920460682400312099310340370049269402279241539352231981874177975365604824324987743956074004409693573700586174719399496317232288769292585559583554428324282812109989714207309937471496440038594268277970686178437082417481937120571049293825552301402826178232619713105985553679152439468353288928129897545458513934607068865582338541888529279643460107305017120686698909470306761615493232980601177203876805258374659788155918615134059115627224323184406156997373663953124745274683323063479456525925862613371274749541610365976109933084721392822281696566435375472608402012564609249996000375787594840052004278193640594562411899775614892230346266096761954341239747189645840799480157089860471049528132105692422349156673699400077018561308446719529207930458987573607852759847871593305536530997303164860935731786424630495060308116206793091128362616878631902780536685255045967682026539829667622081728812841333446711319238513808224635010438884300912087823884994986162201640587702566894154542884001957998957316855616427143870593695045556304589193296523450292623965353400425510299376725478503133542976402519783398518077979252071904801102023568758392128234815632620865495354190441102835722878785619382404218777178828247671005806668565495699111405300728057690241676554437379334626631333238341408954981340103247293800816330185255230202321955752029234389225487301557715782224995881012669227079575218621470834364035929049025227663496900080638498483045359383604259676818486882258201237003964962650440330152076361447788177388775419917022799488353075407311884085112765360905818564123993412125488106451793158197477812704242923229365812184246207172835536002560814276229835628063172989942802547623253710960924736910985951219528451882822713339429308472124432175954962538632005029607636828040843085997746789727123606329606829154541453686922954679111420203970110057530860750107715728325458663452663000804409560977767788336069509837650485400861582095333486399944277743902079514309991501566777979349644121006591117586460979393670439765134128227039874805628779380529092033648959601520381899883650243489867128996017426904263212044750268823689797969421443234304922633932343686230947445883445413797758777700282285299695850691174381089024224451559125058353844502780387915037009010413388260926997541663586481221316606941944491374091422360739901292766479546830138959225407273662455176756086202588328924819807778395279315212732273379562560795024597895031791609657968057476905761250545124050984085863929983933745313819124784440517327841620754364138548990150524505825645219697794565309740500872486006669504192043912289635138353139272731466376078538239714505789546288341770829271793439360639058123545895563806998028414387598682570260070171164605552801027615580321084791943476733508919097278770530450670137945313766624017297240762766393202057266386333257527821388107440057226856692670924071211607116307870811308376533750335967451755292823568881352699838983285287400386018856427695927095719075505359951166272434343557677980608797150207901231479658948574787424254681128043811071618648794954638343637656351387176161426473499044004833704845336269614929203171895271692572824686221095697661459535905304547988274919674739425127167552552370483623937373376400297399269894721297882195009705441438685305392934392745389578070682748635239162304679942239578041381101624756003273920196517456118771767965198591467306608608144322831966819650762625643292308731446840642613810884203151204270498098583485310246481444317940019657049127023052007139298282976018507273561173104785589928782830573367632804336333129360385934276212404370944004917987462890113182639088976443211439186866322241310045302630148186411115034968607891716289375194322594337214569058583114749554508543505952949866792130735054043908001295648994574658093038205563185518685038391806106765934243560629858557732876492382198926786900617294143025397717830287706308463743520557981150159165353067662821974144419339641756033052529378961308645160973968233044477625941655119432658046218005467112935752030776788629701621959389894555215917270562783823447189324330941049648924853874566918252717938621425487591617843245693097852465666448596649666423752156323301991044077494053891561366266899449709857325398532331863194566931031854976496142653525448978430369330696550632344204630669948121046686315011546148688770343703835781876500547530102094188432533141679984803899592988510939999769253204008788582288647053157916798601012445487155330677707603562966120560350408172946381865544515328580815754342890240874240650185432357037650217476240225373853203550318601163947183453045995505034187992382048900482792836882056200724691317437934606749880762006238346325124371406456231536905194096669495193315984108748663456559928863401323837853577612812760042221528789807915941461781908262572103428720539840109951239036024908138411285136621014987161862657507142133989250092711973447324191931779896305394400009392799731974384175654856577710161125133625009516521974081398562685465300087956032782494137113715275945915312495669215382509151588553711854395578177925106195879421695756096215651421807527599109208447653139067609248891866309291733475049880896335670073109008693696159318596814594040880294645708194312022949308773749639621786982624037907299544532050048974088638334462941130450815329345539573148987948968044056241393898303741693025899289438278370483714244360297103926119871522354329386015296032795753868294135051669428503603202927427671485374684653107352252758914506425096839299720422452223630958646283452924000153843995425510385484386166688133965754379850307134045817161434134108135204746595358002240854650386685549277569873744354707653624052159955582081720750997121843472821915981023356639412309754154715598443537797691605418804787422624128056086047301810204849404336367823128921749190283136939859503969139819811976372819727603876293741402034856959492327302536406609573060558620059612680491364335763799539648039350041674282203179300127469844824775726653526261073034028430415109992973755323538761812757299777343326511469301915281809407756527788389262220368930083454335316718200478806091940716147808788974063140764864135471289065361991395197392155993032226441080749615119064860030531049262720998295556085916386585014765095747471167513519316810716502509259483572227934623472077669498260372234754013459264067636588597253594953338999557873206975856170879848142271485457491413262533011659966536749114534944079796194141143760028419531320256993287142474078190155999609599198174164586182610013158669992952935480792623858879881423425637354310576399945529727317778436383287025456023246790338004910168488625818922322847048761512011990564367304493122736291277245663316359245708131289771302326321461241021066118266546317744176102547367093821451345865904495591977135969739031090536899398247887996136950216401657517601226966082147181972341815809692828314008056359729164925649426561613615132158093240419295086688978618529580722376680977683121298571922502776240871033728985928133908989591245396147201805565089561222111285847966770130271761842054716049987775271921906669957264348109811177187202486211490722473326109672360232148399002975593040642417005747793901369226082564282130933942396097861492541471995640044582256971155269183008226733058536073479164411950264829524670793633036671590582318796526704479773785058768041055784003857941636674779862796828884956189733016964297432481411761651970180952294940948654389876652918417092165791736003471460615776473346823377733888809314372500231505715516823905982249715270860950653303186291601467976929424399341637395228548542225519077183693932250524311545342097214097320286889127060975475765978668687397933200219691396471499787353540731924423210224963289072903699086249244908192590707073017469527073950996532986532470443271450137813304959902098506590311992769542827814294828290740744494666603917589657135371030889743800479347788002211738545104517749326818209987544098212286407903454420233605440620059687454375159286013312800540391992904760278099216951359329248394702833241109404136393705113900655502504561596170159928619633685241512990751381124724437912241970368601095225164164367677444881050190783333125942197864713411056607844885863114052931769217581079937756493285935829201719773105763681468627551090595307102724456559249987968058260793459685763809448857424284242837264138132779976805435246526130537369886553993847557209710722991166398371739720997353347775211875552510586193933550933740364988825078718155586989283759290874560951160956383071145821594630130873056374698278670919540985586857391176260044443920083258555040387288878296502770807365417900114832983943554941350803070295351028622477759308269260974715858004125157368758864766211148187057858464070375573895831046474928512116307614786069662965371697812654704148809256172123240028279796968585510235514017099407337490574239667152137520742593336797980455462361670945842451821317793148824580135336188680563102777160850003603747507858163826520156775389451946246017680474792943870134075706445686266982032489786857267115716214318062650911786065560082762587477483202064149327220454488308682683843888150510685138580345878078208455026454117284918915266626510767525196611091208284469047256281097175918093342853599894854286072476193577081316850768834917347477864971588756364279562731502920582377505699676137887405323349999533881203272268904311759810354770577443264411885923404114146994131400961578385246027118801882422166382253109702612156229871150481322538044969553607120357675098930833121843315934713273213026555208090357922846196061844537990308446735555328080014262710215437563020167379201636730676829208018736549039645880202535888074170209629524543621479706160003243616034673759113958831708438091997061651437564086767664972529576787397553087216484663855896309974511789617892111837489001679590436058574115855405118855853889709366948514855967845675761897864377295218757813439077768234207911772759357592978035409593804369671806762053901971662252025227404970041758584552251137836913040840059780046247628190340492244015615109852294791131101817162422680128219979115079695506854119135088806124059966728419950300621286847792541381879495552007239431371172344121108473366609695328239843537741883681369110179234346328690499675374467817968277360044932907541123993395653276470583573531722158165813401426370787095017200482304226971822260659646534911376144157439317953596050133779870930665897594575124482351360006927348593463065845707021551676179338053121132997586619743906405457982667589335102885382252658488481250531203023975512713895716256810455279541122320665692499487706144536876956029734613434779686413965189688646440363681695713578222672103204584282858116468992606126116412287017658768772255223642932341524029890605514174469017698736337490892207643304344842629086915360833005696086591787394679676557609702936646484284791006254548306066692380263896765206680657947315571350454651724348885982254647574717308667798100815594559576861632054671005791458811818486618412429876638033620424134309253035720598493484501510497552865250260654645303572912906008863273357766569252299475163981202024022272782486144419570587907637257450316236416824271456409080302396365387586849747236186593341302005239502281145964561635763187706717459175975505086919552188062969280876997589004997166712577942386731450907313545482897998482479953158943493781707906767374872820502721487886826653952377630076427460448713965254546497633974715744121410805912037963921425465795133002700974623948885855812765475384649679823333302945457190314222786964976795670590611163397495011410841872920043364752249410636789051755612934377951189347015231047166540347539149480008965161722600235389322924280108695425566727957643209075992338796143959447928596091857292435826324431423843190539801577858818438118492346302876651866393973505979889563387999390198151206080635271829630316323605106672447142119319113759256846075507504929484867831906422005553921277648710791122332900355155628837061580010606591568375381427636763753951966620986601616612258821263733887317622580699328731989433950208625746536476366566092048642094740397447286136035682330616804916047685608237503816984283058674811002705174681156643159257515380958360730139652255722364491621401339580618809909295453683475906574408716702582328067148990463164096497046564266002315838671133598696110114959940118336464862317988576150484927111087356923034669281581028074245892248602430971852801522431238259599314010344760508850811599662197648359244548852523684858460056058662306289943739911081410988756028323823084077825619907621272554169943405674724727048982211711837949682013215941827164329696256077927779334481886181409164117443314845064730392624323038263705384982317026905778990616287825739388375268257708069047700638485295943510511958134642224584626509717370330797903723465727421191002797325267932230957897456921964088212984773805651283796712137153217620458865155194343719060293578044625886957139142680911253617773782064620827228910598196476445249611138696765872404193775345807436062300256294639414018655425590054896780140542542455833691450579320363664537327253238404391328380987845140423143873638392424504500511540917174353898129062337782003364121668000343532244729306427414065524461510927773695336978729913761782506456705113679903042331247476400191290309886123955912051961144077836403814843452389777063899884274770259723165099135285688772903138712424129675942742010205484460146917310877970452538020375877935204545556304099089148168071476691740642046756433062507916410749359445157605172537742396887196500716388917156089440149566131826963792068405665535906006934493870281124532455579017956980784865168028301797390705031336075867721197197216993335048999215668557696033472353051737643844248975423497562013348068398407908350087134286513465416530879913366182190337115468645306994713929271341134572242661415959946584108332422778723599211448428386704568642119929563802249639208779115878078671112794924690579091345595876775275596740573439353171124377031201068167609842814703382654963137873077313579668001243764094151023136086152867838313196914725069710230114173155049446838331079415675382540424239843747894747369240669633626748442804574464604378394097670917865557243273315250498394955445386906842827177672327392178679099050179216476640606094366632541416999384471951340565020864678087333530882511997011974590417056197717970900717312744689814781925370700656241237686914547132782626701737169187293959647231383816100576245099416149453722979380740894162481595947597781255058604953530385917206319883762218433112731086521389099909700856566201761219340697296838113785610181291482593341121269658625693131722401545128621408433076066419144207947125288894808929783378833767947548080741700126842465897636840671210170313808353408882659377829810758565698879582876174093268536955545969488514534554095958307424436716500708934470774416226052537441577244423695831941416315062045471543522728856848826366768790217216160157125235687266837964810839922191097055663074938284629994784543811448957689902637149214078050989953859250247942605559523529522406851992547971572725984170440932875298007862711623006843672767100280315799785677543889615556623803849708405482948721412400228351206169270149914826078681751005879867672475659335227369091478880380575433161467790209598612850621570452768345462012095417864317613723749272265460358689428183667380963617327553010888434513084348741573108635675009536967399501433145832207674680043077012393370584454000644024262462853491696449813542957414120881468997163278688087777718166852945235184651778986844817534088671277735970387782295519916584395276424230250478535304264957888987207589522450624085108298327129344562766517039364068243518211668456852630362736740949983763172592664947586146845480545760024701620723070260320969143149944906972657276381409509568658265249083435071465706954100981324099522907134076578429491247596349315019147051154578529722040079606191323110710968430540113478641416549632338521161622377963800099650968032367080360831766040638595779791668920115644909657771448668730730295917473079165132361839968284208075982481723127247952470577921109873028827788007806272771302824067874066107535711345778330139394712363476103269161701766128451301423404736330617539025414892102135656517356272436313231836828983565410344968407433897621963297956791200358328582750715525328320230049528112890051728132618572383158132650257452058788220784544156171829480393331860086840522994066373354720462403128445381358895480055407104967392147773327216473828460770726775582415197785102005971519963121704827274602430265408893866136960863485883153796993484705041214848595884730740836401754417072926948351626622142217926073011761298194830216058547099275476405410618915475043353454886620626652611615169399505029151160993470840789120682722046944489338645720991706278282546677230033364394935574304689757496043153566806596067779088097273400276522230743380068125500032946343792070967197694457777212523028662783887014891010590872831727260610895972380910184997025099430416126374809533301905895323885212585171197761727521476049854390796466286465115294093858328264007680937934944086192796452556319276520315276671171261981360123089130923348473314573204871540169790258584384821494827597284649314216459238627038742716680475586009570235646508988535107120156839880294961178752867069443884764733772996461125033236223361203178081686159045376454315675629383007936379623514543729677218629893072349991338994367924820344941570165395219973589278326303731161708313966287770323533775181248217552358661159056148061602095503032344455519675755865477638416748143547913438458997199192571308232190091183559125472970925621003740357319288597868228613506010575293415998693037266791563029872916341735372924643745363452065804083493424960277160828963934591211848639284011544768840942257884070183108313216560651672206144983706868846681886201480448613168611916228537603316549907370580616190232724745762172231929940902610921862929462545855133474623099395014073170712999106821876044606776472954733750453205313644817905559699577658568521643836220736548592696360617402073681393197457621439969866693887258150790458000942654450708184659904737876680513764446294759109741014142140844063989572373978913771329322562107198925074935802494501215199830259665926089438813574673386001822234794427073251348462276593261314707181121928031078085148258215459242631120498345224932981398041084196826372698720399639070870687496447870070179205287934516082377619335452480570723392000085814354028708841893295472760070447201105934749879039641057085917878816678988034939683494128674314306220278338988740268016136160213967710354659035018192801651582000863075396774901031852004467980442253667725423729153197687184873025798541520402803068276001223104053119671334364861302902001721407537776522978048085444354105058369356284938320232515570286412221139658111109083062664815414048952498369721006645984562203855643923819957203731813999129672651787073950119356242348278842340435563105226555373150532338261601487492131715783256904864944963665518594375369685243463836260027505771404068918510644352874607379956768532996762473805934929051319872492956315164245734752128004394935399244472381885873765529739230162526445097235338641038062933803273434337625344745005256687260654236033692113567865525485465745518235779497777447008309039616936782631058471799692192419126300920339276136010733747300166302913546152105369226203756434335754376189131830383459922889855605060138969645634792461100364459400141827704795436957933394662618423635568701014447739001221907698428073887394584483384847619883385562737808162328953642071849864473834794373294992266932340328287776785996986695416565602836676191760781682402705184531096528326440770151344256180984369977634751907650149966793580978405836883207952103871554375368215109524467983160668134627580408218293014396175718677022853763634775468459734114730417892181166521209387295221401823699187548561292457001763980647199696182848303262675321912220651792471660760375447917659468607802643315723426212004217118144936221190571224608679563285774732552661981179574121296835032831061329333830582164316429821017180459081251978147316064054618744650142923513002576425955339602060817104158114856351008904569736665002829899632718090519550434574584937655870038717486087208100973714031043391755511969908283220464354409778207305339437605311942029722548411679989402794416531307842391799387616144467167749348052018991769071964840337420163240899254393660772723777574816933853998381016578485821277845724577269521330766318778437071436576469628612341159741723168274982021902596763754607138249908036733446163547759115592181767655277200131769901504923881682251525272915837522089654823470705328536532887219042474825679437411771171967245413820704789468598792702861658016646010396634254028075973232333105893379435685753227415300590191299057345031680181850430248442061032685670276154924954125536901244205671719068527715452490980821101442280964677232973209022679910652302045098956504911923957648154978320307568363217309551099450385336496054924781318451468597153192584080882581989112467642592930253923177145326603630919299246482635512593286436407472101708836994381064331110420181657634190066760245681615080576777479677739625267993983364004336832541229143553368586228949258577653295587498621471903249021139136987684141219944611885874185167424039508377488901285003676296007503049834852370213041258440983677547893532096127886797199390080719851618706810394910114285570511533839742078127181076818713482429593899750971809031293870703146481423946674935251798264855669137536956263055203362786559512172056175165857626821262246037991114829143124011890903682487074889521746920253434214746416854478341940832399240781219931890979512711816241862870664868262061085632161253698557880232689884219992068030365264644742504637686920161618327739129539537860708362497404378992755445359790532310560998837161865849114366492393976711770930375866208336316631218418855800949961011205840181418650719730711251034471092744565017664127285468069271830223059862178598039591429540736672983522787322803612510245972607997255152935184981636129163068574459872852586710440193451557610188873678789271035759424762909859603462962933600542329776761615169681024400799624482847005894751757147682816623647449069466997669341796055812284249046001450373381573813491013965323160765886713753142306816019239199284381924020002211604786363451024196098624453602458708380792394499074720753455061975504536004231955356030827166680992915797305887713958987702919473964879312293899940181769700211251136657743967747295891817066194442905846697237343287455887565234021440080434491956530325520050363804306158375621348447831058275791261825683148752417523803849382089849242576705184660785067885263109472766902274781636050131968457088898429111520647556381009338368626031824015291265419767097559924527632033136589401463395141492270397927645564013692880698891185506061503579208449949129193876897313017762915458792195915257924975085614885502160408910219474028565401714705623763445008926360033727661941465354165087790862482039418782639671398192898815552459443277100007445279501073182845689347944273961085757989405167869692341464005937422910352326125601929312805228667892685662964411374851153139462752490023019381851029322182603704684756716063103444400462983403167205152640645874424240864343223687041834974795139684101737390960335332848723868549988796217770881683258957843154871373427254694160058605722423677247600216685384607053005263178818911453359681248046126765272149581444538105439843114359402580109866238048312112993924811906380324991109813283174900547543975059186643333028108175932151710946213302648045946359257262146642841115219577067011976608988695743361966513780965973053007064628784172053414550038472942571416302167239678575349996437779523060673078969084863222696262758763954085411682259760702666080550997096409090781262105119991513596499916999375125558860653712124873030265538267668969471336358643258577232728979647283884605928981025499033085900703795411359061295564647933937835596457825400339540582939683818744075478523420578790083929110260869120765262854882830342959674774387227859586185518850497878725618802946456844833926107463003221451146165839876323370040945359544603174885277120140218742291765020202888568641751493789682673028266027061796675434350643033724181569054482271600056016830978225124562432167060335352841243356334629838641953348336063935223735410598739906604291848232068825220539219845718561402539514676081879654644819006823143189343540587531159337030062584163251732529828421582855090149455786314501210566405364730824715937184728063653539115819050430420950679579300583803450727898165160352185401210927265460631344684304418098014426766542200835103760575970363807734322645347703781264195115535845376250082171079266109607766795466221107077075276800940520194827701266830716366598849876101698533004714771696095373526725482937499649694662757547962135288916587683836503978045628741275912920330671445646582467769264106634876380325440156919583216355954768057256339846865260834902185746436318085009430655124792640117481715897508376698322943268544688374577261693900740579410187780275360046710618573225296545497433473961198120172111195886671827437454741194595839506287979215704516935347580159486466660983442571080018944995137358836593397058312816820407367539404574292139187555275529137104057206459442766431170958677424419523689645908070258257332913133935068150637544570941433487214112534774430157873144746632714510871254252840973175198902549422062615107897593000882438359455427443776428414037042826949005550627247209255345002490923160829912226584273655007421537796379387094703729438174240460473619372943936769322068933200915468970214251222832109697232456677975242169212911621789217628705672305367244395606416532248025810569367382872192678299896975715171739954135495217118010019291859510223927557322321210742575941332748228521874725077697707473678953243045310504744864586552587136873518281165802321190752793944615546283950669340795530619301649810467960590785273795949240550202481705960521242176821636766216994213119112354180171550663126210468550546955268993884128097787936896111515240772339631303670701486569766882462805192823728974801027546253302604611046005949149251919437642673948920401296283880294771405514256000582893015817284824571362897090233383360342236160603971945446707475827204984409927311571164454944175802927252847642639933426639351398203193533284404895313177210412598865563685237528585742408918293466100402689213965291831928504822817065433949784360668376782672724485473350096213102097115736423170234215001127092616661063389622903919457304542427029823955042479021116930788094298579513713070221160992865250186248264832718496235152463442768471831851786562282705645282846808878845123873444415304568621631720457684330322019414165646787504880077018692916299768198919536656046615040801226679817495091154798678761166797871102683756563415536623323233987421006838502938128216200024747519510902134311393689550650346758895043476596801040585092134305580827162637956433906492584339478150386815830658752513327162918578397133851163006723158331219612416698739762037116880221330548117443254539650229957312947685143192115264326549702106877790444628373168356214136570865996778133595489977676811662283185712016484084398284967310015966386127561766897469988678894062170883120364906108967023212651867012243508273639826499989945065772604330889835843205194125664778924538527345121081509677625055651703388228078841635536217863878682047856688047051624124398063311346948403362329085912167437910518679200524502256030010736120767823391230744147362268465202555088892510606580694511034103190671563038241495994017550896735589063742390856496771934468829222173620413224926531950495716011141663498802628937948931625860269708164515491088780664566423735985006626099519877581387871364150365210912414597525921711030028529473896743159505661136827700121212268854563332800390667817919988771755839851564354740169452476783214168332640389743138734231725830683912194366367798631527904426797682443330107313240028434534605887328366592909338723738842130515620972278152158771017617730056308194189077820860558511420017612192079920726897080335259554693339484400179550938807854163242771648793580920590527349367642237924065424307288439356703118701670695027474156688108346840420844713492262849252900013404077020333499170388506309366901607069997941634507167046191254443325870081170783071995118777471428395883571596757022925957678270223035418695677579692572930716856454461695362416977342969587654163514770222878778835545952245270282814129471485428562053687109270832092926214449387760985741427051792367683095980156460841141388373857494659685801361343493547637866870074938275516482576014766858985750853023905238319444690433861290177950528186314390816938541457672636782337289600234548636269182565647177178067052578732075555182650349546064044049025821949419100994842744996436415831692612897577886699388337115107083888832954847037609733943716267779069549669307350328232917045171024905071636494641797860630632092333341055879340543865080107940151029478415091805367113551287398899844792178722252933135204188005905985621501759469343307034883811474603232965340156548816221687422509186666659192379218718668799554004704048241828784400585924940612003923870092011337953978772913376922269256027213102260336011749054764451419895092540734620156304838857021099997946055086760719869350765519864540565412607455378663904236757881754872120672290217280207856718895095100361869555233835621719500449854656894122836039129121194553968320149035792094610472341356697576122003973105637231425334794393295184855298333283372397160332954140828081135895526148596738536270775401855237037599622205889927135266023921467007446272805459996618228026160641075163532555046521035287846114202878542807516165898995443829157350021188862684361369249291412112720175038329061183796935262759353626996478158933120304637391483685514621605050464578532179089035965653070851486635497627691312373923670567490291399547843794459658869908932377833808431310742016524532602042035166225515823799525165008189529815003293524777705581828362131151617824017701064348603668234953827049988264098035643741133293836805112464207486188927355856816754438828032512109224291318231740270932118268315276186525200850749944567850779043700646058015901783154200122564236289101899850706502617445616370765704454747513329831804638446435905619513327194457106224770941207785037016645009075101854798528926156976021532980937728655114657102682562712783840006990699277861093539863767864780839718202148777063628576713522458300282182510589245260263963307775054050379409520690315969579867947743130062630380632744613854219410026411797152402747759034175184975694312139797529685337854632255261136023527588845774141793714726833843296996083804482625247492048381932814781277720419073178297430639098026385526986155494883125886529159369486469180574743332006549563657046204402012039174070699294669271667039990495097291068269627935850563544753054263617573954016150863257315528165195510310901639254707794452050607216509550006617576788054610228750685051083147657957348867194179169686105471283124928594124814747726889724231694613562681242870685614840794316436002157779520959594747385750320404427057030503226819695525412312797399345351764451812975510856425718352263977011445883979377073971348348122480463408588133833558995444032040836667276302412880761837689754338052354413930649406696941840489319785770958331376909023806860822260040184787331418341710364181981809279854698443764071623699541088091153383707339294600167575681352040208216958324912534074955345019465356234022714802998289336856227312424783740657406311531733120157676119500696271944097546263155009388955149456888878115818116699014745620710593915630841696452467167890051426488103019960538435505791763505948688900172418295102947868829477829934114413783315883060850328557450844398588907050054961085079583041719563246950804365751256529056658775638428828165242059726634464579690276830807753690070195272653997880527157292568453881461504922102031923028615968794666540508777362133163718328225943549365903970704964665514263859228529263690019813189052199823761813627833768939127226602958150876625132568555568387717727831671456062735629474964699530246735250638655458977085897035586617987259814509016474129419436273421431225883418888236557006378947868084804631844798397357001555397675749320967440514572486282299530804237767950067596481054574497441989926983998108237963964156383159131693014147172187343413884018063184703135418970947099325614658501539245490909248167362718040189133493355142537620772482527573668563762839104924725154914271501513591584269070278408375017361091051461758881726124179848996567898889230338986506847825577730442342195548265917281487602130359200401720748605956606033730893908616319079663150663545439617350238551552780146701820442802511684863170302974620563974056660425462602871508889057228465188355371228444612624818972214908100580935199387913679062131197117338879412838625856429101784497018437945034059389173235065100102874366278384326824036989101189114122225708202467530354192878703679985784128136512238849519186927571841492464032664665801378780036288479239491891758337366392376411009431830255785309047756582704506347653258806532430066088302354514511389842785227047275603883451510581566883665372822700124723466371888514538318800109358412116594279066334501744063767914346667890222359197634503624554294260606696597368534696032025768149028337498820699714784946845716264333867433034805822143361718701610041214721260170159353554348611592744294806653057195193900775929588383472464373467955661699566630121670744113291511056958115491997164132929409663940969326464741520475439001571792068498663582352698213978042552729808129353710821868810118534044725595797739166199569281346652039543575326509539354332750089838590108752627832097658451641239601299824987148868957284333194162644915193431085767930996811154122245837670934383423387944750673988575692907339093329241154606012877483006589131931081703330628417430024562439206187267497583904430809793622378064309137844463333437832647198599883235974420543067472593473157093268630912630076690084524526997524877225333061695196928196374587062365511738975358848829440918869741938646556933926431976041395483909431238668575058392271785587624383235399591782291407998441420991608538679597889730458652438386678962594096899898866970541077072227016773120054711837773175294367375901531584552093804581534886073945075650250954108445046932730081293417929106495329177902508670508953705323417766464678917342504178448232030495110494844671015068451825636038092962474047723027698617529142243423046204547294766899363229293881411847980062549991764972833984356284493646402511485389995246387395868285686769733367602855448185950604620930605108791645788791995133584388295974343729710447497464434248308227888609857888060517422534445375694056459993661720159617433164085753978986512878743969969330751892987396096174758272723140511096080541307371919431484737923645068148900587061050068956920031066654684906319789545449518651000938797014670163466592105532104571080955549264252784336584447880028419973320144197888453710169978560033044129587993013258283317904892272482557824860559341851875278484440757077878123868681345687907719151692655721271219734863463180072928952063915687544647263587914447786502833505780775677936252150909342207135561500865255127153354100110823876088874412292605755789670444091310203631683098663668979969939083194549437210335040643009026954800007821415475200436562101978387432803625368308989651698217254391481279989133498202224326121566500985127593871272022166993060575115048634127986685937791301324846946689390221605354609984274228107673206540444949751748448288222628278183102628937381138185325729748913604846107846018586639937795623576569873579741986462397090884448806396997589756792254301759372426565768483445721162564982956395050382589870885115269555832721080151123760675603224984058034776749123820850111978313964516503535880985360796928476033896833214485115342789639051517668048565266735593473397410266169521314952651423798342953897758943430343969619563770000464364442702407075603860948736439406585632501242274154963994817480323888581510398964197056380145441418935716615531502081900379084972619462153162393717454423396471155960317757765297699956453206363960094860436336547377870938647741786823083006023504977819796706965109378134603935427451309504727048175609879036794588496624708500564274480280695734964677221136793155136316326568105024537554145655719637253686820043759264832377190466348913794748577379313169758446922134963436500603335810816507779392149523212704577241290561556797418997455710446339675001107240569315980234790013192601504600061135665924460344743549669019809186713429679329821487149168450541393936555367602475312699144092751034707467093622059437793445033184197708815927903701399023858808952665441094856018349537026891608439416890560350710138091876454923342087274692741867623889640059594811394984146488758022377189607824323908511252886029829817408429113777240137569525017751302674238709962615329662859941108085253946441589689010145463000144267064468049016555605924961764261360988219369190009365536463231132232946417872052819008005796646873386161074822023437758219406611782961952597013458107252811301551711964854017990689868254863703678045021212435194340150155390417974144534741654021687813277755318841220593325859459162610024462819299497539932949648799497131797598736142641729871900120000955359553718403331893023597772544658045116373505139710647280885260209163660995304674582742650164196298134378661433707627205774944819070874104699130007241000707408043338592121012640427352461328616339866968079831161038537561570650454513151401919307479603189157924601180437244735085072900685455626637250552233252572506626507058953823426458355808110320776788989788577655820545484202622124353126286587814445258557583710357563554504900712543512157208029766545701813131995595733515465086786294077178215666041477762548831375073006401651655231961253547466170080100158794550566477818747704331260265113479660689902254276757144437479119903308018008872228732635316845126345011686174117096562506611207548134220732011975993142788789538237780632221357869631154900432260003254725093213728225765773158364914516148926183704395255312331088152906429192718172948908614468838432788683537013448766303513166959446961414357023958371114944824309927062486545532690398805045022937058170537111738233760750225081558672248594130992639058806823202263590187386962298601634160706578683616205710545940145563701321598174734804110258788607750347965899425747569918347027124468161170682333629766165485557071466191497609752150235594848742571600635756221310271402798549192362590966736817826863732298969860730907160704010026415294186480930243204519112525197018785295645606791442056550302570644602473975767920543825679770097393957213926637794724053723843198871645247571218374923120910463660579683457570162222798303303210532877134697598159176553992965454278003458723446407488519908010437638412513765158710513797459163019818317012717690545597950460228689823163807821467160873060014641644582092365463165826444552016711139006877143913978961917800237331574352591819862676414104373810641155828934449345939238588716414092386187139832348061226268181762740336244364585001965274930784065104440766115794000951155197326650856996489032309245795632504445981438039462179283546494382707423353672515754626160865194780794818348258559383045005379131985447967771542396152613316790607637956350585317323601674336517161443603426299833316005745733025586961236559629470763985074105413780410815705357955780972526604607671968871313106948449418867117005465013195365386885660052181933670030623971064178187702748210408824122025554729854794871336031593890134865938100274151473764180767721785631156715157376438113718006174940917601526117505586459620053770992818334410782651118308517600565026291601763924949072397502546921515379993682464929992640435431616589732592631888830749679947243541982368964621198379798893128029220151086722079955982127987367107921989876810381514167216865047291820146653618825354323375388770479377756599061961961632538895365797398518592640973759888328899520242784095236185266577814229587519180346144786844633035870690000630146543568845640511020508654895522626634755951519014350065895444279760678536986929385907048777895082159110773592379197502397698244984398020607138434303941169844770226933000596545650320603464438192337642847946836171339619244895921035801394834540380614391253794356994052364309906508806921905442517826018981704663131264460130691343276401485332997908564480160246892451165391658438940538436432521284536459775129172779786942029668922742430785786503613663323431673248478483819287186815764139239791828289704816611177356300550557441181965867496540549626635122967831410354150429570970512727868146539451090685653613127975729481563892995323405263898016984920147276848958821319744304951140092598914380103035515277269654685336026884974424058567021545155003278301798715682598153562823176093827167869840943996214302063838096752561667613120864317339996507821882585667171604301632096723184755566787242040205531944532570486361157933656223773695968092176450955067141671593750670340230496720431209075620647921932478514496890115961093232989392423610434467549664546449277800454587826829220654367975570084385859030794316712562152986580628988704770374410429979859330296720902950493636471341752500288439240953124625189137089056803183379199572098495955221273653909126028602441759064268460747381295247905556178130504262068163795600232506014680964378511347133766024720998048663497620035550659432433988974398553236472836384900502208746610353028154884963562545732682096961428068912974683643549796736847492368039796462478573070038341927365678600265596690382348570750341931672884556917687273748151701169412757656137754513059860192763156820912592733473278193633665591993391006979289076812382807339722888964657530329481730115896334113303950940674227850877127469240271015480376709444668142288705716251011439791884758064697142640517886464199791915645201379889326522162587237991709572963830861866222967022301890510452965691560974385537189004848606277344500411021791327985232400668890905791162835942279845718513273372133768604473067692569569581683007055998201606692891370474532378095519331638436469751013422685468050459559066291141686241157815712836687655638808227831500243169348415273726281431010083655193120936691981174382019505968815882788199196274814049060774179862081642779894486897633978393810473049902919423337513343178858659145874736694526831352409258942519147799305622205344801430163677301965105558988959789209218279194582783635437823615303661964144689766688418242213089697749638216360980579141860218044226488032441352214030883811066585457439933419514658952048893124264402016817764911147632731342940286358465739983500970847313284403748788884358348857199935982551257164433032436142031871640949159807916034275072590085779387631100883204703330659665043989509837987713321255267133538190647887232743603625592529922193666680895166653536253159262546640101081516380331898607968612606974575278871910881002516906585712504182082627962239200366953531291201038112089096129786885610948579830123701440495752573257485350513234471520488116727519049340726938382041656269543751308008043047485554500297774045290716224907526087499358291384466270420851246729761284213674737812298896707792118862962711172767455955644556356457847142349551166209160941791790006015239383784273382624536308311916925665137023640577243677158704513692379859730675417832744250076331035585546100165341535486391859065218509811570204290759099409463901744606108250165386921363684038153305837229897744680711826246858406835111683343952684932293331552745777731661823022077717518277462208776125419703064435379953426769246769373127992758687582210886168010440997243241464424429951872290385731847299930679921949777633973295801024825198047612136178616783953471426849513866795357669338194896959180316814936940779157269948280473460533596685339044235226086375682299285751489236044658275664513848676635780517271552819640607268713318153397607212229007599727861473965457629526991439526652532889372615275801584743689420995783732512626842995579822971072439096156369327992218824506655613673945131444939572226249460916267481659387960815084730717504667514382016766251057286400408499083509527830010803934136235254453178393579345157220651273505046787874935405644716871146788688056051530875126266413617922686978211469964249602484035931805632830334047681630829170506552023041355306508347455266489947026553474765957588497683083121341780879065758295539625014101557670746228515756880410195006098365196685600061332814276898386250571271882300339295798928618422844752756741848461435376618876747273288272923609057741809924167273010110656928603197080903846253915631076125251834436336599341765058045343447648203082009191809598785404239636904839801841758141226869485242906146904327532811684911492733560964431261626483584189784939124831570781645947924117474692635137291854766357115545751440838885092760085442586101867598718062388408104071041264292244861091779261126369972937943964960366771483481913958791289356581082981397688579425815697892340888514516197892476534610615574212322981669223776550206379010357950042304294125465304449870458062215440074856905036950003064053303298833252657711653930153611502670235443338880828845715619011222423182151337807483908870436858256664394793190953062093325120455766094464126561131377834075542628397934592825700538928693377030046334194674901559147552465314537603144268499393375590036118206212968755289057241668857710579918045148007512979867103686491262981432772284982179627969249266529042357281376000429297091986198080305194833977966936446436922890503143608089951944658255861413626077418966440474939302749854963699437987813583712493707425869634573156783926119263707608836764271768434376035796829723936022881270983439518299549414988102984273753499199876728240879036449310476157646836609290233791289783641384229599289368231559757389649207925291178845425720676842771917396588672900408871566297711507708075778617524367006276848848526711704146778871414376763194625339955657543378740105222929436032624546154778921728335404122133393960113661712974984791390730403056211334189305898845782060423961501970660299877392816760571681761142304442162673932263171412256180661345880079764121846039659434711957801479213762452306478076730204239879194412576891983853160789347532585222139356808735334150893280800083210726684046614357896941222216966919279367086594824801484362017140480338108145948179107860249176580063919247233753319999555312633358997267104376842531328645501631725436499854186200149863366638484651470532144182031416436824442859260665367106516767584746214447740846536582083301620626661137074487500035608183122672165402343181161641889602296579434397963425129289924134625227304503163692051995678833635645155286802652839499496116589025528737061778953097544240493477265041622338723730109979134856834557364908015274906535859128857008956200095413969494964800950242132808201581995152863003872791685695979852926192327634222682974205047671691075518171977168260209352940885403050251003671921751821294372337542718473015402903790301997720523433554911341979207312746531041379102404569742975359558909844972069883120488504754461472418024952121414359893170079163924103382600605989727481879994379760265261919743441497501429685763500238716588730370505364504543817161375265339717978561039264338411470755081207930719562527265745228649929338641623051266459123364004970462174401196385637590934077925306934259315858893778793307839119280991812135622067019351744278312343991584783174682647272131149231466664460674662009442240404302026995269505364481904125997738168336780301995281246639618358236498322026521160972564674896660882135501299167474299927571523369572694526546179466637171649061162381183491896183985160469030217112350879332965991550958269428201780375558998067399589756506812575013256950795174730829937047305202704406897560884561307253008932996413746193444110247011816704577233561791762192134347514277068927810745400755033455307178679484379994230218686779216483697647292259245471179742659847366113484722170196243211834102131452678880584961850608994153355718807734371116332822295858204613097235916035008805742624123306219079392329162150254610013571100201668359117097901880814828967737703854565485457893038745358479313129141863730818320093495329953187829286074300974596100569126204694621333270058519139023775744226039805878017436048662384675528935452720123268381135759999063601535326950286737221790910527154798966167115807039657285995641744788109936884864401385049834887609544262617555503688200403702156630675445959850111946879538873236778124180775520948215812632791231637638360273184328378996738115746744747759699849104850549888374242659304278355647255024125344550035494318508001367802003374011000492462322137029807497703920509719809989980020997023562115876549197033611370483668377890886880753700524248194817559885736857977125496511236385124462095367222847802842788365788863525836879156396587868437152258922841861306742111486022026571906368141341828695596918388974324658898050034795288961506436983823183042861251356790828636541038920368223269081646639416703694450889479749593246037282828069664401657640563732293194266812484517563780373728811354751904316350202881553337562534519859534184273924308962529717189223900645428709934482885046196377068160667574556748355634076367500721322755685845300472417807299054493050570746941900581394582169045513840914123586819508595766057279131929309505730222245646448352687125125858382701359053956899346516148786669274516557088691092939728351780410064307939374385376520828410577428016178035201437033053067971794083588454135043690119797698609741744146126780357542412183624639795793805551295290307061462648504452154813804171398834504517291068649233087030813529736325044329957523712865191552684100392046502678474813016518487161294193436609531033926468751689264761313707476431882533128601781457822148512850176757958147323014712232264912320936681857970994751628927840358128419249080872600618220162193224750300009395484586846428788119662579968377781616603868980667123057060673359738919129759374145127422509358055667420818190504141594231307848536048995731888630533394105200475832551978081652671316327487501466503010099520122295122980079564577254650195261458580504004660507985669950341434546588664709641423678845385940921890421132174119187229722740566197850764434403456232744825194413822108126885989799311986164203756787096219136077542079671734959781314755082183470139325432119452326006835125794189028918509719580246532920989372316320882617077855614774839748770405766439692781944885664331951835216621878590006834412496582204570798244905400779095930877516080858129424957905907686440996179288608377174638008092603326309633392596892636644855921762259418243577412811471648835193914890118330075610391284797176278148648864431481705725643068399366758110364591210761572935868495483459406852323100979229491815313119227336092579617084010159981051910367704073593414885890569831026054179340721387318436455634653682053979656851772956523664523837300172385410244844283616586269013457598552211979293990800050576996389448711578012932616734499758257753169638006762961547967509764891530424674390120320958383170050109985725153148631356435669240047334402094025112384562591102384786206351301836720398807818182696889941762881250134537040328509478432634346322600131292456830641171970276273680776783363409712949186528013468020342022843816321603464517933545315301269043728048224404370433004813217372552174893613457279548479261816129178397891345164807445410946691831549302849762538429256740892198952401365992660506268752900164139855079135888207236682715767658332702067313520994317951678732989289085053156804920887203358263771198183160731864055668189659468355823334717300851556196090491134562768663410407794582838193503202755910684938083407246617634959159915884151479544365861827528848076570436174672393339420991983326038041543526895841459876591389404841033911914031479074386730509366289559253119571457456523449227162045902731325166309015029632957382401022882826213211007831509729853156695771181884543822466534078884641685572424172605905397687162205830513147921559645859850147834289458629309533821083535280039339963560094301121575125728281144074698960943073835009860885390082456673975554846676990022813791816166123994880856184998876516042670078744139521356819003656488000679227199132844847786222528027329275209773723831057009545323710261152000549420002469009627394391813566844727506229964437079877725486141577676502656875287316868290302011012972260472797213873950026070247980746515926232567751520502927731147575742603640359749828490342007360986428750831575939998349511671159474352061506292010558042335127132177660106091663080077625179547318794001084216304741978714586054298533308811557913035780589154478105476166365939869429496610295860620030657112731640799298067345932663471043106740205336322971653958216841670429035392861407429347098414371950130416288996961839020855707320347865405303238580578234198265047175568361206474358820017723260398615415661408597113370539778026831419866224893763891263808925714383144096745998677139454816979036156224070886939339833423075364124365045712982044377492846130983712418011778148810166743284702017198680480152632862721442151036677400576575849092307227308649470778403343421748182147790385585632915743520229763348868684345993724074804042516228748947818429561778316382259669111799700960123193406428176294354704881406390027801626600951987736995132808969268805122796857956534231203890049457829414687024081881956721614905179537190597962669719939195000051671259999741511087181699396304944339839327573576103099943744597295448730926977185896409331089160567147868570192695290209866231298753721848339006784083780761316206061211990636913397454628164889637285437442891454970107136410837033465644975489637506290486173265119163729870192912115016585583279279134261849956783744984434022915918741647733462669827289796964270710353979274938040858163077113614028637387035298919280753864351638246868028507896555383570645419058438939649069690205891241648616127843858003911858387742075247997859810017217757691945422947092604392931971837510318543147001586256768572595504028822877462556065719879637149248474403066499379109557216291303895760010243890402888785126278718300780150597712224145675125062567223448085793572781540080624953740143786789485529284400658623926782524733257551622581511984180403130028131315005030388986297697774547084414703929053667322451527395105423902977313500588379019800876468831857096381404933280610875490331142513232068852129717285869327100058009333473647585212947908341998921205523855227334274761221938833391702569543450314071267769361204445963842792412968410737889453618729180861907155098045464925021558310607611706329459478054764445581104090027433204053568828639113342547488037947060849963768327093143587627495579601965570084055230281311624144994271133485885950379608840509830000426641552958382261719802125641097012154101201096052000083835310422108427147317444429379281248590884464469250674284073905844569416652837927486755161414727032940951925789996080824246134476043290892181824797883145209097474243121484738997511161805690697833061215311603303604930538967808689268186982625259601409108284224543209145694011028156943220540911902332271935001403813177559895144229207010380502138798440218973364381770704282310850655191601703636772793741038923838681023778619381874116478754723889207140325888612236443180049940155384848027107534319339184554771849150528418517600857689697034639707305792184175075993529527629430387622894781081295385373613423254347117831703552866950943459363416578026867909462431260276404170664748571349063697733367434418194013381903587337197945427990101198596620845510397678105585608061256654859516903425547582409710005892958149165564632936075634347773239019747103042199869243760586345936687281866488001632753249379280598429157892269943896987019298268335707791842176403990411549827744800416609307643846053358400428676320519025559191298874841371773507564577066592997942387435570892304578847514865705696940582293090852946708103737115366334844224498839554299431346239760581736358467834295307785542732062756330801934800020320386525832935871394417356600506625217768231917343325045634384020418537678128381679306624069979993294213422141386770740438172505026768845274370320265060697617485205429143442645885573680697987083410376533740090260169661115163353957349614794224196819133719913443789972354686533478318661272097090308706265899335038106969546127872274030699701631921450787320356367495527817357520993925107340997187314776344514762705798752526228460915461127162557018903332775606020393977677984384800532430330489015127682715803122481886207658670592921026372555571261403943976790522922459072068280666586425167733546333639058771721752844379853869495652076182696084440293339881070516493378683456426318152279363411964317636321921923262102979866623304031285207994851736761996359076757004624361070281191082747383619269860867364443318133294367412313869769126559491852302241310522294926228288492418747657607307713664673651622760239477111099226245793812978350918610547863953456045875238239657265088968442348259684773868864362695202687735035348007772523974711042022213225905441929213766937129388094005064670832317543725161743527946174300952032978838200979834153710892440456401679398969787215678583268750267917564889098704900863677756274718757170536192108283971064389340865507842744813912330886837883085190228358130943921209651264289957844144025426434607876754083418637522082642703200929747370568903930244531832458517417116998632977955097065329126893936709879390409589612644980081544588580444701336813723461030575624362896124667692123938993145930973534588797421444968559086405056858495052239167800213934651886465981165034675192899568031382180955218640219378709777040744257669257191669612728196173708922436893875032801841148740734556550797949133355873340400665309695244837067013147446081755937678525822495566122566001612069385328429136305623062610130832434905343061355144215391554852112495996432626856080336342652495081374334557713694666176941022464712499869124880501435135099737619614240635689921630167779134425296728577380082806231333101315921931384162101150580163605554182563422645388751551594355456697989712543301655883531481620664880092136324567845770221293037839322403296376916286911414694520788393204540732799127221081819163863091563547737878827826614466841193633759495228560355177983363133893167187257445629517091133417910859803461245667864854338806228915549475550819218068858967128789511348942000468405193197087252104035626735305457979174276907841396762808800190482886879870947947860674709884584874656154828069718206480089107518084650246300817392920699206949449808446384992236335635009451525006104535220192390690980945755848828883572626563455027658809803923511671582164932531273951128135435930151583299215758851077653030201844885738236655179299806934547866336057567813366609568758017656753640639270211003757401969854608638693606210962827486320889871295924859101105200255282614580381873864369777088665131874482633915341001088309283869457826306840782793478972552738811584195246153585157701244020516333891513166344522995113010314852610104476385588833097793518235693182932321882593208333088380685938454631164386484561406531023821702284819540469237712519150739339066344747512810312531759367525717247474495830519389914275490055847942276718341840995305229584062780013237255189534398554196392283152615751227907820513725577444476126334687053474057909054549035800212549277139623274554433595294396508881258797687692558241908533599440203931318590100759282204334502342012825897412476549843041547391529487030033396834350795224465785445749809855167689854857954631527520317150736800099539256740941499775337608975117044042737712294863498608667715860107365365587514483819885010439859395278543342089697373901665156958069670677991391819807915979929331542893096053718645833164078963318688416626806799588421226641373004268278219721619472296387351486248127160007449156926394716697768976261519674810602398765638910599868451119083649762612924917007514593628793736949828483044664049215924737728955013928535004695953800723559946337310521659517984989919586349263240627143049463512264063836796402046315830025430254589360494678566973963898511828894911507569713133656692548703434799137344604900058884399078134795036074485274520700905912123134749750097627456968349349547095142237710578816329091540179862013253887885935690272564950469064288590027952331182222524941673115478296562592131553805991356852645601029553834429477708995280370821123859815929851657228923160916107040753872657395908822295099310794927794874192027201891537300992857742274691633639982423068787735403524974262403645167490218515615467445762314191637163274681120020389968988508370184017002982708559630069540008970820841403565685402054317111788057856450185019912161730687926669032379958403784498768539770864080485244300120679898073305707662817413454129912729810136304639214843748295440094521901474002447012907109704844575796328394999031002732778744619543708305141654840767055378434202293693100330060698404382693593194470937977295948211984788783321013160264731258614769095262011701874605114665960978834462131446179742930492650355399867543546490128680620304468249653691716683059233262632429153014257775748561831338637683905441564458552573816554049135762503206264703455543689943990069078170862818082789232734996500659121935822986933702079829486955869281759619702991995063987742720866074655078742528330796406587785698042086598323408566812041933646125677703685886855395234566396017002740041818182952841731406625028753321154967821165215026703330251074920450608898223217783408129831173393986519033736477668500668848537678600855079864427917152632787759779827751568030239392972518741693180297962551568831858160642217417825503824131956114736029013606523341383184401944826318341557854030098307631311684852113153787569347741473769281724756095824744879066241089240759925911773915638273632650231208967119075672807139674190614198643667549752274951397519213999935313521715872537627845935786246611066085096442878338271308044658484014275505227761893459187141883974073782497319478792055878081816273341044700430498489221693785951347686233230680030481912344528344172969216726731016458864209111042819800937038489283199035713373445280662036655941733381057471240628532468794113370600463288627198336240700925611367929639531378330316140400494605853880768773437971020985409253096067174359869649663819471895252145269539973421998754980921302393115699533461795739277282275166154969021530171967423827148117582803395436968485227332367138026023216802850636061276511922535145716801125329748204505041892578834583790356515436860395329896021997420993713607295775281424805928027331218760768097185203015879517081205091057193091157575092471556796287921940100105528112232042121860713396636813912177812190873168194378798139726760225625174992540362549609518317878592680911703221544716257495906898110657838274679905266834339364997916785941947830921379696277839397511962095488677512343391700257556019936360555678643153230566346395625894878391079888350840242216934223912151994461197322741176662742925816793973858432041028055929810950153357276213644520757583702325357413010577934324556432372696631138683123671618956182159697134961672061872798347952011694711427582306434753715771278129423714261370637141460616534466546531196765063540454618668139920427708105483357470766595688229345705982987335969763060980914897840519761408270968884538641804773824077898738249473494973700401535001353712395140480528947517642501054088997220728017784967086303598947824916732800387538503930959726434879917296916341174264018151587047064098216510271022769753691796412134878852859241931484844960273001803062705284926612814756073856003781799248677674850780514460523382687088402072298949657739962346291694325737527360828288286438272804492846219428339214068164581062574037587122948259105041310592314004980607424588157387722104959734440168603991561087665447653566863431120480465058819346120790091111181150706847447513823635695429292267377094070545621568633713755171670526954854205938304637827313419397554657479238149356673398954524432328933943987177286469721706746743451083204283366566429040340436936780567120822629211583635372953042079191457471970049493773010421262802589599719266466461863564614674327748318402559367005850536039441530568264331111658220588692687063031587959550807041800693552564957855185685734396051888661438911968291374339573371779325779820122085006346492453647489288981181483247143838368493063243784039704413152598582824952141009222724653581312520711939597249735059796952288813160756235592125938279395427787400432062455198907411927664305576310207645210968958310089897946528542820615695841104322427888430810487248061455741256662719655730475031468857752021963729808801838314209242149400583816386553674325451945785926750316056004616438906432914152399705638418139920953187302950418601681103109698456413998442119675519432513715102706133246166161134649427469620696553297351930881802232109096917013688223458434479461087818918982642539001455727751550292446018271210471282184971011212020621049605236872730942886660368371513635977967834313062464520891669930145969377981587857221346861688339802294341245201561273204843064450388564319565972414751926574414171051505068240767205163600622892131737995665814913163236471495564608312115767345777318860323173980430511162191819350065877208079554616722087170898780683641339641591047250425695464095090586574574399352989720891909401920162333430852527177243016423987489993306738146233030314757373582434036082352163089551067507820953801181911279673343911413004791111975018822884620876099993373377834494884806395289613336610542786241078814852241227143319782065218839999524898026234834870422424303475451837420381079576053648084824916196179768084047974396542831533284715441128310536704956789452289962606646295712723784603561032359548198161724017374983655766012155231261469361457657203784592758986586880940400889099967569787056532140227202734234540863392175220901102327792071695661927463632207217489248162107228661814521020689997941495667321725060147344265455694258930435491593398669476173562360893147046572156782310855159646753076625896272611455596942803033262855032559620691276327119021642682363183651009256794444668301737298713801136115377228504669875117299302155785176247158673720749745655754357786572237377163740608275568289322119756658092325554812433604165662410017534738533310554373163396768341475902090371101422204196944070053970702131534946367383114852872577907400198786413963802349770786857451171580479373232915365599820045968450279104014580484308896755907499264104699101879346012007752202344208897191983328216080227764086347872309322197691500866497823660537951222045060662233672174692183316192987459668963399829942071118995211746254060826910300772851776179138858408619337313296320762389617225722298305201220238432528542146731754925760538724964514106750758374237367883351970504262192201427598214923443016760613571328719072309730432097978962120352104969887891593529025539193489106573800006647955490642000629722126392284491988381852859076706761459063129034504003674965143426963433823513620658489203131354876058704395690207736615691025711391475065239203756016584048990213576383080582186034749076339076037288015948846900947367114387609575365298945581162856867167017977895826763383711451633062936794825591655047388347261558923645558420985003719841878636124519535072519937953140308702581191868446540759876004222749930883574985464614386870397182871755589538448218601841443324696344265705041365081249945350592631344351051306047075489439892488164394165833639113290613170231415230872567819016028071939768331240266065919727879308771449739642534572974531294695135366255098935271190263253966834998629296967608771874247861906129017417760166021380175404937630239343954249052748809594963722349578937686798218224679623337485514611150315406681295204972396297232312626211530312129691831029439282587653971315789803136741755504591293934095140805457645269570878397711537043323203093513441009780609912316160064035769775140136168988852235332506666656604646828304935328070264971221015541556951391914199385765548185964312121930564804243935555796623091144894677299183784046290450271093698473382201923782681986722125524938112356959849289911604453287981833984472404332407005001690207408913866534241736981781413145908263825515137943757321643438121963993997307469360136471193429947519811069778007872181825193217468039269601503305409966110148933380497365159651889091039803240377144181454402810610078803105188664411794644140196746886537221567558106377962816863138206404910146733713855515941405459030474408946165525600451582428065541474811496975003628640265688148210577353781852762623592522119572738452968173468520768900942375911646616299257201995517752969009924639288752761832031205019956937992234648920279250637635941547438387046753606052644653094151378494362923384228857840095624611220044280552277162822743239812538135700831211523144927109449036629371263488795657982255022582523652386372217545165947399265557151843210930445255055847824317389812155610271207842177164951891187108677162507067087135878996696815094423614905944340097823057968914661205347606336850489022356785376825785819969025282917459710124006563868396918851995403513423622271027990721789826883583278970203468368979205134240950854145496284232555035820985861022380934486350514900762260320930373102010392037838157219848309735024486285601626302327524607614959782490539955925583969885569715762417745508659153767103362775620951939643373283267347647289849052038960917927716042344968753931866803517074878535357522990835016963043529910902329173687790180695875819022060609868104571086781797530878871796029202504570135038477467830544233292631735166003607986301995075699708068193939055735572866900297455428555614700792645162008773854886899927709280844335544389945013991098271876576803716459834757426874850181433345179419840987333501825098103933807968299410348398268011007212494627862287702520400666809393526926078467823651932263484477930234904660776931226520198475012407932331711843531675002708664202886003658014978041949782552006141437819657454271038495753421002134033032669318641121502028903664290714703865435710593376790139533223839230779181362942569172468856799750827196318333763111341256228555969590376689605715638421643391532056601632909834253564678652831139104722420736306860047448020140248136058608969932658825732205661526452505412319702766582525443378281669862893111549429449270055303694045196385266773123727557644566957572933194370509509060761664340565091721714725844872179498539112053700134257964339215099319016231729503745435743389573451936983455238716843510538665849442755876103936122820583737713662288026991731314969748180995890424351721619046458757749329422338545781934118349365008616811355156849689751413399785363385841089844661911273827376501143206693556593655959073026853102817408614109584020649717648939886895898273866592411613801783712352928054722366306539247824763572032718760377550327480521828897990219307869231498358713934121986770833039963284405146040041452816079406609042593754674520892514131342948021890940123221903848710063015597356514148184104682439135487293181294461070475085462153471141830134965648085429962686420942380090472735666547896093266391564101199777816177029152796271726856440635658801264338121933734742395474671771938320181669258807066553096361981269721408009036598491528051794473506381517071852605051012654853540361708789725125967928179621571397152093786871862207571155592273820972828690965051504153662393970241593106507152100553952814840846593818090259718575595448596943792224678430681973053392080722056693924902316551129581144237466007085948418049013558602958216850321730336306306970767749300934693419325277296626888511807083437557716412730749292547240167901405967195229024770785691794096815255376452695262163966141667971984098770873893571209739372474968117473288399553634352918885651647427054307827947147120324518417307316741479364973138272754151590363716122720476440099407935348746496271412008458700825765148454331597506444000473633468815976579239078700856372744823855811005504959018608988974440488849697087971804459624261465080845727262321460004596306569349934302329834068046221674236791146581626993264303462211871203400980521150244420144614857504479030088656853366392754388553106527825023571049826807047148290742738057432788254934430673313039804863329389063233662411123726635739621800225206185435607014713134977528378974700535241129197146018241732349027797883820037898810020369502836625362934895334307886615773028622012890921457746936853661326319734195768949040561307579393696741008006855670370654279809313337075405727542969298966097412424503462622448773702595582007340721220300986299730020680243968362455734828833439085495979740677314643964252589855811987663910897694838079305201185518632930053470316262793068736658812265190917875191952275037249960154793709892188622600945134754431243746871133169177210097048655346459926047229800166825554784066413442732457789715421206143436606696169608212870479635835965876108090976213325438535576085789246337288436131644809448144577963339348933422484989867633892268324983496201283874098037621735995606691501657460221385865157345974420166929508486955191119694130708822585868784752441655916799088522253603510715602562190964455579861053098383207473199182437622361019405436877587429622338093076739326587127385780562579808733425669197452525329563425008757544418948163835826106134556244475956770487285679212263466347035567870922589143386689044389778792139547778370932383811197621838025720122802732178888960607189908502366291819171103205074309851905332422116966211756916271410067635598663894766576636362777959973660829030157681814933819058592769113808819188085107712980448092515747043104094405668921447473307084126770790988946139372855293812674390740861426951142106861713735232934194133232872737373489669059394910817173426189999555892380975183660576593301267573069364362787550393719275720332583340803112965946236230101165820576899552641772021024338283090405511340958104368000700896698660617551160690856689022596777620698793087563949413245804236412101112290544948068183772971531260096262431580074680888950203742268649610988643160035835575246270896058714863371085641971791745479931741673751323869255608553384716521059642870907126710781672559488728037654956758773951798885547347145005102974927094856433288638461750453988628850106270484889942287843119340328372456802020983091172710966694811834707391046656973377001394773019153173676376117035300253745690196415525113245258141844572385605909000239978489386933130373148622989284937584117387934570149930369775930174893229656444858055785021612847303667687464268625159140487456824347008199079143081051672984707751046383244356959142371038003048284288090907684653076019921512785706199546259718847334686993785877890435545987995333711024338351544105618964696477516705873487604573801036400261956370986610738649571943416136279759314446063830930238813737987567540925275138525135525818277337039401903631801387725729199378790594135016597970916133925951629875854668278294800797374999602198471448336469366588472628038775743581712176869942471548808310936531899644920521566836825345745276278543500994244535624183326034520333553477941105350327897499069331146117875108793611984760606821256790620391781823097465898816072134751969727253648071621135149269936118946626372715110772655341093929231065347540944756405737324639167540617505281527674312156253189067360854471178898706188145466556178346851842015309812849444904989831179059499293260412216970241590080407495439881847015017888742079961040373195765166972536297862942639857569121469527943042288421426663792240575018367563320620605655605674642358202487321252746213738844742690743071987221726585306842686671895379213015806409659540729540755983375973065461364898678639562411364786306142142388310574130960671425416630730602596799336402415909686905791010992231288824240127511544520259068242827657803357006471957127289511825311227428082216651848167990454356036446439383073272478320571902805726257398902997680538038490538526248743240321227578321969400602465686760768223822636761231090895695173956804273232314048540377007965932684273280263422834634049412165028119402566700603131783114241892427761911164881428749857476769302721999277916545861026974642623714574330969152929442902994491219322541581033820802206706660142345530050544741699394364364999254623059353018856705787401752153169108213706930786940699030497395366559961961361975098022528569172776078220751222070350207001945406643223790372570560447202946305205408418002136673467548154270950918315775485137450816301612805982783726605814633239946977387212322878849471638681150908862657582200083779033271539891978517761411329861801208379253895823593492868902896878500699690481247086319602905251898562619363519213451114563687204057502293622919605390591487069519975651351537991337053022365924050988545762649466008419584222391552990161097631718851723295689697272646205367911167831360655265655454762596204881207463087005592822462581497504846414806826199069703012117955225103103999288402166481806039605033961897421650514957185387915104022056162993529042527456382662861288775657062430245773081961446527055073921608500018599559581570601153917402919555867588763679204910295910761982620768826520619794576125754418709230425243083662874203527255551595194166033540282886480419713486268497149896739884347453039338848342698570818902767620132897664204440951993138067042127359872468152099604772552027287903682256754394689485869854473442093529025498700350913243918039243167821925176514636805099591276144110867131960748155272961387325638999698237983532487095222244785910154383664439925146944520924120172886975588170396083705234889894448702594594946171622614488682904524639646803583182045277277876647161416613402888971113979170181775240146500238398818875242579734833263759381790855383476674630007738380988514180187665815503775445062906277666569015585487055825669768760754724211485533016599189400904216315426330014376187859194415884198171598719206703341715220595542793808447785895721580642920214986149733126192225790526542603705783390813345407646329158679464979756864788843575413555110332622630757871468677657563414557773659103270340605417446063065030176716945303035265152322257380461385934198323774731336332568042844667963468211050183005287600379945659715234310314068320126475948925505269045046742949395599465110770717303673791376382849407777824773596718237326083295589111432357924691950720087625381108735186316726442757863240981576290661905578527052122501823576301725722046992808988667884552440694541480841547755965792814761597655751997412261936154244158866331243488446587848815011634979506293174194938105682991900060619583491880830219051829112520110086810363605115016547464092225444715841439457592410846035638500252788068499102093894814344393075371386546623858035545135744155519579436068632638028774258967996221636984364300626019375657924637110036299158984364349258906097498906547643229780859188525623948963405810975265606655388515743469815065543837170664807423865936970754100367365210249668110505068862294998797842399894272425088949879483796438211457211660038280662333772958292463067220399631471523744777404152253339420879202794448813725007925767882500782039871015525532276164140171257280276643732896348890349055653100575283050454892114628537549746353752895629847832113030924973681953866651389164331283249789527081116109961449758941686651922849569622031252038414715765355614105919336902753264132978156089456764154159684869348551489248239010056505230367014374946148725340672474527942313963324215580515245878068938542719060715657927210993867793824242781757687471107417984149058030300568802172329638828065891416961715833918000345092262826277576789681467511082795954702602543272342063920908094784686460935730514146864449545534948844183580102249596681890873554633027433803437529676523227873013637707880616089039340157275371055347539312473006287711111741274997983586923705901563778072976575326421701839290938877196506542972419191798121324369784203768095221613523000949569120298112683300564924777112468711532047612674473364975577666622900704632589629251393691053323301315281010964784071935366467728754244501526067033113700864430557295781056687788070098402181174969465558418725360212366217419778644537006581168490513102896522600936639933552377702540303421766547245528401077197991314007533731360397477211856817310800337906288154646310802619904540333508021746670856580989836281792435923869844610609328807068281640356604726511519909321252010421687760799619930302036982408668205433271259272725856534671863113074412941548375222098192188318738863686842139151775349735116715946251033545809749516881817386854107982387017176122501502347544624455384898284568345840801773861573035998787105414811635698537300243387093661700085427136460785112757969245117110674815998375353439574927508850736052611932466498477436490656978416432359899214132716291430807772333181171476629467484209873843659154965694976181134607198517640149341217921000105613521243466640592798874277395258763168366637219362346999734284564709088260179462028652934950836979994435287947305802836252339177228506476037255793139611460512328793141340240066351431301243598448119468739165470424174884272621048634143763250398113186394533988261594088362936359319767355287098348693259801701148294760350738971521204629727528127405049291926643191500938847091599428233097766383682293447888429603962838200320167653362010738529565275244213021053947871382841577032285239805816866434305188709718233024588658670116979864945809299476760354666606273479127312504840070186353029600734777167811559324832479407421350536094342992675296907710805617462450719269908951501586273779929268538742362986010505332009603450325079656460377926657548629131551271587998543218907427655078859820001953318991210621080556025506927538152286173991784235070399361127328607705002509906372667165238755797939750561819508649413748745068342253563444866070507934151362588989748609710748611889545740146170277680762333934924739636880864938013398780790887251930707655297454029472124324101981223470274881751171652608322500972315148547020842263942286527858915933702627216008843640423715629569888101539965300077192717168034504135135017926481332936894671496627060800252551302006745740965711592388224424330495568315860577825875264512747627400964710573110552131648729439934601429008557013984161520731846448217884301941389424864221802658343464026960819844290009082627590572413647889578616957670481336495394135371429941131967629158318995449044628339421147117186938123431150589150703973927219872636334489207213287521498459048232143250624829434894945494967254750140381008490742798309979355886751294439798873587284645486555010461274398888098361143094798818936670830463817837586772317103955787051187121021866083339061320937648471424891630689582602312346852622103227938532730496465387258364557647993793275464468217213757718429800171669541176279778702914257612688559691743596631943490341156148523472286373622183215332023541298001903929253115796058564833376466091599928696792951580818268669906471050106496519684416456110270152438574999409193536584327607715442403047421077263406495663870210571444505662903832971860055751081934771458298345749457431265458166486752120590358177869960541767419725979683833950874812070661876954736674748319403710992543084329416784789887208755229456289818290882931823044043897599830462328078708733160603229684187210187597509844869690542726672705055989495782493155329715203811397330573711695104588343439481612398489527409839064627532002121937320382950280848710557213391924718350456677333480481453460624816285619846657042473383630588318039251685801071898097355158892103406682226749940000383272721200365037709481774989134702131332923415130711341539524942357740758702199106847549810444976246230914845871417470284460149221966486126346069362884524810231578159389055850867027501809003951335962959696506093030079291641404000750611871286488956383291272681685843499558096118886790169310380316533766387915400901947882393142482210359334131339734009100424084146268047176837382147985430302113973062736159332789895684324924113079337119600771852995480235338283344426392185266835670142595240795132025062369552866078990226207952428576552920023293860848218011611587033250541021921990936181862311257429767661455723506134730292960531968174925095383083566269087598978632172089585234163938091503025205757061281138109294381643494335426597281328601432174326320826320012949933629651928800919768593668633614279575753564944066087584820327239313859649659613293331445223957053378124348500324217866785686786094117931190136724222043295565887476730676496539099599289007766584780352330829135100505080515349237116050165651724236882144747486247024100452222850323618910662463769547109045155226525003621215504240877851687713391865289674943205487022957368865952570293633632399916231810573466666218016406098588500281122424436027377409412575830831096347038457323482331205324354410459691884524968272241227256353238543540508445131377069521028202736893827264130864201993988136176998180891073956658856557017953011752768298784403052969726708644924467545796150891541242358841086602797209462168636433532323222915970849177040877569468228230603851830930680306656345414839876797437613216642559805501512732543149343531619128565150436194278629210097802638277129527975927514481221686369472247858248685448576757328910243663179219760340161720605321593756025333047560588268253092207203308701352043089305297160272216491813512831652194124020180160266265184038589557634754867113835396043919406518345848183229499691296717994388732368154375186410514563047527003504629088416827564951291895252943401833825779764817104869763680732978541208486198703001244525046971888044572910634840815177687874993153352624145257673668232789362697642435149318946632962630803261589489619076124680636610628497168288914071559874509456924962259153753060204223427066518007835812313125830046905242412177211818799673176369248558708444783985397691377329442831637176471695463700795935469792104561822370523505045522711312607706590072576272135939988484489657488387908167185989068391701034416106364887499794423434239281267777198159204494837243962176270608065578745605162340304917412739403488422535469519895002836663949458190891634299551361021195847900993558057738422029358102056469792828134492508850157982743996170247698844921713152193024189122798123722441254706941979369457227815945604613228447256506624640261397114243978297521987919478244480385787001432392578729448750964422579041039045917363423088282260554400676618965039886122102202578540774058858817755606272618955920847289819023154279591918711802359515522512430479936492587550662595809456106238299478018965983195202616341256757983135676393659303886745093600193082644643153884817019736421514696701807191583046050985548521203357391462753439275539085340223169795592252400298882038056346900032166195989208518738240448335078240329909299371284149428398135942628447841014302284932656969542868018926354325088506294966465929089659234169724185279823529259622962406075432376358474952963849007960353440596977645888842324360448530738780189788395233045792661846655490870626891266912358209083093379818061064726529474279440687844525681507448662133264483568505698650251859242406352002911696258941305705735994596990319898995990313952104360219154347422738654187787637096068686951343201723412605492028152805967290448745327173017406549290318214453345783160807128955632350699196406009479869530944119717705690499635688382718277246091498976429215392203936006261445906014894239655574959271298003870398467799940213860020862432309169357045491392430831878045660326011061908821434835356337043623474790653858940048106100960069165074555184744269158184740316464101780588674137913804248290880543557761779629542902700296376648911968523266179739601227151641015656274446757555932175734322456928267871742635544251163754727659686654897927570145874398265594962121343799576718743629662471608766989482500784997883812215187186443973472486619168646954205834515275798003529669994292342170906397143120150589867418962399229945511575269589853883240923139370352153871449626268313661466074686830342560582657210815480943220733821437750163158419655278278590498482417358805755291834062522349327253197044334171980444639015389445782338325748139172565787711546963541777334604649720411306001746295555811165741405286549034875364384439637617150053103559910122239204982847748409011845217243363734667580210512540166778935750940663934204638428917791112066552532936877409441887695205805321142021100514867483177245732083403782772314837944897972640014902959797303999775760818482903669905720001102906878978372506203563672840851649199433389428605920672457277333302825530307953991107622982793869471954879503283517438669165369357710131749439736451801619457047862976178361855515650988469416038925218071673822399150221816625681343995468700371886843635446748464523681338533760575746411201503666783093959200526508501207525498902761326466557208218157188094466006919627918763440300896915249590146059641625812925381959921564482850544364463686121210461705827573451152247328233291912883453568696308315252896128817282769541157245046675838864487570647802417860555526102331560975991489141129626672254033736601183993922496932621921618911055663616252008786965515302884083385487611637293213234348521810662241512786242586388381920760573623135512934935023623217420153657890246810588791032713486688420035352979529126772497595261668371956320234801599424144210879545515042558333315293973335149038662236580321642429264503378943428051902456750945152859138420145291168757263775543998593563789350142834952803561672819793415967701773105208541477312303069931685524350895495864571587480775738386990579057844422563799050324526674520099975543028164693519790432605218575900301962245998147685221273973867431639426291724279784761313530032262615565435491471029982414010737914888029484530757812296055184377102869208329900682073530216612692613356724568985499743265386489592342214712747598765259658734680046471850681376888529913619794511623683548077733128133966428192988684032031257284867905644583337849548756215635601616893168674392826517700522508830786619616483302793395418750010936918508958577081171477338228071420052173732859196024674665892357916454877489743821930216300085220348334988844260192365631649029357652402737199191656929206455327213294717308563087870879740379054765733171294498378177285848959173701020379714622340867967863953995929777577747002017981018342056936890542385227369810632846664127859267719660841994080080660896009126895258621222297554667912025844487843714222871800360058417669310574373475893508253542831488764363906900944599992646084096979128085633791469146788232322812714034513872168093341802593812419677738407605930582749522535268325458911176479643192847889377992015560495063242777291196485750398285980990328122344319791821273529169541182003168559710741079646063494763918353236784767000015312322888710052551706535188267863092891488747415166406638540386765090598702598571144993788134946220326558640720414022570007942943404594900935455370966273972128729053947214847681944008869179276227252072404498989591597746924570223868784364937919658366124708958169847251967894013146516207133667252665163423655807244546734990488147792105895254925379517027977848797126289411450225929481937815436499427731583182663990454738429858314790088491408871294839232506114349638415943023962629276215844246234404515512847971544120132313092156109728736982971224624928297510156489782499848286813940578535714957974732743356440494290713634484732849779901237265467294325086438180937452599585436895335278138499479570166706321818221713219285342309025367724264426171664568806864338282332310965574550704555621993695311961627383890314346345012625675405127226007343262185365354165377143523095637344131461211978158156144978262288265858693190803512803538108027021129225569227002378886047736249675595646961278245505919357092026283758177408338292248165633292875350297801839244685408504212918871338302942944814791158770644681831774018240324993670078252631824337559191687193165095082141575082503116485876146829685933665840127634699513095887415253493475092436630273216520112419799219043619106504339073727931859807776614195517670580240616658287557212682541936727202001742314357421203875119254937108285272035468985419141519383073471751297575802897097209749387177108690080790789956138401820899360649641238110580253185501999105662359216148177593122214338020928650935396306172085369964129127928479689542437661269152715424489244935116890076855600045306545651809012787094726380492160706438414854465127119765065832589611041231460730254630756645468069619517526372902661974365840337903879709641385333130504665343511391651561228694118861032400957229881596776867150767775163893507336591608577058194001972748600699646536434153742863817502303413201737459816373157268750546894404467363971795276607834052792077824431057002438226267773520722712440503107817953461423626776342468278698726492267222719681033347589092666344839363103685015116079145885596959268618522024635811126385126000111801368019929620558540358104877937836156613835664991086418473581825804214824529643865019551960888305047460458182534722777294794640930217154492406086833822964812552061986136673810568992606450365352937399386091451296281148360235117248384857440240337355570893255434361982375307184397710915484452866930423233840193962871101468491058592416660967060525995007532880423324422475854159081140635965580452213161784516297189468326086497725323911341415705166397501629414527150842014672105280817606621949939440758703843460391567978669185085625440381585801886927578139909978304797585857590705206001508889117592162104385352956255352857920176758942102458558140372244786210281897548724829297221909472701511405879990776991004845344818241849081302536254029010039260795713359261264405840291740398177813587282658017330502617111906174455810389534220019142741120582167093295311538761455524105607922568472513606163529873518757822173024322449578577952750603944253965126131449919859963874719956279962876348854424737685249218656287870032751824938756510460594247824419150197255028016373592522969192889573095079649309109335490618042812164447783456053133711190167732994197212277234156395491507214771882282567446155162862944281308241839596341302801601224261685329854031509446537712419183346842259019673246929992470033252196652673362842917293488934302270196691920330408860110383927821854273582784734164628037042309203129852940945307144160946715011365544354828015084319816187653593168704184290582719364638374391363160102637223335694380717281105738365512355906830806850712116247572266623517533469370491260499633103350715188559630896793494764469969133309758129653838908113732776753824436965750795121426073616818387450203933043723264360726159257065865740124747738925227045716688692910123217187671812677193788738198921925255001185488265370426801212078632718821114614387687229784108858320125615613288483306899164947126627264207677255174019232652706981586958882254431135582799329899926883530847304171526185916653294576745288937099974130515599179107073827476844885869096384042587358021857845723371422051114735372149425210708821152997808811393849485172468296812569867735229182863535725344908377390272393678704709886530534828666579928317602487259764475903892788815195790629011325898226658387295629272882363949094865641487780565216315995731930834220432828763293894592500109861433586031529076607516426396917253809097748095389621197453752654850427750735791817679605198768047105985980604429594246224720831526883047497796987197442509191598400925729418024463461185851688508490951937779768441893211573532238557981428971976605143333791437306868586627081783451099332775689302120610734616020930154699595271379659181084638132777244338277031176100215849042345775614006523225683328304023899940849376087980397228715045363053708424148259746178650427680539299258608711523008428021610186852812525046665931136311123733667524002891324655464341898774653042699171657112662610669342499465782918749689678917255145811239881030908538411208338667242192641255072939684337210841372809369201801642635630377028525070956931953110678466174990063277648492882490795591095940800069874710116635388949387498176946642031562634551450050648416423032390845275075496733978842828112033149030416601601637526225228152475490614830012501822789431287150233853779513737379834381210432028371502689696838827735492981463030850253182703234694451240275448148676091531653839634695216432533302696528867725571796100915697432475875033465959457451315786707217326384680844947878328576964522772560987289882437608619745431053673077498585244265333894783767557831290621932479438751108180687475648166217283165794832381465786605458434336072661534337987152546053217784122588507994722948922330266334559132174287242359586262669544490041023566034891171195599270589089986788079120825180112975052588097061839008747568138023306120065249246017584378902123208394744733872649911971263871081520504913668901454324453409777369956963929915417383254832396257616103125227706233250276759285284679515818918543932124613084133675000597707245616913950399522049455270702394533924496276363323418279343364743567206668852807461640121070588554049277286017654861073143184093250141880357446990845298120364339057333460318996326680557538928676979220509800760088910849377037091153873010204373244384193150272256673935241486873761515926003254340123250114823237000570589322035904894129810088912094081445762785989106923807546613581370636408992644725131474806974374784391401848546646242356548362643018339957021890480306104748530480602578328179799988419689719965430049481763285562014409431622823365608232730257951199466654503373905229781351884823576173994164258882010405989819667998826839937790109950540080285004944256236171038865040284542204234192609579176186475591350040051008450667306462216755519655061236788113982166971594688842368091550810347151583005204386539403174762670907646926155255276539122232215654080393131945461302236007100518103736666369113375558447663329745783159003463144324018489398729953817244901990979904153625386487219314886659500069455141909193945305174052668541301260451206988229757136453706597176553489226267515109107477339643739479769493439868332395388506708077208984581550496855424537580996356832326292706248845189302960471751269298136182300510072726685674065123900130371394981665873364620339522702559797498733549205687277565463195798315358693214230716203891422954074209036017828639558046263009016545744848873705051114073195013783113458177025072960599252714847127363628115000180737348268569405579395753679839750623452949371480579248085228306527381494952514660142730741204221192138104151104722678478750417579418730400911411393160718240930391257764996551586843568717526801497330694746529565665774789950008917308455300907029143619335406437059272607005543909353175065331026033227280786646036955168789238700239914703550244598971870976664604387886406496420234127974375390337942707946256042520400998550169103091049600539600390124138450372267567289785281466205447568537480729838373703724397209615924290431651513846577111179366271155879701886918362200353452968287595537980482954924730454009123052985272980912596897441021124726465521604915499332737128772121260668726777525321885352273853308892586429165404497495134178384118775124937666798057416506788708793227961463802763304874500655935479003928866733528693892430484652292214515875919473690114043977621935683733627890721325130048838926205109384228491219793026328387743689206829389696695945161487894875498152713332719708942515442682548989244205427374613019544382260433977538403365835626673399162442586345916617412703434267808804763027736894845365532644993645668424722702133746064629944976710368440069434757030961807381271172417024585447389577006758779583329696224966268394817064026055236218252202775667609127535469581170264351274955956309512398259849460275706241674679331112817676876659987810359370895522109760121996780379574450814423323964701529583930492716860991649966967159300962497918540532031821815810954619896554218901615141364169451169531664846978749742523858293237117554718603315622909604153459509908924955350867497283279869142873385199114146731510324737906063786849772130378294088294279337066682384297005898642397603030536807544970305868681830228353937228027799122703244011467081838252806135502522185601649456657919336676360481401423945731845895143523730075307646934747664100682076322640160404532645640280087511571284346554939925397747817480019860204508870023288081042061594298911399099418496916425122404841975951160013855169325784752258665150576899780418517164783137797375233407453719181273634860152558156306630789056617049277370440614771507367736231391515810658767974664656508379381633802267647985670980916898606938913022851090791093481199988585570959887291146035004933085654444459875862615034549940167599789641292051333436484176424947900836943950972446661926566668805605659593527385020240181743267939512770375728335389019886052900920650345104755749292266565266649252635288858982332463803464325687223647384713938322156109854692176819960973290515776570085971623306744739610638393711208406255496256950880358706558342955725509643418900378367177263956134401790926647486343712300968302439833148063644858333454697928555974105442989427394956702336004592685756226663852535981404734434031853668731763164606245223190748971296188693267060900945309504757437620295828660039367033242685006586243692548198605857558400208816113648368670860297404954517890754273687107179263315140183971453993433203157116579088359734262975371506029014190298183045119747206942484011669323192384048170515792204216202637969517868528362413996146154631249823295832729061730616525272138576943742821799759672247556392412914408978469974739913544205469809549093575944618863073097339834076780243415509379691155936822891267792352529011260641691628517501650206622628488393128974155519303583032389589604072051272885612140010363192637007341031975947012256979945536321678255646785567230326267125223786488366605957732892562106213800402669699415232559539549716495728608122199749816312192192939984832369047076079597270788784788878901242351446585097539549836607273404585787724222368312532939242387784184743378628723449920114723101794764155228138293053543555821166779191943998136295533444042660626270622148108474986372367261454870563858249443099669256128025624935086622828354055085873991696425866934746415656134238593824355634644468503571035139088890990583949444120896832123042499042087912296639604228273814794768098406732068991543268436782529282141847396995955389933547240717107408489465705168431413812745209561879759561270275071226843377496047909182409392488992543026970079753650354242523389319882984812693057716243852695059990811822525198737112913968202584807838048934690812397896107491534298462461092003765871513137530470862417780745368214611948477089965319310169847702161915598276728240355344020539279158604578353585905523466963808387728512493748437165334010982265172728632349846416207551378408667349106618940935372583203776551215455331970229160568894428453971808265185991888687086155727978442345972331824689409655287038025031268635180315675628728274758340653358942916977479964925881650493453636310328900339148906608868113109367791624143647076791735826806591130518121728028853855838444729389954636218235174458655830082937300757386965843272925972602198315514113597756790640961075056536269266556902399121309642259055670232759518668785383046837647321871209617756429589537117647300581772962843179274753511810752381218324319969284554929687579568970379208692108270357471867094087571651677874139963057088295704419119465594682339795287367140839557431003166334370989313320047292402942761839717731121420482052493873684449100110109579658829565094983812888191892195167072669280291899079220566555430035829846867707720054396188243684284513804133592868783861807704471651617386986172124176187966527732043545415721961033853735017083016518686556280703354663957811148602942170526036975966570859062145576976615053907137956567621719130878061997638683510526709320722607177275532560520945128152435665570697354471866817758775975690924111986222858410778433012894333424168522212180561331298775739267185491348795776155753298680050732309263846825268807768360926536028758820500544584776561511814706794142621834495614197324781626351326180576112555217537777970113443174214612581629117870075276530083868218426912473336436832940394741036655949603082539980478208554550433460025420706245848411466376550253071691600768790585735546211574622574935196788142346746246138783203104875224662506207426641847525707292418838085756767566415415844602223496817140286690909901225276578371095566690388598345655579634923583798854703227633063642459707232097083052688513862874517506736672645686766286656835040109125561777918710500606164004695014076006015083745627966057231828087393106880933169273648028750409236005268099981117659718675615138201233413478504681634093695108533534641161009874296348153320320635151376877630639674784344527279512490609379097688281891530917544654242041146681545526161977650565187858905897815968053755057883761496676684719713510111581649329797658669055941956626888923769660804159523545397876602148256204527011377406355915253012743388275671409363344757726244346223919495300263021124239962535629652320993723017054405197936914054089809742198822010194354579381834794280420401059537626475324671508007517602567680562076515024845126579263099270782734448935019566627266743164923949479087277076715900369699690590890264744581700528901526051726977431238997160068591901628144981512044906492572989276036159188732284167301470214788680027765085734796515356181743269031002979498732844620706715405897199440856972972407060546291537205828003549812596193100141730501194815052025868426531104015477613746137297207721705870143856403644201835192128720814897019813527687389459225012567914965496566276791885986888827992730061843480666138311208004330219350613135196828137342630954613497508682632319011337951933659336669958344662070154482012771534696643805898377192763918448826242456977599260185532610944563545701364195463802773142339112380266119324025817811044085676406113394811084511469023219829638032883438555565276757209473837373547396060495344454630856861152274968650682332244875228057531677339350017358303962016158417266276791701147556015737257092645278052247135549600811131467835422740749991246320711855123827755878882326886595209832031214176819810708949199706401096830467187248948790382908869540498233773951444270045421634426466536842560371993669627330020387482555618452628348859743064146247789092662701632190864416424300285824281414658018814382279362360927645269453459981662697672743058961761904080668904769953170645696961082301538998569520751262919997185974066973955045590852102066816899424134035744275844190008833355507061841309987426939012710185019037007982100799477516508356745827473690184090907145625418835147725831879813918087833192523999896754833858144512581948380377819650194741022333898748602365321044301267196744726974989280172148100594576406262401670647664931288089324416758448757908561980212779503456086900028531806003446470824367251696044390629310359408594437435750457569055963545694032665348438166291549685894269791232489398068789766687172021463077716065409796219721284250556426824714049980429017116325151631933091906166731204298344680638379747117845759657824723375854887869594190337812393425376527285342522552166856416482617056721511164487014646092202226467675653356732054832926148641199721612799429792286482196594728538067891836716979635574500906174173108793931935381472270168736682231005787236442708688346500723393686230155146370096485662647328118304699747361200953901767379094990595452433245682747000859708780378511526657717307244971914276522379266807180528368693334288142191673196414970851337832652387325506487999564251701574161583900366091868902786249840837394718330308733290560080117861441198233897881100435311213361869749650994965886536632551240834907292657502984573017221383923926878433784253391492854715177659543617284572295496333000721956456918098359685241852657538760001252830258568092227106751812823263494389474606626922832726105693530365183955620055336576106993991640432980028926111303842650216202028556511880201807184915040316105381810477173809927953655033358994880677007984991631720334137910137876135652657236896497150905027485842193494697535520416944072834428795041652023620677744674377610074669680963142949830290740275713934927570000236530288738679657946316196135742991999682185387145362876987284150229895635601535901542733024954493703714756111607047436297105998756758361559064553228748923016277069849685906843348958458105872178744958290501264443234701844662864318885260742554946936574269653479929706714839499861635929719747179764954637209665856414591740655273336917425519582995644739395371021914640730693155530047783592583096557532000016693949497693049159514800930611516942166838351935953685417602480494491273065716971006863149904051712530697887655534452834342936506683656504698307319517263742830190397297139100125760728273812338785097201488198270983842064582135581086583867385693749353311672027897224375820501570598683752483858268628444345467001709995172332096155000657208878812058872680891475995834614589025076266913610013310898998928855281660008446783315650976706410715377472657297513665485676103968997670528331798086271909911817631974277885807327186827654148656098907072431370095781846125763468070081335652061414546315861248084400310534051805466163341822410513226037971867121555904965342629266338111372347842426500834709273515587975764620025645674899492874639947900077340589104391728861426465495220957571644383330816758386052492263647530402697384457323704277479236362393921502542008215746281368537038195710253578926868801123720854889387821868614533510801332101242298416060065052916920070166664310022263438531433407171325719511457043956842458596733671953432388252642318707060747637649654880224628099834943782016398928831463334080276891260109010753824143143000357241180277976863013773077825786926865695945665091547091121558807134485624828703407087953672943818385102026606564838788828807941874084661889148895049146394711650856024426961463910143152408740285530406200163113810619479640880636786858550986907577536479954434515301983130534613379435718367532262277016501087348439949107390323472576790223206339424804409844441955491817831862160466286368477809186638256115974728108930969109963054325121850213456474016598686684448848421456607897545411328167038687249147485350441400778355968303721046419690704786553966027464968462584019882973567813668604411814698096545840115029762566927824879866615919037089777325764300119059259323906861887939298283096718403041640014574193829690835214673700571047529506889270706255984506300979994872557260085733276989744776701577870726907776025754666208529480302822890554556938381331139090754490887306675632909800623812849539801777178970238226728086943672888081931229471905188492088997928360969619345449479780669816819176750262704063465213541331785353564575700642574314640789588461140029304658779877819615374598005799888459802037125909366497568352250967436630999867969655857688695346232964375032388396964995085454482865494165820261818246941347832628334326439416286217182972990381619671463200827596692527040677852204585052781670994218166889304795923638529021657327044944272772641574723624510134976108312327225217810957894179095166316461208833782525458315956273423641320473279478947276670931343304169917177493782224530770798310131924005681488932504228072423142415566633365787016379524104267956166502587813645894237138040702690401959278076037123814954029428501804088113167261345363496129642703295737157920559122899568571708834891484081169972576272295463908043938832515305228413589478045916652756251397993701223446622439720657182547043161337664969387889942600146939631627315952915934824153923236401793399939399390100708114495233477527668557554487391102629918648223366141053492433925451719936474809792517146455759397733153511429526928753327679550960590886990776080482445713407031999995612713759441711742536824766330616875985681918809520652337948998801541625563819365084830518989819830331998656460394491044477917865371887933280891816193186584943507009203377917707255534854711020589366863910796962940361288327474769544293802800190431588308283111776392346027220064487577378095252986943013489436130577684780165267476265465767469766650452368904370477093654678449206245722771162168409942043289123704856000172352021919899220272630282212988256319075504890517813214614889584115667180712891529207650940164182350347201145730657721022071881704912508391877421309624711437508095695463610696115902363277279767653218624819043952009235344046061423443893999882855260951530175291946018281722802266458260060175252516432662096932914826266960314879996683005845254688437801084290536750151360888491516780573298520112068289585001277390957465598353253908980278944536161730760972632517174348500924072835757197836987458124666281658148135172253390424345183592873796968189993091970738084023470257457409661572987634925800866426033791253118313235130082232558784206773232398853300019669197943208248622905055257490585720507257562489034097136770076993508574307582827757480904940683151272465615559045199416325895611330627548495788928077433818784664125125139109810264683211534398515476445906666699289162007981578315068568039404715074688288326457841949764723982152488010715416887225986728397014898924680280838645786373525773005524315958311237753940500746214551131924163686912392116570924746712072143819572698542642146046496181744566237977290764060375897176691915504238270868867016830360687788175463063386718175846063216614258049212032389241184653794428072490961099210554738235728728265692004581853661358812336349272000375267366438934338408666850159968366461247909494987306201064133525774413676070847606844883700430751007193069847368007228191215511774343335657928051545614265849181354890578343009236723578344586774589993800152243982547964421481755456954643210366990894783286498951667117436433825406740289612783969343353794644954516388685181071564760127941476708831061675431714668273311196097001263608766699485056046678150809788530031321240043143361827993280059089270144479767183563968075685599625200722288608935460012969694905804560142915895249136512430211216317919846858090929367398701403523907666369066844222596994087730390459244083339914847041921163831275269852524488704843241184373530785835335823135688970422727902056145212307460185366611083421531756461356316430721532731574845999662699673846361182977742798822504695019838294605016897456980616902249703787098348118027629686787150908019571513025338762591638162796083929940147906455907809844979810090221140593842617986611933154161095295567020686776800751077280457783675046242051892790598393694813130052566646900507251155721872903739868091987945667120095887497747952417647578011040421271347948805859101855847682319678061935223696561407542734277991407080971900737102271605086927899059718936377731667103111450977406763674503247234338489271730584437160429198504879800221363857892445378332945189030355933745419538340593607647500014997314618206752829409204159967480948808840305797315712834789539674226092224889425103813369671589883764731299616008282203391904489529246622319887019873658176883305204968258417245032967925424488522800532628189861516523125691383760975514814259393433791011936961576423968712833843567064995822133948374460780821294407320644210177767225577676296858030970266988144597805556282387222210479299481495621194131753056735536877217609623254482650036126863307457338587942811081014647457881068497897445171041503266086886141064414393876110106124971489965014362768508367003285457313457715644185589290649436513269077207099668052055676698804239552275254175149216092966400517374908369097650590125844123860440442891557674684986634093076487022391629614915534389706562124506659914257139151103475753147975752848542650278672602227214552387536618391257758207477649973287120541473978385899197743994962297299406273654471417080220513121805175555362222923698907592373816223390876355344547744104433175879633385132395882323896768953061123316087045709248048980942650552288550375195049898485836017653400543409423515713122422899597438337602596274440732213016334036050007657098132505390814446723415272836865723502183858791109579975457794001563213864260239186650549482426646505859710104962260885607935198678362608037018700372447750408433648656832349178102956125406281676055858186590237632477293202185364670836257578422638614890647399275467476615817446020389724924893869305193773064618328896387695495411070792526016110404482644747094906042714662709356286977843250054396025903299462841151850548895641194005103263401001094716195455878297650279177339500045900737178988413522959764200429626001981568042469021221102958316239549339562094635725462902402005451277472215694605856854023327591140522387870735567540034253073500972755389868189839399650734635834137175247767185498352258280177401181707198441070236376583316907682806098300369765108551821461295793987937586586438729563146134404019705385824095951318693385797021291744261292496305428752074155152157625897006505438025045188398774244289186834737416334502485970584929652575573845872922056650566908544041891553474118565980086917207035904073059379264405862178185355151458673789163633526162019301524972238855844771917599863251545383147760113647544294636542458771655978447780138485976233900762117218518147270796308172690336240046039830589352315710371106652118381688926306762068367218314854504082900183249045562819384152435121888044527681120773776058035589147103638700378958420425557914711931604342546047362699283514134721266382075151497529723222741750111831462564093743623387015211061908856368756828735221078184235649285091894285010957574167080869017076731677373925159198951936950642093801080618546942005176954921131526115259804149973740810545995076028481037836363172731523212673244906623447207285865272933023174261259944940663494678870446137051427967194788424380100351864773195781234964841518676816899113869138352955010620747232118034679230171492949812590707165354904488652769675817189540784679511536986660530982784316798012567513094079929910517895733501847126880672184876889786672375541964359053928108252163587911992530483772445395531304312004788253093829791802761526415005594426638046057522077459864540186799224488152651202626187015409923579144240787416750085581453621221153750317445915639860820440031163720216009101630017902173122436434187694788934874668829871062408079303080158558156107740323108646210866009783175218628241910376009725506830074630213061483501988577435808539332667189214536133142091060858357646777924838757471991903011574479702042077810933021905489817575966134206395780911524740216935406895909138130454821418593895613693261055980996630155824692421914681371579627607837632147961008553381853633467802919572786199267131614428285399599612966607116905003177819217596207964491492003680136287937847235621638022978792595641199913776329295702201903712306514033842560169160224268260377193650158152184044774370497010466844942223554127840024025914995071661004746352773701090207360897044334292128534669847447334904306471342003658002096010535102356659424193735816147086715115296792825820690623917165406419187712346377198219899994599378356805444132296437093867812140217186935731978152199126106876146093291257971823043045497905241961337074530243720141977885697475710305667655014037431790388885166607602842549925283848152664680044483930417300462432718783202659557763357637983439977258342556848834597623271144328080232039423859869918960047909503252680152654108536754943221469819281050274560399727980196314139442212278179735757511515470869218558033760863629506050197141279287564366161221484917263949922829849450885714788992083547638265055835239778251699744097230790792893006718322901694319239221379076981045743134948810803252641490033032197854059370134703542284606016276246018358284133579285724355307790520283980056585745767812959995881567308961844158502282165689589207382530774766822974398494586847750615334518429259856076896820722865944247501162668615665460370447605778950847845969779971212587626135192875195998565156685696397991635837101079241889237160325549121982625861311888519024672789798011599829932666760605006648822074797611588767851543900951776197592604801211042009202843155041650449387812528404543666484711480718918888691894501058596085608305373529146496084125330410072738626429438437710572880056685569731591789017681951907041104023740352072724749455890003140910296178269261991466183043611892470245018071073446361099744932004110417079820072912510723383906979784819754017395540070550529673931576216163599996359900000253121698802795117506391004756529941046296530585946270640615395510941095629963852611005156115107672795270842290078814942961626283708960243046847115001660878636441759409919352526386496218508095629711571717213447962854086098523192148259178978808788303994874697404738118874614500713466744400569922375648763175311248043146216114519553248942989295512376530979703272220665921714263877637773461155583298730780983586902009813954699941633555233707243393889304443064236180788143952778544007111704517689167420195667127442692111122644040101819130099822326948551654954531453219491936450436730479355294770026831556563259475089207580124627758342669174654333612974735597155153277176239038721505577396321068259675918483633805267459965427138415644744125928799058404632788518469657142370085468105372921649913236987968583924611203520767962741000009262854246768450887509167591535007745450682704821647863380792736984528142854003642304382698480369352978095874382273914652193381790161533673767283984602501244277472713501569941289365141805277081752970043923055057583595989617478694100484210121690617939694074164348201102686453708135621276193617832307106551104965293795140014765357642661808267813440350457063493728286777259194826920520950070509829743654794919434070902701759566874448076013017603990716074580881315985327200433318356338239213424387856824757154294581134045644775441450333558835159015904897354306139160979548084888318144917130924739256036670095226419088961806833004267948083097966265114318602533075245378596861430403053007846009806360600287419324463978726003826972960008695105196682590963088308434179808485272593000944448999023293236086177836891710232116344877186181042202381929559190356000139189609081388139598206607720732770389861686128175254743050553682286806716338466639647058305375619122380764268736422922331902008233996935175261625636042864231314765476488994335332856518047095628375329593591321118167171063765827857272214292020500969795833567280491523213535661126814508881859347372133835648802620354382757087627351519532740590202783062373716199753883370003689475764563602819004618018386463952382930970107232169943372749181987833486176984221387602427924155848726635895302122111738722254748201615312569395829433608229579059385921192042076288037377289282970066660069378953360968496739412452893295910897745622819289854999353869484036025181100317571584010771004231270879894785392013013910668478618304529992577678245244192794278750079283495598064413536499369137213175669261162900540705739804839918845687655509981104295771024944104721268534099164149520572329470644509591448054341537234977033799851880078349322726779113472836710903584562914791297414169323554754115133797082649884950938943065230801316143788406093208042635528218758630228641553484779180388675128958025795442939500722235675719602884411463761278881296244215738982512975599033861536482318789344348676304364051907974382925882982124905088067081727429049051074668369463974553892691623705260862909798014433971806170042793562672187526420128632149592905043470123239239455530955850766897404241442478108058640440427706000316574277339639086254862722447966662029615172524209549469234173489779851006416632089584106753196157275692186809385891984434530944292457793378651362742800610864317702368784255516165238841203744517724274428273912605782274119035175790065624033719181832600242623527627027298894879501166437170222113659892713485645844297205369625037698106676250304949647870069353394202144186228289113860263255932756885026701454743387295261539120178908228880806494388931886434983894986283485265789356745653590216176343796437982103715359795786473321685271292432102436480972713196899922465353158526332282243223827757426630585597794972794361047333642210172295195157411566329621244414914064009642869021914756752543761707523161060968887382992358493703711067962839453922089019728144509653308049624391839911788863420897390413174051060847375038706238194833724099709320192092278908773495316363913333605365214137680149496056918719913146378674171448266230273104738410839645132545667566297077704681401448092936669801904904173503317983618897702992056555110303557293787952192082968156534796469379389487255665533765244558876553224001806582736145458181112192484650804332544593783602974378020270436179927547592101541911700537696985325084596110662380942786421373828274586785376577766194546147607653652673274024037692901113627665391242653064921796228969446051885328445258399749605876632425137220616241177578664452820979027806543605072637454071727895877909935012875294666456168392638342954944391713283788644437264963609298710458082707735704500310199031776795130509739635498001889431918179197951682942441663973914541984257754871823376359717631403346071310902309394442500988447693841229750373379487186545200347270689399524588486996540365347197729809592126166854527974229744400058958169588096227002092935086897081647095272578388352387833209169153534983879335903505895554049653656778295417367183814486930448992215970807492712010893452654679671408878256495826910049328412828308904371951722798468656256595550177267812676170445906824233866360239406346928284420381951657864852449244631438564272929764421888057178202572035519255036134682433976391271370399805714932368887756593331794052215357076064815708820334101846160686486290497302019008894912812623521594417211449112516650152193132104953151062487367320561096889024978890733755211302965140481201093655843304756954216221418932236756229517192865450423521383010628155088583157018938834049311672901939936773926356459292655950519797275679875506644816952258912060997020666894554209166662066142617943681866725480953628429891183108806254799414429470549897424986601319858879541605032974386756104767242573602170467011494527163945255030540561958044413203094089071393909406372924957653452316560946269491895379507976355986357509205178984400640406103305413597915605472147064671757323929277739275750916319528543940084947958075519103960428267544108679203199129318694963980752941321459340928062551853281075721282715012212369527422102089821258465412176179541423767080958386449766091080803130674049939163404594622471039930799022602588685023516913158417243032172945746481109902319582350952253852628007815673359102027026494459118856393619307656069431212715995299132003070858051804708480956220794611356087134841752220995311056219807526021360776868333511077743290189409807743285937305534870520729359445934487162691440011745644388132401389041034660707375534230334737962669360738030578548668302899620489839996083857568597041976601747262288299821840795089417785058203447604989357238013837945808797812219554000695799128796769450821986598527870982930024743304141800299439144373025357401707808471109916071178051763475192637343264429785392281088982728138072867835666479743264623602385121697694938353177560057528743078112106169544615246522761109183304807289477977560195774183777318389190006481697347002082085424247088968771888835144966225128358740463169403688396929031502262684800234697801467177228534113756080926335553657571351356630541513950437942489802531280416547072144882736027024470454887849590858627462336326978723686111731611711502712059716532312430659725887198982223011238181083433882219928676915613964483716144653694187385671624910003366371243134857071915899408034407736718993857508118688269078507187339902098501826350615896117450033958361816717194390721859032546120669548176594649432052365946567124070455843147805196560561554754084236507153502460672691553085016500293016186017740903964870539543861516216838013278436869172874835208725317398133004621061673407961593378980000968642031772318341592225701870894159580265468878536628784971178635252834174263569715088675973083786362999448979359639728512660633227595462057280283076117945337154109677799750533305597387608230295205175120873648171584134332428515783314892916040751511801860087477706910257637823038689243813588574726751229122564673460116139752615131482407713731789248485681212579876678667380944801595231951829682071349352570709502638245226392356996467811386758152055983107571419091811947442655512636708653396094428314383491406864542442978302017049682412071780288067126972003327306778551905738004459912557344324381311660540093572686697045721265129776812128982629451076029858450123370259376310600604995512847809951164959829923254818872519325202024118407114946647831393078405555872749237176533025801892520091338636786173683971164994577822321920280390247824864965097947522847750819599040717148833573691260613456856824303029679528610801761077699835356260457326768031446967105050831586459946599721416859590176563680341935361984929721406127142446183042284602008698587764578685849858819763244482765981996669832178116199704482304457619069806498522667842433023880435625950717729208575309580194619182963415726261026317656439718580982036175089618880489201489615939509141576659052181478933535025619556612359994170968283383644257019579308242295014007383575800866372957694200472148720614683810194466993724790228896786899922071603298025523648840478429959486717833454817124290703424157738533211128681389893135186564250334636714167157848560089943436382619837042549353149970652999220478885692690615637792056015669619826209374004231534675857854931393421906694642084203917836039146662158146666164440762751376886379704912203494120940513877995295699567120983216818005968833669678204029137742734668947723537859069437999604198865116202300937331756657398985241137429432744936461571865500327984951538787032569324994855156770652381694961360917151774784153818714330995158771302887632189134488299143405865930230642894550917922088923490395497302289973682869451259236348331992164356996708991768382594250225401120858412608901624048858612555250225356252604274343682682987953120530714191278639031894393585088289288558664942559191289926309433935566550532970541179076808050989258721228883040915491492673778517021768836749263150957867791675745529381498221595484282016378146776705260142066024552527309308883622302141249156006015501496629331254334048287084274425081047870943230531767985800704928830043975789876552753401798548613560387169369009377121958376872089045196215258585754788785383369900777432058896568688722847363370995337576424310806681906457071309347299000295711374797987832412416237406798549777938978296748210929934004796726678775748507549910916669906195126788390695403123274582035588761147331568442384532420499590404639936975050289626193372666851579080548358126777190659759803650406202789939831793065581395115674164763446161667619533546860159616262402582874024127141589764063313914026123241400325917028474413816400399585740911826724864808225052689948836512221163082389834594324967886894919412242369632051633820642441146708381327585370695586499626263687634911470102595642694543757066362040915968666222640399925897100693390378131204330633003120668190444445643483991609305647315441370736528832167193456613901858690176404978951130207193920710623433391641557316323659108627134264233441015895392802507720106780173009509269466571190402180935114662572897017703648596485555982830055786410979564265610977022190224560879356442117579296296650276552474800338616302607795486942639915461186114965359482600233744110132645863330640378332388972632601207388146428762642271541111026302311363971978507647024518776594648993777587209650293708821701362506439837171173702686351102862796602393146528943528419385749774935670895201760580828620692133371088463430939617759468031157896955564643168429592843906485807278602861808327955921758038502593505753167384869328725457599230707789671487172522877297520219564603823430974908311301701581454025385049052309146378286738206183574268286415234266882528238051876397576534230416571276012885941652566946314454924394627599062354511228948874708813716275656963114683450445076781771557659443176680686871630152916786718258996876752329375821744470410979961309172351321003068840626824178428046954332782957804403519725415426748590108938707452235490470392142560855596996983306841441447730945953732489802356167324692603468077890716348146892728710315925885769898862778893547180460122721964034974657590839130091142185139332985091064395362699929825394029721951828141346667211788567748995947272543061555584588429693647252594322905075071722156344765190433971834277682344480956922027664199941362806319307808099466742499162010690343728812146580747859394947045357528662868060889996015704804791626936550163398218264573388693046044131953388488833203916618830451481952065408616700022857886903098490463697589555514191566606087317210840430783874206583096962208610498834618563301880553321019493157741262097777165104177535627213088488322052321128711286216659260476478505283120504077296677217745993142973686896398606048095880353786099409241207377483880114581696996082916867325710403991539700232448700242636919527817850890195061574559572826886557509919189894675479597507359633631844550272669248950001064379008993658518637925848565372375239991191304974323301380031672260808166650215592904092377879335106834850059059009536278258962682433097391799575680303488846866035948061283541136784432770558907513600323468475964731621943520118796886417130208793528140456685099545417784802235506800000176915629043765916643860375376831028345915684487380501222194718352315882398958309676587043374514529374259231662854981129295723788069120447985863753293739418746737857260500440634503525679534315011425790348471806275519529968471337849905757074810174919464997108486271579131736890622359981654520843243223800300250840444437203281631379060462065721553614739540151982996271069263023147164239207788690596793866972809673111937249931595557426921480789115821473972479806358255662717776077842590975089399764155994673503478774581397472693515697177628123749092074763407538304691982779019026547049468550160534108639743185344609695468366294478630725391503074258633851096715685343345111191745289081471449658679727192619624258442367810968493107269848493574739689719647111039974011609499192525969447856444041838859919954074782545789371799458388440441462731652890344856965401018763463750794626183354403334140534944826209928462134976005768531014098427512782271540465477098161168365101830634359640214260900877817004059527303502579475265858572272700377729726946174180184479950330872263279013177113982149563099614581885249799243930045577466664502141515819048714141622481816693908897102158445197695603147566482705291414582873908306999923752364026363485431324668526504541668657039069872032657868618921076304404881084952768210498955466359976435545401552096725855598440301074628108985676378067878554865066648538688784216444868405509878715462867778599043471569985287733475644781318585759453153665140100301391441213719505675039070851448761108576792050156448724576808656299250481840030084108857661105064028085503812308345695742226204808694912939108020765950645591578358917428663625849456259974106253559017377623743038819831066509429119867805188452593485140299150171499905410889612651066797772896868370078005545362081292978990102438088229320201004988452102122840119826760274245165111088629805624313858894955455965313606567694170764321881687821768021209897571288917535364283425864768565713846805408571603129642938262975797337403821976167958816053382946015757402794008849079180948249845929621880068707417655067287107336825357156672940511508398596273781101437446307723194582824645415209000613202667776945456505869579282150034807297454749391474230365965787045213699510760567570587711398516683128617790292396980665705692325733526137354469065994620718054229089024886302873757128220620561998552396119829658448646233064840980784296450130348711838984029865094941275711566161858405554569291511496206533660685945371656840193811285209315044805270899303229306475998176733151191660038489519526788617309544772078042099172248305371872948563030335719691330262427989529456125992273204884839278330993409307612368328754439495898093567425767457019216565323265457029039487558951244153620147853065073896183538356832948898671656469923337069220464759400009341366243237028132230798256131683082244298647804319083409869585413229391422384346391647276415419703899594170282728660623935937069062984245194503809707888357774276950267760833742219723956435596001168885017499300670017179366729838353870929563613858935991710115741078430185721918877420879608171145257298581051671180378558254245393703020461073579288764635696212439417113546775027298482070092806836159636474917116952348440668856003230097047228164424034713385743264672186720319443490282355677483566086055204959182794661397703392739634782415967176447307172034213707604510071728240329264073197968306697708036777746358358904091759579009705609470764701219469847377890467678770228264018813480791040692106847786061999671422345284197273181512348422884870087266331074953127868127840699774357571182477309355154424001085412300045179544558153813136225667991250580818902846508175238860828935078200280698828348366193193471097215952148998259496707764594732237713952757859593693057167050997320323525227336962728323312130591441390237546377744858468383570448962917788366963518169454441781680638263527458583037450579986269345467860789407091285192932001344444156759673462735926435349329283591729759989311950564034182765737410155966559709994600598337355483545808382229538452873446143468612975500089670697983496776308437653428957997523663158825307369773200486463105133335954310443183883491870604993310581813828870889414849837322051039712208518623411406249136361701939637095644451961030467524284926126678916089668207986686435118141052030773346508315886724849163903469562838645189234794636291733514523760511594398369063093983783648445571545813418359343259216854864617689152374008661778286096820050509671083494206258421395631446287860110148667392820043171364435828203031953573702620826622562270278206458721251842258375670950472682177705485962851074091244138296967677723110685551994612341364234725162664078284415104762488079239233475800905307334845346445129980227846307556273235249688074872867699264616230446813563989227967107866990595224994868479602598906705337440910024731269127560466232527667833560516620112009776680700131629734084316856089381695220466187977924905018547283396913011470262133106527245108308946479093406590305984366256336979403243947873393967876491064275633189912028215938025361490414877284829785384252171879906350449857943970380819342208616557948569155157025185168976471517690697732418599030306718970390800750458479774230978888804098876653729235010831296656146251801890133281260819820036038569132114576207861912161499357688649587012754734645218915826202435492795834353172987226302474410054711187965585695964964914014594228827042745013028392414411210061755373448694015950710441069711316471672641353024548477875232192712310121635302069814368303195030400462211350831686055464370190745474647310531779133626693296734463947100359697751480873784276723230749756485116479910736541660716824405921065991478230157366199414857229523863175734376497614988352566207393929787856690587154841833931659324263285082948999212228171201659341894158975855084361403415244971781350748293792670996940331925560262612945040182915196991054476963623855004160812388960420439060638221435107238264783589168275594503736145780401256958389776546546399781118886638078435321964788583862326927924504185758596839670435815675526613327278080080314528873960299259348550022829004108852987938131960350334982393214201761814426352627570931539870126040299952000088169743373181788118885128103734385650894420351496908596863789147674689271428825603183627228133042710766203877540505626286512024397099350429317642426969462982075079040270985184985469369634425090142025135936012952974896869780880190462319868991166556006575892180881430511410911440777718204417248987721056218440716064271892144101907081909799569966395244886001812507547997743843087493184428864250038339180791986215289974818349230671871040574964077967242792639593654021173877462303457345798334730613158399362739159575395315502235701027939386478887578468889193817825410676871819215000147232359890892816835630245810851589139586980059986010076196158447668014570424689752196835855573222014585713900638601323023890414916224414230425187861104495865499893550774497659893060617784005560782282742226462822039824091022123518606600306868284900165979781385390859989385379734706714905377161682694023228114011370833511167376735056755867033027149761978344233292848211980971416581731972722745709733424180243202371554191918445617922963448653840613123608086469429560997450466910161908254153964861649677977702054909590726055940601654281279281982345030953941819208631769378918542678209930687941994801369622778684589505538654261567562408956283877163047533467230940654779794658083179744643493826901948919606773028790868719113585255407941798682397955158125007652342475481218489592963311826987953398415579776749357445561810361907006493592235994498614156271499773389948055567643506153401014528220695221301116485221440102934940962534061592062776355306558102695116301960716619473704402945524139252290400104316702381069836799728971321199861103825290450299171213108548038438958444569518003370448108645072840081360930486342119937891982023683009164036737091181227951785150712306127746944248719142033138818744883939740190483812846827007465117251730179601622030061478095280718529682760155215973412027720417309610569050454042962229970927163793506446717618463337398026520651316921910544137444665998375851990018498754628427165557577997503605369649080124762005089381315496955075474382613910280487812868442962380396045820732303327068155613423377362683722281755479788046298935509017467392533081098161920707559838786111590242978785117863940086295890231119462973652657124388923133143516284192950573435233106851013059329964107390330787908915238011693404588113901313929547893521330031016891665570828211592383383542477741686660819497116658584907389063449222814194137376148634943660546295479088131845181377052716494927105264097277135548981768842159720249087271779076325675513495176579794910582708860466142190883906925855859137188010600736678860540327591464318674571611556676760518140570964443310008640729958471554638838055818671155321634798615665968939929557487194512368936201100503721191790576627231246724340195559329157889014052789643618330105870697379073001256696722056279900964277429546530007727277984553523117214433179508092060423711138668173694565902855320212520880005398453692238488007640628871193528675502594002844437861526700339176569234749877358043461022301974701989031817325809904693701772913341093789033018170733610777508332545793309366674733691272394844997558435285885481542847926266299171553372394984163864700103389879337562323664927867808770089563335819419479511948444651648151940226225740728309125246383340782427446397628540532692962107917287537107665574753549139662595248539304092299597325682420554079349992942672358950582983300660515096321279302749092541993728716584370892691527474427504317545752033198454047018876075503006638599289991087123990539738349348473010804357548392346816586666848699270200095063930741540643367653580331206420038180752017823347756268522786255051389220931012241586889541064131821177104306082861016970026662799738460634640668573137519104045910074337104606985494732040579761542623050748465609584357199154461080153924381015050884219923991842281036183283212103976748223560947913971085879606153961524454587025863762406153001373811075713942373066825972543310870553182806528085154255488282779929521522491775490205899522917106662628428709824898827911055383450231402282039194945342615120619687839677844569171083274459214306103423489727595679515561506587857710161454623859410166379699222860808149535991412669043265202587477461685099159428757624543227597730741222434308836327387976160121542249588849609127633912983643314466033185255169297986579116195390910264378343699425049980721347897546393918354687333882375514683775946482308922190102911534601265183643636686087367110806166796936878029920650583265406997523050787130475025315667962329987082751721522675491216767126307997558247368505032904221577710309329316382477664038043668511773033794943564284216660239663927701621303238566572265848559031530733497056094786652823408091884732374499661865665915059492095297103569239104717524035444448845062826762986797507544041881793152660123773918008003945619045015743067669658009319959332733053069121229799955824475522618021254474357464924546442261768268650631716257710753065428547550947609584402280715481572000452662377169267367602416225543462866144185555946370628373928324862406930969359847013883243066730684514192927115340135622606596710816858119296952152832538523497418570403248332774160495910778379156049711059568638485871795366334446997688747904254596122227302886538216767668619335755941083995295060998190328364791538386636541547940644122420158220370720886182535891386707834779392498940848798641008863090837000489647794019068469771542085732947104484118219518125841808575250913446225320258531502535910588473799626912922864744816975850849799345766157169251336156931158127768608427304630857029250193592214052506924665065377674408868821694494959934384471556896050834896164395937517415185091965251466163431427391082243281780364031256870232037991524951215532778731258926387833630877364454180614640617606047958410768348143732835263183183487678060632374280901272505266072334294566589103097700180388887195190718802685295692765246994370257381390276141789947310986451956246578246351980672434463366303408211349885270586678757535004643158104689196402109426776758761763451251346797539059899728332500012429287185548702771712112112390415988536532334572993085537016342036553855991253429265818372417340614047961434176498710457179263648229068242662960307055270456305353400437821666772455541999167430164851886615223176596370683203288088518459662258674644395667741134652259229976921112709392548308955092124402999929439361403711426795834267949306708155730723621777939118155720224445459021472273676501685128399344911018088245806022307553396331391176734980202045921645520926678548070746151114106570330692078403673066441798355124676564714798761419020298218710713504957750890739416560882358255581664637382874139566243233994728786136919251100928289738860497098262529840065919506062150732937706322047523790463975040280080051699799559403799616002781831065393547443318869054371918175453421173452428490892474498251223053452591398202823819821817590553044084388359181683346351805354081705299378459589443473262767898163116093444052744796315789264908923338691284928586955741825134322156567127819346482345906972206175231193015865148119639374764181003252795786393182128433903995119458827165255944061006317534962548225861133484322382796532479964526081806791670722873459778266433820387852693952468927545979563966382902514389381798203749345922175473755914424457869279407013276303885119508382789521506951159437951445226722109413148214267741228440378365856649597298968843244831641718351333971193956444876509825007066471413370809309086969839985221334385607320526604375636628209140304166718885679321441641134661994373036895179272805019351571003765541262193601672063036376134077615243110613576814674445739135810239548507467533855884904267339513049402538888171439572850393567251471427897964243178156878116635891448721837830957033576526700044147516544913007317230145015226922504337776333020156207415656786287590227111815030229364464549189386001531824210301858304112678571421106359820704973187423854835357880175394462809726308924566790137988001290057395992379401232718244284433733080633185311475709589484009131564142051477771081115016931471001639859763136311882731859759584447966989437180167690604413839238105274608213979295365286863425945515030882220617543768875261784866120775195357744758215456856710743432973875327071057470297362849615636540206824985068039536173480768269826668847478276531629348550286322653141340068948331308178680491195160667872577067620689637982751000834068233766322120458901252054630780717511523284042303394237723891819613570196533054179055140753041759509201005968732829653717601831931487213578590958409054203396462050837807100559463646762300879254597792177745440213085080752355519737556840956464829641008289459637272789404121079338334126368633259955149842800799865474851745607859823074012321077110651566033518479032246476829362305224423831780215499282707448551523862288850265410644388393235647299121620093992034150583266428543264062794482764258788827165093069727966748172496971815644322578555416017681762267538548215210778279461201743470094326925303339265162083086176565182617244363742863258791982385058712801187765578472289736282385714728483028384413703028081274174246876664976801776348084197196202699317857920189325261882566123201450787954406010044402181280377011440051767099020697884575635390783275933695794284124148607054255025221596911385823780871049244512944016571861987450088093446765452568879816414685002387419846848879295743670228689024235881913183073133874597861363815798590300115796926370478817180106648932689229013469526169846606607162581548533535521029608364581598881068857795702482616098070482930458200267005091814206422178763325638358907423407818740349556468540827815379147138956115615956121351277661956651833314454450693241555487093262573291954244382208431809405708414033367295760243101260116415938327800184361320814431702630092697220807688766576938381374460326395973615436960304499478029960197275127398940621096797592722231062763300084214494608171258909967499504388430975469454802090623758813167875783712445664041219202913986993108598207967791746731128847429576349447860713408503637202923784064056972323095096514649312981596486541064104980460424382897790545777864804476411825379946841829028809570170448032295149548795972258371012412790577436439335091432769382473689559711065418983368330334222236430927675741353353277444034334551799186124141335580893714599880580748121563230283371891688583891678993554283565010251683259164187369881036051989481195616219775622590567193511702462812905107065862492413391152046789282193017882007902937050093578545832197013753928925173244330312133045155350112225970858240437227683489972133267164999801622417674231440305283509118857558404739533999205177433117006112329702929576023137449807493249221818327451760531753953379052025659693552330396365951850129117332252761769366282607252296256245128123489096651632024686580092957881493400755083811363207810475063450458974034805345493940229472307179648357513018002756730668547947092629485157858574712075045135400820747676582061769680151093445258293436690976621615937853608518073091270628982966598495068161908286000958499392602732797873406426288468586225930943151637340183713723921678557907508241200272968150487625912956577256352709457678134159324903591169995740364000512469018301649125251805885043967705695896017116368941502787837615389522788938111355559267244052396280307104425347998698446998513189669760153412292023144782610967719199440740438692913396594883545713835533710328319861080581647692574931972625066208865363845885823868925752515972502040807053289366769205288640292711630909461231481034711954238683853318979537570849415149372299541536779076567982552511158082189565345025978035879657946718390329292331632735424753468820211675988219190687073147548070800699398315887242781535325072374613794523341956878739562716295099217486747734524639469009842325197266601697069463972296194852514894947116210158464730954320906993629383575418714482320780697247631790371997883910395679183160462692850886353950017967059943250418075232803264959328610545582331862009968744729351093145454947776422222331300461060464290777553602460290255179450191526275776057312703835622841318468097701052538479360876180422872252225095301223346766991781948760221252464274930913492668048950118221973729788785115311073140358294616896858556156405510098285128573863154540712762892682562530180163619095900402718513221009725236456862412897831446986358646453664609515891486298987506620623467095656326545935578197891186302353300267708493189731352445778104669536999966203258275533468415887264931389705850321332973620721521223388855301079935085071970874337128932662378738744796250785172057485426464662339705786979872904602228890844193400822856330843238584548020869040733266489338385478841373449013274403989901258256648377269956520763072771393461397749506683017109383603883788920916684088189713902422654725118961130216760749718700146969706877810173300682640502364886490838869292156998646135055406982966668750864463623491379312017772054152682804115339563995482265507041116079181832166756935568137060187806572187896014828052939004097520801233749742134085765153453005677494127364876312417115927467510543320511641108134592364924857000445127446226883007305716767329518937389902027498631598404956216239898108610563013541657952593816737137713065840601316875222105900535003792988875999477380040187865684529169040986837658693665461960369098141250132103981187661831928738775240733415235079142224417410178052724218084811839790330044236788082856881705336664479673430775172425181953796840600867436656547116033743509447431899238291487487862479920638478609298969907208832611443861612446405308176906257541836844687921346778001968209499968022514432484362094316176508595989189936876143674360875428352384904751360345136730986843959340715459972379761810784812080624074582865971732202687978420895603440489349479303439110894276417673418054819132120486620753918736248307785344780748710280518144453586649548337386521441529988137903470868440834786739977002195114339703255473497886034232897659136025470747513583382361909447282377564012958859497717873369268161890169443453213063060466020883696249522053002397571271759086270356174895352900541063398280073907912487972085965080744656741620989253090898878549477514069176225683363356217469775302873970041755093164845010705732696827539706293340772340742179253562338323646787747837779607780782777227582093459765598327505683814519139383876087049166471523956567066956531326290941299521114708295515315790070049322418726184126409112432753846624799308653782549126107138999335507494355291275217960483783379463771689594595977785527196970724114634158320181178848654273059943138548540947699489507030401131463441304849030115177478792090890166258437884348337862230853840703118023222325565069473755180704298854039234483629985281931384807474487897405141472777065068992077848410896153034337995822354734274725686107576324333441063778430994114432791595758020384651396394479767164901899320896694747875904173730881145673254380656162302888819002801016919252985646212641274750831239787687456769668066114610322195966369685357713025873840025717681475248745377645981822917063070731790073146625914290524628871137754187819692278871782961475930387226652096062492553760907718364837166174285378229722578343880053627303588222090924978860209000971968938699843624873071234666805699433882137008902011193523169225350178894438119308144790302618181067428612863163023622466894108599698605593212746017469021557024645814971616151749234360674872129169937039103899531774342423831347750762977464872245756677933754082633496730901455715625814714149279876596764580704916976942884062740511201041429440346260418340741180498182459493102486215692628742045110007069986473632798595575439647721841817886787342424655108027741205946036236450642256364427126892828845719527061603356112559912846026896089389081952969586143450718475538269551728565519124100714931648474877898693535330019131542438884099237692659021554162093508218885395283515186563672817609885620782909448773217262027737033405943302100336626325428625986558222363951370931961368995125768511006594564029454295728108930019794235224909268418368686925603700558460022316916409162962209637521820559711591501612890765993988958098000392898540324296685663153406058019125962942464227402677518811643263786589413636069133306829806785280301647842322573989410507925975072916718102158413047253467858228752174002385796593966327909093421570572388515913300037077058135733279726779800561079687891656517708718884678845640063117679217415457912544884280756443948592884336308592924763873910346947229282015613813019211722308141401882785512227038794127611216073433967336654653227065436128445492930011655661331281081260534569962940015286075048088161997900670249109978742717068987436792388065929373251324320032606139690369578165639357384004945797278976183090612956130591149308149824563530225320766416489073276039445774367788872355577777489251646068158101477160692239864666986619373585217341582296366518658371881294772235314900274249086666890367565389561042636965499387825745444131797232878249522960987247019831481683617851125528763682288280540912707197039590546252237303580363358867884988156896795112669455785444483958747703110083193307863736391187821034889613651025772213912796872925394173551183938196042303776006039344880880267594579452842342206311316045536424519839996462495896917539857205280152247634375933508186937234160915396920102867176920938719484140528453796262286217956765078495925260014589823774300230800182129181908929112916985195589385278343351105446745650894279810215040438699467944786332391527779788733212276736842810040271519561349759309931306613661317461246685821216331997346363501082215048067450579588402624020088544020307020407750722983005460975154647331636130257661393893920728726148117575656635283453252917634750989169407374570363661863953131880848852236572617269411934603090151312156634907261796180213237963371583115745500813398371008305162125591870293206213993182669407607667309885966877884493493439371012587912192073494140848202507444235256835435264803487404157118796462169326737676127376650618802946420354801901467141087116394004273687023002373112400539147280689054155304324878817185857608488066635493166914955170593757683700355910524574495216155391552260389728547792955588150337739276414456859134102884987281004687874440767510777428275006001739294149576927809174609333014537168730127822960713892847975001918423384044399381336245967234823997051467481702742828749625963236132424123250644410135996472540950737939314749333419167633422061228818320899886870001531969088291792430359455219179581838838429148128522983333253565345484538740023293690644184843577334050764580340518247744462762617619815638444850996668876728713738239719790836713515755229351142728260423428227228158195169835166456543823537788737097913805292252046726183847102757749555069187866972408041199646111812523841714234172989230402110798607712930236457275483430241927016889344114870339488524630190591379651184837785695366682238375773634812786280108183535633858640935747062559972815297993079687083362534872381782804047717839102048058091104667302296539684499777026994218670068081728389328801597277877869932896616527076598674697134101721475146913435092327780346586206390166933391252608838891920885209161179989742495813089510641016215548028710767853340118921173198333301341227646407546127289064235845996510464142580815431198961044606672532183067675452004994669553655093107364734987670462983956028138753123648467134913879870611011671897154868159620563547155987805699800359610600748195544634201146114954106016487835130659276115279209840673842968146679898586486788491479278217242058583352683504562452165067410141028268343882605608042696060475202405277197480471118620588473704406594201840692528740555179732564799623092856960922597174471723715135263074327197125384685820863628425105525760485453410557484051166584375785255412382419768583700463917878559588315177354764063312460733811566851012605157397127215977300523350300288968447444322503363763353927209961755340384688699862128919877066687467041925312108900435798128671289836032842486836915315425343722208524122771325860174204175077073218481970986053664999012418069348197472544578240385530974245686280883498018583338301016740591922588595793690393743690508061839500396282798900013497541361060460245773008652373490037015360459354033440347773218497121997492854424454743689236316427383548593300712022490070162291316763988720910262760164468393169770617931183840767454386627312539029900232522568320734341070163752423023033383992368622992048922109084273474784533851909670630024849229628416595775556292625139281214373837744995328102180879640626918384921857754956987835350801468877579473157456650825756942672978467493545129263300315960384692220438394876722689405356640357029222414478175433698982505699826083762869764445880620748534525480142051581506654232208837417476322691249989763609253280446243606953752875493887929181032742978489158444603271910250011003265773177406807981174822473733393325612147534419316243324713415848152501412676637286595456234421873571366041606835389746605155777754297661458995391587521906122964559517893816229156285015962797958389033132521153557268705268414666647004312936828370825072027045905254294771061551579095221957419281688327909402905917713430885082261856810991323498739539210561889768254130144903320312829449916861212656515418176918883238421292857461486164694178273851193113813112599735023637044017792300637866547619607591365986820256532393059990234632808932717375004350167204280339082342013343713432049819988874107141077308851250473488760124099033064063745757942157687557847564622222835302580415541266106981865060657832930728276783851808123401193334211748065803501467987077144821372927564838807968923665359361676242392760752797252629193703155130171996979258071453801204951519152115180673869424411061361779455183714655545702533281894332112037366798610518123418162260633939300222106476156798834984859836557270534935622020207393568031590322456118482869539303826410188669372446633755195409115623859726062648299754812366652382098816055393681632964480029884906853216546321859955645724639809603855160509677853643922394082094031031147403142352294311979829735854068927734718656331500237755176181632971379220525576359125673978647183136958506720670108827862609511500105602954684166585364569292021685005502690128643654048557543795495217006190154119496805924759408442403691199006254877877694692050720616543976736239802347061511840219110685063547273070778555194872454874021464492502697131204085012243267225354987681802422281050496743889142554954119907296370513196889342506990664757323588437287892973999297961920420116096907448836660343721074576961950063488621918841618532441467127263817628799882898845802478469361513519182817638338142338675186599836346521533386877396564306465787903165077298523372891361838949672600286193719728803898945292226770855447296497946493124141834279435025380973341808340660353296645380006540182676118287069930829132067608453566632677931981479187011958597098819474866819813563487550390821280957354687300441435847766352084275574985985538855656378431854462474185327480895436674113252954521348098122300803488115661265722975199728302372009426395516494618045006320489825550839576774425208969526858927112306710304457399744575935204015553312609436679829330361462630981389329771112476556234273728708467963723989915207106475214009121211079819319717832686864225026321400951908022969104666882081657947072388354953128335234212419153108805325053465885721144905002470036402735980873823008559553928359777509238454877264583857546818186159083238810365759622306588087878190655055471449871694169551107843164760137328611010599470818989579252442512341858328104129600840641788026457590091587594792962071334208145804180747475726541300901388788708927015361418374380048945105439287509418813384774301131343422602836556794279202366603712450446294580818281934328468775003741192450769076718142721111631312646093502212037864396804975522477639153761904113865770087242838193367046022273241497219542138506967740759244504573764494830054058108462474098198108734397661279545548899536865750209319575220038843553203287064780409658060822608279075890719803419987570589970057687689965899359056522544108288423221218816239142298424189451468008516378675070505043599712873381337433041052080391708034512507477532410255406403357711767815800231450656209888185349261832245243325011831452614756872655052399880953073709710332290595721945997531133673565518440437771240335270380141095810995255087044779516051731263014045781455487298740294525515353343677285868574027746475555975828498126533255727493853733743532503315040096929984194087301996287099819809432772701422914692592119236479224995901157581345232815979291687748647507889500702394670778875857142111743977464272047835450334281289703241887532227251722678579255061698708495571324144213907560984376470673042758282815012685462668040106129714189029422099692999892787470286207716148679498935973345505966460477380804304826723329609724269056618873253768525284185388809631637478608946914752667558960941806904570659066303437619687807518520301284724019381668996709678496932100109375245184208141313896425169577961836700019759175206873100722048343406084449745082469306518874246263960600038797598044971903387571404088794516038591904022816576620845104932564460530462799165464232838304119172688726000630159543032059562872424633017319453089346519677216037278342232099744650215451757738624222674869010064787472613063886485614836612283743209385105527141398082679990541397663618583899373412717026115716236182244442656634410133318012066861072325901574768106353769358013023847023989024674641689890465183716094618336414627830529272548082926658820798399960484465253807763333019607298913065341780249252447691850516514251824662160371139817523424140917796578247493860568614130517025012704512896475550777690255882788513788486828632927217690058026431057548624466270657502345032989017898257480664463573125862863547131016724123180945259362769053691199106932586386618721995518668502204488688339018594665978424407246525040071615803549691397496636755782632032316069994331340310645197181925162240562156639759867839396928410430319386726696467427913037944708766112001010669614063630068192357713768207933391071109466234106185615234466613751041127735557945252289965920436828480252261694384746347774420980169184971254637797522550681249299547487469451790568073460031032658946433765187078064730251147816779705441952820562352430015376847464956110413753310963804747784292431371009654843103145255504360678779004674140380222031901236125813900546128004569714989740378206274493751080180293039803257119704563300836946414723511736073244273244649769963335842007640460405045776473183648862387022792374825969878460456151168066833635899778300671764354457979305932265173407600091176110813882969397555755660070654262316811539889495576521802370362738373781644080657567528140705126739401052228933642257949108349513492868864680786368536107700077191055183891214495267095228568311093223103768258832835818270884793458730558783518704996995912624503541277907419269155561355972929735452017952913888849724672143992037321216555180929002244469368818965326824806029114442059465934959834883292817405237867142981559276839254876544782299561594293966126020864968388801397734133816837279334963147931724372225678249273105979929141383620848356615895467187841087790837459811135285306201009589558681156771175420277906717566954930790066588377389449418743461071272233181885724524896561123895728878185914116727575358972592053833866370950660629062022985473086465496973689991862988482846509159646595325531249251056680766083028680806521281293113911474323503070868431627970735117265751161306587442618676137462139504128005774638300613085034991890311208546495787047532625127979796073486119599262853288665026961396024598507214282576150972675354867015403230249996551555562419377952671969877381929893850805602189484463453897156170319990373235219456367201677137815999492475599392140040931865406095110232914565123246985828039167444949170658810488625942001113063535894522040033241298136632954451214625036918300041731872309375420406946967703686447561056358299483496652417094437162502672461807001001042981854813383105129049682274998324757119378756029751984780621932628830658991780971926423393711189837001142039915960535685927482012109062153833882011219060814178373954471041714260908523102976450372902872192909643886761418139071977712734607568528302903087370841650360560507418497115693596365981277847872332305396473928368488220300355011193892563167474498074944354160980987075380940965796418105088896518176391050420440979128490122213868849926880684819398184052869134140503655973691146517964288640465631074286172743128473550004003182528419855979220907411975544961045524732637003044270398748543197064384540023672399176427747085986694084057937132728463586631924525096207787999095990369105791906099008419299762762427237716024101700872618476940654309250300168180626201282967919326328685539639902817177843369914618450785761934661118210590098934962572355454483897420384044261508875244368024768005754113453866207885480368542132653546888954120754857204996617621495686435464252821549717655768161675606241968340727692884195013165492442607058362811638460667497507442210577846090718939032347233012545090945770574718443748309423835156011985916852668896814964153035758552145975451435585689032578690051623789747710553920104035333680408379263085930037538241316829989306070010168678384120612855869200405014985966041564480576589467652655371356017654299360643395171659683649094755636249915056931070527337367414977550947047481036948728357699762043269578235872047205358731428189511929728072029678225222945194859425391496085174693428792955497008705334875998712000061203198881252249016010558222412335146015010267862026273913749800462065228030041893900568966934734342839492482579544492149473221143472702959962893227224797868486210972986486898601960494056577027407533636320022189889899019487393384504671211066886707949622969514371296111442604305466741287435425410779674220719051640046381789543083319126397516441300721696082725974058242738012316457105155124926566156745992484203211379849283423199837463014128018934109535709056451423699204808015741101585137932722292788041866522979824661435328660195803106593031538460385653261392819566576375040166387031417699748722898907060459086645927473357782940223325790227429652085515760272152101573635956232270590945009146567399514267107006888432708345389745173308437374978193619186060251684049787476773625308826212078911438183104192504598440514530448823564426765394265795705068445539233481432866577522542092200425862221843107957321380156347495220327495401233542214821970795860903262053187600239092508093491084715346796126774121943676576232574456436138961389567005838345388452819264728552543853582484337174787010956987359894237047770271914728848376346467180108016041497059165346681666875907408422738750609606519646952729734402686004812909634002391618584893830707598345689560024676441656308309386589363328544074734608835863427721665655547268629746928902155941432752185434413694191830899753674622245039852795690613079578724426765003459471285156152825732198953704033912587719527239034589731878145979751780572079023300906544917887746801017399394254163003892504606158462188771975788901568996471635451744721524446550800461112125752737941863759028400628485572849328933683588479005891254888248911940276155995789768423949613517263964562020695680083873635333136542764514920644856032401714709308287664449674447058711875281930661394570136613117138091440008498588324758531548645157272851636191643062036195384030161337926398814517811443631722045111077252022924303447131617645267369736656879494696081518526690283778507524370022039106308929386282214177974655515066165325933386182441453744549154282942550219966726815315572431486896628447909057635689343217445589678334623407262724303479595055220050493027367660880391676603264727725268304538621557743783875387884924985450580626898008596945987826868490946691911446832761741239674055996764718944328874154570484079843296363191396882496329202471730413124610679435553717443049586521569549691208449669173455708927911141633546106603609528359720690039746224373812706959842609654468500924036819820097449304281667899362716278478288335853084860951084546178539789558386738083125765559932377543652352656579913301151847839292133915857291650417337137306269868063231099051299943178405920964150130124933651498079637479802903864727654833982092648305965136784707442829703565704744440065856722931371952932402521365850478328440055040867696617402025589505581852831016771707074631592880889885435494072835721494372497223073457565450476863735182753096037232388903316832125587124675651939198268117411786373674949004192683310655405458664439774485952626471632728565395925895196269306669930862688911424332475848974273353047790416619890686564002764060209714934948570085056398980934061263432988468393329001571353964501046931928993913913351657251432853450315242682710425464175266206231652483416653567183158443561425102666494923949489561684549731700104239354411643029611937467485258923977731991757264625626835841163479609316864181757466330286657970248390962835243919932941711575890311722860732129971242383668922548555530544196985776868755784478652552348320811641845217745647143290195416623039290992909270829251046808766091884229387886171290852180003385646681326555185068047117239076994441056169714477402646078831074027619849301028491866169395517122474620537331953335984180093598385517368438128579992252039641754814541515104455778218053933616936011141270508423213178870590972688350966838580147874173888800532630914139805338715810302377390194242433755385875677651042317984533007039648545025117432068945045496968488497825645737809529116869898662265947506010519186903848110636267099725801059641061765353922486713986578961047403461447741830972680658772344330065450976503672021677808431242332589157738664966196260228744797379200543936039547877923654699746211335875859957240553985777095493415106410233762215299964551683417609247799498254128091721579219949275543388412816417886893624466518770880171781996823905536152770055946231416975636065591851985387690927701825867214987824595165616882640222226109595436553111535220904994250095343940824701303055443533018860438249978214414028970926433837002289218658433568860196817440238991333414785630734698691870232758295031058096486734571110222339122149063763349989034074487496294992675032957043241147267884245643452370603230605008564736195021611778053700147130267136969511385601259615445619775384967790765683383970887256976492699342564360692653697762583091167837810144918187876030823264965980005495907967945730650021671045218037234753772463997964255534363126207797004632121482590766806425710714718177630530621082636492680941533829242264702118581198753353681195021750444402103285454579955928936024538915324998736930353079812101261364273850054391147666228571374208871996730210658402326369221148530662752747261706025808076865923042290591545639887029549914239682814020785858437221356740266806110090277725006190215208910517677346218105290769320376025785303704152105635969612344691594456347992864600305867401242630308328403138808954450093874650363591191929453491813288164109692822367557799763485614984186788887361669469737713509414079804277501843408128923978069679147822693181815623115745087229566904751136490352247192116074029593263028526802951872485304478173348997458072880242647489956786311030120168181733586126062945687850489581292854690682648774339830759349968020692230139370943477457093280377424031815929150832539917149892233066314910870050539873086215286822315936332250344570426698331284261570059843614606767380314909951838886259741975668775063828715613148064349883253531547764711955676268658426755610984271693723439738180541063219789239908730530588054132218862282678410386937610237014328551511192793881971016857739938221698394583163017573652679683034842560662877640961648810207546699040336196993499647294500531031798112287261116977834381965429643361625305718595085086798898489267682493130540424762867399235864905999051219436354718939971548178752788125884102922180329462133789384241393672418126945538971953612620716542568668414990144173005564895652828506312342138381071346000356056601018806803937247884465197987492370964930363110024096106635968368477988259099784534389864520429455143170296957032472830553186941675388173918744496410772716606563110921232926662574256909028079061152376412592601178984253807568821981162112958729733471339967930894872133046974413099544287911138360417491362582443942658393631166756250336454931538967229441768480521371644213131262242722019202909588798415381242498839781242308830205823714033527382936205928923489648396824935095118288445796797012029815990401002522333164340395892250543105297258083878168277643438415960752344528575089425351431089162845468720007686729781746196625977545380268592134629875858623023111007658305564766970751321227684832749620429349436235956822142921571028922408145044164924151229101309371604158027590994630132400165562780777679504313714806977732650298687358446871728109084362240427412366461007855987617998461269983715044543105492567217500487658501720925332822693615161265263218858419336322398955639344834771398027987344851449112313082518694273797186377821544157243777433423292940165349535212443730763713658058711489703475928902248928783940407759081153689120018918533548274468622970466212835098876534659256391655389142147277814721185267027365854786958550000845164765219617722896927295962231229796980420970655902470030391417077643974486092552789184102301106638422263026031396146272058118044972250947262100851108197521846311162112083797058839584192845189990638038390284993900524533730875520099171338424809123117603674071284084455417369313174498835918461006471750417936018502967310050562345280234834198561294636872358300376121248775159911730206807519136485286237791671885584822393710048594697425586150889819529614545323257464517037415224796423258991938592846345736019884692452165442253638857804585295094356797895634130230519917161891716291834348186335436295975839264695645012705375342053927561941030982749236624987963169732485127116814498018926834743580282255689569976207749260691535737276851345193613356663203068019647785945565229790300906836976426868839548060650943409805181545486494454670212793511288985496388502102148538222577315390764991975060366138590074197745281502483230303837214002093154963459722534029040296144639856355657163341675222378208763358617604222750059925985655957785079259936797559802087113662136542113450954158445221218852396559531128585102386625707581355915989316710173351108857893233308662822540670957733399825531137266618874778545740628217413500801262983868699911622500384634020083584802464207430340299945855905167466920783184080772328781296657929347386615588356185326791208181140151670714898343605733337754142669990898698294652215657346494444665003453823319080965630703674969013638064886312702253178619039301114913892147601764070336881986657418261900005862326821880271168166678671611463642936089537937703722963891669870878081307197942017831253833879154449423349750975715297448391717648233403341642679831078069339848891067573739099217721767559744982654375099390913295331217051940840667406587824000545756799581656266355937793001135712921842705314324649175575223254209859163581498687158176083916807772768578634192266249001723227916530073752340447852293022141847080300362512851154480022316150220285728659495212326582311977198838438354306151992365252374569233834947678575335000313405155196155252242367355373400409701803279126531528459036110095356506529740000556562149223886040192031231173172974824743722235786964194675832489226664150883258104399122865926862658607941598631148721723913198909946297620661109768397627955549944570273804112012199447696044910911750679728638702524396125817962071865285856468848655382365922520698401075115651262572119578227980070713352773570290945322924241182814791567138935296467327308761729010757347381134753631919601583723545443470129551078065933987011508402789906307647800325638936834544171909501979278245172033630055512455990629365039244521212403306829037398438210065477080509808853267910318933056947297189515692305857800227610308031930896020325912570546035696895931900348249488430124311850070366514832201257047045117435600752448204856445727252081731138067667610907157910303973333203269522738000981139598428814396404881855603405887820646236908256061911427698149606649155471434526869982942994285009251636877279081468862710417739855047649485124023378613664231924323620469524357069948599847333829812834503124703921009699504766354101459369451671600805537554880155544800366764047936777603938994090166686325409699935173665093886143093828109139727940113770487298679459200199535626494756768344333538222664673423250418519994351529473899078740199420323428914818884123490555235747696158299345522426496589334826677551118595550024588301309749682794045493203835248457502286704056004410168755715068113672293629553467333710684145275128908997446049240705030985811695828809964853133345877627245405460378642357235028024537725660298844458200851863812435409773674389824597652355286977814122493113487918457530271951248269713334037230397488367627725160950620146916318783648024404319371098107923974202883493154188524536563926271355569953231167841972930793927009491201619132570935619746232663761163390407530914011144900881897172261228735689942299633779380119852089829913933773029100818043236356160366285993417386609258646205051351903444235598622355511297345023080104975866160608493071116052541579979692506225811745025845205325312572147548171380080459165463300869944969994750737961291644849323634525322755639176124162093347932906447700582044339755114583178086984049984120904677460918316114545459811854928687917976074875992734408490054158421052897028621070417552571772427442704198080314879091722506065214700615588369305517350130244107325874983328013933815339922852866916719888202081029136499341473886077867296355516010559053648838555614641939342941685211628984802749495648267354155872479437836014939108370941338469374319513574495743768383198488799377221265351141541432259003023477613572313082441129762183997722628661995531514567837278023466371388992707577143367743218072387247032087564229263151823625194564978683075872026294222358302548435139795146765898281716682623029983976616163765411903066786145782067385383169921598826674756703618291758787305258038891525613095842344304521252884312498608601965403295599694073230368078393357493797290900737191767128250443794517173579321779964369159630130793881230595481501902585511893179560076755013205661176083192988514977832986589050024009075574380641176052669257625010681505197854685667834782254852335968406760119996916768888876790311344185026199727747197069353232762520699847247403893475949020609400610639974424603056139766468840981740502171717671010314358046914780460867375789786085607343394689000800539648371930038673733387268292741766216123416410464874111721050385239154576111573927932719968693221307665721671183310029908081891355782788299046296989936843406814578795797751321693717167225773925995845488066972887725986692402803910349008228418738030233212846446350416963453947472332123341571307797626840481563021696071296191163816445598773639487247582201017051795811290694810222994490887368674879760944569815785952471761468216347807887079496831183701765003150170117125132222980455809568717490999322697974273646354948827755285403148423265054923520663944548713313462406749734591360614256563113729850440264023690664415586632920464416527203825204241440807523906055274892938229708386719747213711963888503740901135833742022692624890355132353771439265311059870582858938659056953459119158453598397086912600881975932314944459434410990833651316517550949577082211246880835328850316000031866705572036168266734228794066533508338037711564570005368008169768741966936877566546978792564676627577418808325800268237693738140133405150239947529858633390121864214866536026325802674918705175860784570056518736287597502200671963244475652225833445105256702452674606381340770508392392484525815161510716278657604070735382617280027169859322205166087175886910988568006581099544238146231694037932556250482376322808996533829693924302485955738664094709571672822179867704815404216215956845730076077153312555077260108841280843649830099245987957760659357682586782146007048560654053412497289980477487475598537510476735116784720936905578875598675474569957709765553468399404019859335603453952657704215365369565221463379023792115389884505108130799872048261679297392306382295686108818534235456791916062878495442095719672281444790517131235173040683710042482706783759362443643860311725618164636551590276446729868747864585290054498745369358535982689471855112280082128800055230336840043272055966141996029704291159417790136379949377455718527934780385165445138112024846799776758731074557097997971588820766668210261666206491837953834972599409331378377464106890546107046291824559179309152694689781918839616308136169980402142976521904253132908226689297771085440253748435190563345318714613834089829904433153507221329574195685822631893444482529872989898738643663119610636400098073914124719419247510033665761037826420202321218806313040652875117805534397667847215173862308421739001074224189332050756203491043019158657747738640733576240351989865344059302205869930399152142592664324370131032053660650839590713653723441313782532935961898150914763181726616154292393079888550770150876101557076313490990229937449713252871892755275318866922937160450303366819405488370392651006224516932362710805251036883109095507692990129156603157964813579069529144891095322142778388198686807605247825376390559676106580449110542229806826558194847958149603607352677106799182638797835284517888814680908226603334674491628450368603620545914465985633853677745551360530864972716007149302143382382840104899865290385028113336907984463092236013851840374636715664701455106843972876456363678845081524150021228971505634874552218404512376385421637122244352697492012771514754295263772403152072216425256663852620654968648469101329432823287884722571969055396478631803308779820646410587615140272471397400754622201575276141626424902272095510089810983527609428125641800129091477878712347730873584429275995462912568214683562281112584188105421912716602707245780464669382785218394771597566232603329476890841206307215788932859445614492045113167575872657640177295884558476856109484702991506356968561069966402365065961944245940659251403001944524084530087722374891274514317175788221604471840842078426368148494958130812095335158999832898676701883748268509151896329828815472498733063814917911341903430353683058046405415994167212948046349439911775469258017861937939052292662627815892109093215231247964699809665649158642908690952857804847048898009610886306996710501492182898234019851650222204834435514944836001637193058175295398124960558731223646157512511081731271317843049040636305863175820474386305019957396756027295082987522983770659100266005675688356209552308777673155309543111394613016061807305873850524800793453946831289585269351062093883626109275326166553896089451797688896455785846989810458132848067711075847607056856516840913732982057454034947885595456358787406835286640865056386750218715066918405740406488369440660804198341878825453092752895307338487900939007122989543152725450289021457800927939416839882880913134793653825282378263673273290093625908267420048021195102716434894425048026045665768473286023724665266924463565689390858987428628968524109408519001884334101208518440759437232019375175125109354651581752761172193498760125244934221196732437971036017742719309500763834350408505598634096079046651951856168958669259384194719898726107480073146917951106152489271102959431929909617046685571512206133215238662068043336978524447522404382747923555712698780482549069097227290257578957481151393701810628799144236577694292579635047251998044335939893777108864845142872757217867166752299546903829621605715721738491856386983160972004264968271678761745186084131532277949384071604070156232581186523338928023910487123055177516597091946473196764721079617372325063630551835469247813715000879633486724501346135002982022397784648158580518198220755668657432730202437413130619721086083988297000750344475323335811867590059170130418310542431307499624431964146229411631752116362950407428215402396518732878461628594295663922681892931116437117659088850816495529594032173329319034086640849426253783268551846772779101446421367463866509266630146518177097792178257537949222880951828577410980904773594508504941509554391721843317207326674121588478155117884968443704455394176960482277872031475823501148484661017644136479977791071309268981199603644970430095973694153814791064892628277247693116362492458994334554524795191462633754350497067301966650283775390358665445826154709311497518597388088390201031101369281388206211022048099104065719604485479248438780741282779547569661578822436425634824020961424460175136357721113485597183747260709822394985271385261323677724588629021841499933630564055218058643222617186951534255396066593650200697726167168507017676348321143878320464795798957257702364526985493199958965223895418068930983169175871988187880111611176955727476696620129778439094132573678547529123136740562139869217999181957021680357621046202905273402648123648648525549264319487709834414857082877716202181069478265190326858414097830947682601486813785710414068127516862109484147346316483741125784633046307837044558884222017097918322332989396600293118702691780539803922397503907672707378791570466848260113912255580062662391190925490478353277060357506368945130653348990195359315935999021211495962605143135068281396982813431208309933981341146854556627850817879317347885749056916804360158014964518359921582740908953361433540145643189261653999784262915319942388894620937535026278536136291441969367569201133818059099702945515353637754802683539604278238783995273221761635726997727931321238808272104229612011340449740196849524004424731504961839001212337666731860579873939764048498773448743419567615944138339268469185548102239362917593276211798717672273318670686672659848524741828928720940098313725013426973173122996180232685851573251911828380070033771112938343301004139436198319270758910144380988087248688106054334816016002022444417807067193029469019275362606718926874165974272051867834426494939361119988510970004495408406724365632014420353228942936917780764476118061321512413147238500604196894742825233747500703960576799629344639106538196095575314572751654501082045655186715074045848805152291808141088973590986983671832049769233408913032982537937907190283781490659630229853977011599614244543834452005365012137231343974050158160176508548549914311953046380280361678808708634750875962254503930534277117470572105668861351988746385751461062423872774758978860211162822033437184956594987321581608174455784182794708322751534727722194338753265586368283430478023115388333011704270405826240348779356580941359798490923606801936551260720017065969735387554611819357654755234116845214127514659239397214968404282806663519625112468491955022917243164817729973883967109505298851978365063777358973115311083333522963414585129111526578654224886360838020368729795757593613705798864790226011065931583782039619423990222351332406690024074033922486175997380125708989111685093513472802398596292508594211602500746994184953768832754776602354218020034302626676257526083405808960407443300929782027958504954833874853671240642304402262203878397444462832027494274405035939572942546105442467241217647056062731320431204259992086861254232790506007212842855472413823003631495289878456360838981293097167415506280127832369385830643894032401422901205391648470110282195012347122200136141469487172359521497788839002987008782920456360490306178479219922487002359591349440290753973294221841540773342295763766187197762920235554903377334978713815797517404442331318804488442291956374010158613567284117346470965678042356455205489555840337350031407701353575812886629815779679293389583671312153589023451926352672739776474518403920226090464405210841326849637044431132794390160995600543412469009135992318824803447245575503175300638218828712874244164634244371859673302760641968239414926518086587257163144004593833417867185789083007649653692035352765423519721647215811551683596768289856777987111367753910256935189326467594611541966556056708681558569895338614387866249735126038093296095938170407116454823080381380228762896069519947212685629628208930132744048779387869295667499821130508197444892083577427753137401463843217951965225310672312425166945298338565786506564731540752780113409276908832827709578690523317519517769623092097323423360191642757957282130760517206653562569818142165885322359493699558452596652968270417220941967970389230463027254122096233478083783988369537833062206873092873779239987411995392529578653571824504447087456352273015378271856304557010142991689117184942945614601147296491035458507207022243027844855274432222480749821354312017851982058029359909742194424969239311774372728784312228163424342426183889137128349630245378886598277419133163320059731291481236632678165212017210609282367492624517193840741159431391803871265009419811178765098895803384126708909034892170213895098678599426594626344455619584437509514382611055909415307906417278532412906653574050517757891676245248917568876817036241872768762864593601320086047174243217341888481601061782113298476365480743355350871151946032005699577447677410134441296359590993633946156935888130993746872774566292798693152683018299508548432189508445592091487530816916564300653583145896192119523593651955025980530934373649648894711132495869062525754783831577317244315399601932131507822539919970660617849500802851849347616602800962641801243356372007546159715741115504853497221445022531531945010440790848738450931856161703424962392322677124242636988888850911269040021229970903458304087573748875609360549927392512439068507482711743022417686874439662543836980924590934251189784781320101678977678394876207130248556923951462504063636403407508338290944995175592195897933243731033466607746484814821581017099069722793270067554196070873668054982032499003933425337652551656799870325551871877567472156113865278020351906469911146811949880161085155404898929043487785259491864152189886864983259033612468229459015983699870669193455309499738656457161310377239404353687639133935822034957208425412583953822910841793885363477086137305805427948334971273095224954162877803445679989724969991987816333366833173234529307517944768239002331307221369942497013045896518408070644362832448150559510252579093138049933233097902395716497058747183144079516444363997954877109465670634121329209079436894547665159330220586118570446296062774362749064007769190357196605439358273254023430749152485548306334279146882440433899480860628081846923240080902791910557079756322748952981984236558102708386585525978082854366215350192627771537085408788797059100067600081693321308341083931596540905785181575173553519368621140768720337390265976946600767029986172019051106391941220854476212964873912691250594839519778675418044550644333960468706502785089866296792563320327325356416360021976123637950013955673551082266708060258052324138672139009499382145750151613730659276179025357095457941893592712437551249351231507082503292469910772647525953575627657503699362073702620807820985752287406655393966954204600637873504127657676557083319777528661091974856618278930531527056991744973471917912801908946794242431546769089258191981721154325501341916809272676878495234570784593497760207699500167990858835063553490838708299078795315260825849031648780728484007920018372847627327527723541540516914396398947126719836866011588069807741205323394787954253236600816462695931555615441761618565259075406643069003733424379718147164811439868919661494284604991893480717069319224886981981216497001681924807367276082259419159195709762467832955658036480035282801800205136052369766207482740259143487391860044235494705349167145181583934199795861286951622579646061969794446793299734540356691510159075414492181460631139167307613847115584377646046485035049573992135333334523893953363522722797327183832981169707760995151245817291168097641948535100438786271279468713587486400269642904952689022326211581762561346051880985939213888040822141133495102133186491835923522555952221544097009166508330020144908458218993183123322170198607592877003834271741422580877144762580376180647081210938676411497287823920672794920023537764409411243450216985073356327429674113561102482849136999062987402913428099998830951255525926859206496981280542250845816784764511414428269062473813511111385106677003760880646020852611732509210629864507488047497604367970200330764815501412537352131482478260646787550980345192875014987150899657744856883157652905964140873331517457225802865687433165313092333605365914969961892552986159369370693111614687150199315642961908445571011870681203367097606464757536103827682845491778773485885987005182994887207127172322496789457704881924123857531762813070214554024734589401543515182343872588708981780632004350638575247444191857758977491569233621702647296698962008137727279322742528497595212981777608488816476503369785367464440685084270570816350838789162918588641453211733150929073474572226592668627776993522818550094357513675567322476159382428273503742864295810041672037882425750553198445726967985365206048609468842796431839108116829330937012189769081770406848150361878689028714420437195475424767222440633107652386561486817896647348341403321773243295683585346269374483068865210989884827095223493490593487935545473293216358441965113126703126084770738249610929160281038516810985550616098466067085361554592546596468940709795523745832676908279477121856097657214541694694786541793058406645757594657918443791348771721834772887893309097468065426386338117743523911990909606602730669275319707826174947958812855584072154322184864434655083577411615665243847608472500898684520074684088529115262260596149007933879687266957694795297346260657065824879714711720090885807874137003492955255545633831055493248899485700851946159296809416225976685297252579571683640613981235100450353770059547313312192136177952466355315448435625671099810810659842591533412432880849873964620610294812225119400786951988347737548289217935920140040912739112847897686562550389619253174368928747272287302752708432232028177484768610836604069229206528881148357080040975743273025585768046967995127749831114072799959921525633413716139404534802515094394442386607467583215729560587869867641526781408496021631716446681219225571961257574062826459434395881834426793570788387023445285456595841099717718988792028357629284061581565970425629455215794471642319821679790896987747387563886561209307708874966229271811427537083013583972367269516318477729033991769083996973267921148638762068505572311820924783061511717532800447018714966274414585641771916009824124523886447290530134710366397633883219323452651079452333767187141483829074547916626361968745868930750411387619581605410684535441824466077062482466245120082034162205078822577463194361824602178077594032173216121799050709453209738894211041626091146143840701401912006056761926916249475847225511167579828901009202886851203357994130772374778368797376404268432986636141864534474849812149448811905769966181281360402871912286824766147801106726926768946709811830696738402904426105455694657889957556450700574267794061617144251334980584650865641051695521889603496152663346040465256768085018236874057242583410032883517985053582067736463585933457397173591089367463905649812876356099091769289497960847799882800807926247378015809375551855960086157536985101761723992628560135386628065831020941497422437062170419141217646496703005454398324786647564935307300859650999366459136810276895739999049442311472957604533732072011977413554024976584715357737631566321891937120244173432687413502078986821902271671650720193669106685399172206533608240066252439362071185545077845213483699831763829003108777482814517191481693805321676191376967306781901274800956347094976109776871099018844995888216387476446738868768547215619648909252054832133151171310511571928152227369475486152798284430705727274047981883796126676985047472602761211708786400551484326116594470079221839768175752474595200514491193695238745800121984652226121605789933493065095740530160062967219696240020929720754942834454552607411816721835341681945082804680622227255759288030785873937254908478924864090693219651549005496607587376124654539894403372643081706342171940752203703515267053976228891616133524269125932285932145463255024016671857548638566728263237238368797646012243785772280162874078348384079198742090661776527424604361583000143455846818777066652640990478003975397416630321725556473219778132821487315582889346015782090116917009507240159320418761807863135359659685037107418935998268664062234384028605454958388852489690494185161980911845754247695713067018738163322241827155557589625740994320148598008789675673889372487629148564765618318171333954009317295883700530045914164990834029874447872869338553926251425400808712972743468295592333955025714333113347037706536762998182936419785164680438515916385477659396138428577305727880148626230307913681852127407186495923043445903752190972365805842099033515016437534734522645684241303678412289234508863822254208293036064722735938268152350694554380393688285219286611469762432594808150041107932931636700219357029585651827402384107765153659037188498985615994095630420684022466918720584442815342348706021462079171418955700765444798685755100419467729777628723180071320388321323518847319510150179040184640926432464356023160380280871124468863562678256343210491379908820453206707816355271891683619750000042462894656034753626248782205426706836689574983033275866849946334317902345363362043308962115132904144823825597120528942586288315939754744852672739732248730763233394689389668711285613926472896018138267785180486267905125113570695970154702023631426546153748216412851705616097774562460310952589247256553430304010965757159103505052381220727707796265165278110868608112439468745033031430994683160754444896174734813972983367505360644815469640353286198796531885577834136097467576609831095484120270046470392002801813408482403509268767039846739027508191780385727989638824244976991044171445822530211766290952283878281909653683498326122581416069303055475095126276178301280136988705044197768011922403443349945363344369484163104144302473834727926101451968809418125972715440799322790956554223572969218112637711259050174115387605670812438643255874412161943962666699679002259089396848386568386076701214681095104431451686765473970764602981228552625629710290541944770693662440220054852366423961788981305188995700956076643495274473808216222497453899811647068828059814072080138802019166121316222828106936144925150780295290114590783328829149823870375487453125101792407887927863086596112863744780868991805570486019249353529178347683845552965578634330197884643214850681734142214682076663166160785425107575563261372044109951016512122223897559311590244388193070199063021858126281954942030936008020991163732141419093772735667325504332734458587592650097943748214598738301775038845904965119986814499004957854023248088365523014269589485985583313144074601891586660287209905947468192531949069509352799518101862510470547615433856525939471525955985781158047939053524431667134213309888711872673040306619487641387524733052511478329705032632896647020047294440078794815698705715196716719848229587027297469439984771529517219425953958185769595135999867773176732991027025007432956388255385338919406963454846454255922051257631426886472106040776320981993812508703503812379988997025999237303885269123466590268565921083670665232953622728591524665932418869527975875614959715150574684726483510815852113078453569730174314641518746725699014183872189613070531895081402288333479377989940045965597106568724473362977329360697608791189061223788569856610920285806157166809485312886003576276004015389216304347644620862869185686732615687770295705783657391412952207668639709584727420221258241571184476032943470933724892559791045677397895535260557847037857659495388317604114922443459745932726131864417664789086973985687430187075926466072403305185735605305161106820994904415115180641888863922097568505758144299682316795149258601552542189770402901121172913352447977514882128383852057429342850824082543580030070642145115292663317409711681323013230262931037503919026998303506318772347951845149720017831278899739930123464195834915488931825874261356403494839270578739819704871693710555855678821885790752541467782106185000636940283823554755287177055301774321362254067415198866480793881591292269158407151508081687602134051353592341706697019702653713983600072170756076946969924683448943294925195827102441822145238749538038743494173028604487552425810646811856403684308268739535774317241869769882868656008177586444018245870119626558051114704274030451604146629753607556857554793977626210891258146453359970990916138758123055708515579811216926653606761460422850985614550851532214325258778218582620426701013249273301700351759712329308055453054858294261840729957240423288459106745992985508118408707646570352214455393726378398904332539720659044917397192283772259706940284867189140726785985680045955260525786033689185175676438706674235493187890902211026807352444717240771616319934672272193206405170004511193085486578022734455989185612856156026115901313357268842826932929768526226832470376118128428631084414008950204934569997054805405179526150098550763376155638261185741416413582546457485204504874635836701341603753555640994247805478902454483980529491677882413549745858425892564857967021954830598790565908701209404861337651115885782613042841327586169430068929647843638377894422292392014614484440270051699149664596374040371518362460949735971415286198979160867882735782887429684609102460357687275364452097412319872101181801005834871169187030855145916702795712638112807411509340895351480691137896647661196913940641662517474542984454913406413279860840954019015047991943255762746151915239116861483243266008437778195161933445903952080474525553944826339059032286511781903917493731804733219020611996737745126008883235823665839197977693582940204472568244408070234835088797057564843486042565778861451018195267443177853829037386722222427966103070893366596596068385363162192974210155926221024959581130602066891732978871384883177099937237607028839568936861751398738817258316344222059419571357473667189312128086610667068701650654970186070661845883862195130678457931354970051057327053558492300239437055673818604102500159445224584858701558946453883980761650988831157503382300176402274009588813948134321809117850642422657280475939967520757368974639214174559253853710232941514422153757186043504075871078212848180364731431404534259277416120318723747174631641504097669444862648218096384604623345936371370637760288032589781283386963950194055423658099157903141188545589776258371169120238724820191137488311693342985972435548670270645042953668099991720785956238495187674601218089114720874711300421945225434420910498402039882716099588943828620996305390349440161796813744872612733371144605562523681788493266768394960175284778250795215367034866139652578165818615252922964209572735831730077632575746333699579201706760403923483508696471038463661150570849611649256903791153212719212239657725029017867392396169955237062984363205081379495260318049319498532312993487909274996225373319211134002060673373581634273003468186355472007952450014121071296664185344104004912584111438388732846771955112513403732820393703256550976694514685089007328156053110838326906717239668007888646997810672517747456189032421188866235081506253288838794570424647460443525722730996994903330735365677663841873945608372578981016911807206775859049998626166165315918206730640141396351032831362769502919240061058189672772566687288784983697805383694992950192483510796051911449546618066704452629451498864200694665727105829649317852493962113783339514594533562601121901052199495677913338639610351274439023834212947260155380874964225966117731493754585992278214054244370187541259453040933757474556655095339886819775855384634821560771894223812591916208279489961738298683338258919114454948656048715467814542674748469216497620509069646676851302039308367740263631477112541272557515865963063536945988274015095409644748218138151077683264745010506914025079308332637501830040808045457136469795453197954939371693182803068400375856299504188732780824515252784648397569671146787161663067001279105928261220029738974088890784532041430577516663132699513113044341458572954752539175271296489316092003330648721838866160110936990039824198311700026436806474007830669108233291971027065638702020698794141376768401520485881725888240761739946527365522433208027186101805039395032043277367462230733450883570863381754946040145157516861219224171541701848343320743107152085877764968968001209297556844953132870219896981729994608087235907963810820741152207531035223905915971079084140080929510383934164115831526930578248370288859478272948276179983538547240578913004712484850511468683158432543590358880787866614854387733477725806818317214539047306990987533613779469625669339591766552601050544643204743618827480050211619432883759293484899719399716336755160133632344763412895705669617894164047857237178950301049151533067235815221258995037822016238391432709487812307375118320534732416750498889939669989160422106043658667425423335226880821017842734161287064167400156466412904574925660717927650978838525989742956850503215317853865900174788869372760109595893868009221715470496858677743615848256559084954833229966113464861396447727165857456382342846349962504096822796307299414641807747072523591951779253007014640972290629026137785845474314363233761529574545949626576797124781226015993112370602080310367130686451787150270175502030330151690851725010420164087672244894162025875455247110026732966509857303975066259994451940505788772894777725668345758361256660631580222819042632922663171930960349922851753465603861590619134168729801877841503728702466368275662934237146753104308608832038183234328809579447829878072383252809744618123236833551283671206505453977811256589097440006645791718802238949260954463476919429699486445272656376857081965627446677340895378622585047411723292792796987679912989681172338502271982042724060496099032514779881189808160788706549729163682833933412789588155859336348116883640636969505681574638696406919784837076856929321670674707948879496780575575541879356874422006862836439391137166867044747317354519502636511003771858517900829978773228414207208990416616509637355430453725951445851634713747671971512998859886061425748886415063630753486796150696704524887440683568850539248817482414670625951963489958436584556287932841835942774746478141849152409766360371790020175009791036336547625157514234218466817683190772831711743579803046551288359098497909643231060248818159063123413629775843673329921826493321421533992000160855435218231232543168906611546324377449647067756825226544988364298151505449654069583404141826506518910993072036327756113937459573379226878866936159223034442243629332145986248023154255508581242248536984610110233771684602599253095231324152883413247090522953535912294756056560658492350670548406974560986312282870732024614110697736729367907631792699376524134538435252875872660594734992894953484655483585217170520974215935727216242819790570862130342152717847924363964150810637179230411604735534345682959834504101974373755878232313467669419874947151868859701528598310606449590970384149887364997042712423419657898782261366610594965368117226672114076139356365458583284769222346678834423075363619686210080504796757555712229434936456997536527285115935519313894081388946926784838772073869860084252281622182539118933959285296327329954660944970577917439673218472660765971024574182879003876849665831785559989236176602930002296058691485928915564070809463056338229357410464417160066349403842069204558688233116262042960264033424395949420212458553109742647689336141406228771865666078452318504028729686266512026505926865273656433028643640101306499627781060396880638396502693210076760717922690131175402225851779974043269537107315077605753561343508664216925746893642251906983451921274672164531091243307271176815680783958992016681537678800201550813732654686781425794077341889074649754715926976470142089097848672320076309500206359377332449312286250216718217090267948661124815065915954015528036033210554785723629055479913694318809407663377765340467427032916101355955406227536092890641767488274626921593274177025744361126238112989107076721375236357725053023019444384633166138529658659189013795925460528805630830608075671341302361894498908851474834458026995573684725694624821192412603775398930524092405966586689189030907044963265816125907872505559919397082141276871697073674731453124695594025659071369311636986528674878407655586765654039456755249069908542500102668622048910517982337468627641314581893821042424158216760952299876566806306398296738003458188635166547571199593722671613992018218596697419528566486008582295990117185429890225727270533378516374917632033815608705410114377791212371900538110386103760556625235753899371940840532883998921817548018247775997221737432410287102271826474514145832361871641169891432328829064419056597882296408888806734637276513200068322575855809103729950899167695527965342583769735858757545266746595627537458828303726032166721426671154892802483520899048280797563628075487896836383475120407939055605782990174743144008126529109885822419183562592813734387917068815768441935189996963504624643244587054826312394149007951221389989784978729527482446226583166825054075393070087114508593858092802465636177955822121280613538713855276018543073331209459616992431688005626548875916904647077374688817265089081799696727567750548416569376578913450557957458144294505580258546772565256381324175793586159085793973226717429628424276138115727344507012520643908474391583676772290670051656548479206983601171364213819321380449652635458001755093125052169443865457065929978787885805240193929843605431778605934095414936127588034848296268825881807656492471981411469062768828264865168925510729087256806772467864756098617394863250953745218834165028571188097376348479666661230247861131323280728418699142738848994457653473971624397108457424464373671165443695527745439180735412048039724870615188194999054942509804306912908906043454732619811728861275185707087113522020138532237570248987496539229498798360658414802459233588221329103766635111129083919457990350653190378982129593859609368034035327717077823936347589610128554878067854277191289606626692887045405149115666729458880701882564438816225982269823663255188003143132678195551465042337756927444046518598074151519525389786991087985094205352915922883872014064119125485722126203199726852565239347437544134722810651071580610609600599603880515932918643260066232139227064931226008026204796639698163527159210120089691073368289391113950749841537687608875902059472628130763216054763439219247465225254680085842430362082354883445516180244198168572619072114666072706456669966412682860937869292183254406084456972616806728768530149504570290221497112087784459644338585864647007877430586212931613293772416795055580431356452787762175401850539000100929013370512712168745752959789261870786463275012847083923152074108190745828505564478220889454700626332096830402585638971079147187061477394022924258825778939780015015586838362502819545343847670988385518498608830529899949674209034892712596639753850190883409592544604923169267422711356209434904182893767293040888227607619736967239261984760642368820467487906447118371302625565355115909048098939909409593786450708022152225254034764076306143889005706913159040673991083937397374960183911585622564962411101439384493274403837293698239343833401765779484916699023809600703246774929470721356871665306439347185589131140864079380096234712707417747635412448815501091814322895958418806700453242188910393830013051794057881123189018647810802096321981811009000034352174227854502234393060481507741027093202600680069324878081777355908819454300874312949056101812315909219547229234678142956584736296609788681612760483854557477478658249455737632970050603874736673099451066153552667859491876327785006012672750127622279391498996733013260181963781374376048000304405033278888065091773162798172001840145431631532231049875247492560001568240997330845481946275920793699447476832126648106217899385528341030536447138449612764086277618101242917095555968206860865656664276678969286261340881614162899185975049592174751837114604184330337350479573462817234496072182606203499650496908627070016289098493087497763676744272971277762121828026807327837320837708113791251895731310305502094616810186942841732887726660935423206073915911164755899014459585414660204278950245364511921668114974080457709109585735627588642626886505545488624213033123582386033743365960321382517724482429574240273158565532518743857483297067373872506155962228739371873361261411932987907170796213441946554110398101578152836559368077123331310329581259993707191719120248417708975061663599815495427439024821261114402787819980767234531960832192634910448061167978832661142189010818105665181614849798529678172715286562947763125031997973842027354679559074814029191485229831332502156415054550005936800208847095662590126582600744635923227098766697842347542630676423879894889233964580617841118318516153162045548038480459290482705867718640973816837210652206680158261411428962694486082980922862362808705440646376770681175256129553571687642449625218256415884575988420156644800025032835982983863436201913042213892949664707762127526454974354595977076166988641578945775783834506776387537196348561141779775221157267035948260474738967349840716400377308454157462813602546601287393767729943519709525299019807980709968831133131379372536635084047769612787533228561548383051441790302507867723651020787631255026223307494609306839810318611425271588100358845789474922649956254685994185922159393082630608970255918343653456934770650006463456163262983225027917959603081420152075587302872274470535293327002444532055593414827284854556928008791859629700338362306061240536643441545963862236991801102767160810973587719941026092585827801806329987039686309084131655034965027662865630692625811225441695282930354792036952323938950354106063733621935390449392315431897097942726624514855385406066358842209125697590664760942621867230133504542327524627455878065345311005122480514408287062262223659129120620166851905701353739233361798200027358741923793644685371299181521890929488961192492804909391880256624735568902136429048765091412553257041549844778237503187995893575642462323655851951332743260439566267079603383494836325376437028430263873619549686054327626512117543054805844683934255652762678660850307424482451175239845593844376917253278059830630207528490956850132997298091621028370332183268244901801629688522004018726820946744167993380623536335443454690229394592251525020939922427437130681140627827664916926254419371239808546027949713539864696557787178309374433701929890452862277824303716905336546096519817852597690621280940286310983615919615171743453233364437021428852020281272480205829143825123413063770589898076481432909076059116506951871893846451633165929437122963647040124858418462246287718433145018043355953815495508921654485026443089170505185155751695813042076945461061118104929097460014767487954596735617785889290699333391527725287803664032213594854176167613728615926399536827225685154582756378731603690152267641578316974793986008285784214675681944246643913214087111411451987742490265485226572992576787188097477002018828363830219886111371210608630155494876217804996219078625812443763558202655627605879841646799361956538179541285993956547189772614005249542399713354719141720859522868068411906847115690435242056704743371701935563461050924346823497685653240333015507749452933507079807914988065958260322329232736909708898387635440680625287171704123400411218864131185811631221037466018678552396366802648994368883689360996478375376103059539835369693961607108315828083401495970005080224022075187146346991064448765339823990903381265573777271982382848508522045245970594833979689856792673850019749714985521012511080334604721800854742487192189477612516946353087890401163178538567105160470213867942722259973331068601559603249058710689348731689954832051347085510722607812380236474730031938856670896427608737883849092915313868642588291656916085208213404263470702625685199528356346770642405165368068861437266052862283637805930777703958265191533182255367148327424149889600165752274804918992971569331794136460101580014647911891801305642260876868794550771066240697048605691923087846383948185079313746306985557120276479091257380947187001874132812403145962447198534811621561771788517882516150221427528005134804080689484464100213141494506699127403932429962139064465392852937866482480805143069875597271665080200735230758511267616072133682934789894156100496131640785281425449192216616042749162461677325695610888650863788370858901564584653941363569802635676237139643645078905868463593142422673698259253000288596399770114275592533936579072416515811050755985383269318542501276019452404142975322673958306112295523485511126315932876603050905554888361091198032871685060986724884316472977284337457487688332815343927307473832262055845569652829103796441746593420044700452280732946799851195590706921272412882978148533234040905757403547555434976953165763693371195104762769577719582444309595881130734674977696315492694823756019053852766801580721363884124062865654245110694746773451937389112132217740032764214707093051550047629684157560323259337298590810350734009503902626144816981654137636083911453792573899668199361731357713026297870942210840382644407638626580553986894557204807862117978550041320387453716112660978014805187095902144708706521412279979952816419968696335419590109369342898823306792425780436268753826618240010258845256740014257414904021778809375540476489412818583119766247400301428212610238405317124302441516065475217025700912987036873867082460954130861059304586316868694019120963368654258576950113951983020015268921176054365147175716657153977215849610646190753567320222854668518329678092155898901451367114067127755070205350100411536867148822654851780078459536442181475973649562947384473144128284312702970973611053540559604093039991568613368727344243073553439463692118641846064713570447194967848548808325223961762653555254461500630388122208843299269084060428918205277527112548762245097578492066569270098853502030104490983653017475879047087689728940539574641743291653560607156097674425580859218369844339377917097031093409263598325908311385664004895823956929245790697526106024511767788985286044771326835191653025069105093426342193639987561872900720022755096925250094155982408219055631318754999418909418262830649600023130892408621475994659349520404128188265723876812016376611437911728920016940024196057810498213289846285967424526328007140635499056675069660132404812869708092761657665460229490305283261846251122191086293476188518023522552057481941036406148162328710328372970708549787487212974843265395420239961653979885954976015033440072419134364057064345547193712856839779983829613462983098936755741529985153212240710328395643131986649460800967169157244518914290714983366863847689040181890263033628569027143986068548493091641538019151780068110820712751359790467541967584353326842430932888894401310585094567092716765981251711641910093785859157656464797364279779116829466993677762421077021723215481675200052621416021884033918139970673339549225332517458589469530230885822230065759364478788001172413563948668902552597284413868129151551025572333039711533244731840173212565756633029179942919983492778475993433950677553654626839234383485003461714084342985255008036063025896956220714712157738428389776651689881541457957757492494133752030916659311999202289057157391429655038611209326447524327226095297770694125995357896332896952968480822897870459477023096913334404341058792358096432422460370029729110106837887503101662548893378767875317987547817277914823502587963873079809926295446484467108219329428446764567583646730303623991838684493720626742120403478585394735639745704573773207593908370489050000666923293793731684022573131811715477022318857816114411615139503923071669656849382254780457989924506553703710630454057168673194153447440428952657304942518783590297994418891476559912233219467893999965153591126266466378636911642420710068365822257934070556278361900131266455704971062656062422633189342724511220325758788809154441432014534056911115046212133693405815411006862510843566995624684268101212223344431902788689306829339129504263163135297976461011380358174734531544241176919952562239414872376051471740102740538322109196820639365454757605057120492679214309821625520893047985237443279457777618207191005331085118856365866422366592925604896648760995199444509586527068185573329817865225383359324455751278624802601000289948539524944154010455855454648213089349359247224660824786958356536349336875148388892740961648989402723265623796412583900428405393807036002302573897854183028990916567384412099750988011399493611429748867734480480857079561212283990817373816809930581534780562886998810255861669639840532304177516442700332441549562198060154519223305313363241373950281340119670106346176569839531805848586540048605437441035789378640929995593173128442600897724009698273639897191389881539475936709568403474758700387675844534678911358883252678740222139744803155173301771720013831951757223080290161811767281469034565840171358508967370149633203088799683807354152991409847243660147779193417254786038178301037300755815439235935200413864224832603513236917387666687147702526016351600826102460417408237075811221271016409873022530886802952124493379034384412864753354553207734411564396950545675155254659780725935011081313566573360471066705788402806443004761029124451667408725155754858860813159732130527093706458335493202287181452406709608866307935311490521809135439764745528672610252364939805071602892726814433941739135346013448566145790383538769393543563272293018109689353304624810390812548634251933468755576611021132052203237787520045147543117271582472453335949429430445872890948004413283726809730067744780486705582722119613733724610145317788282144360333198890563539746070858730485904571016096372999328750462327957808119571361832798259330740676407881001709263869485265676210991273198472097279075899227781662212882484270039405506789153383057308844160181673853185842606178424677199380222338867895224454754880466952305030107955631592875438814238440066028871178080309423021353679964833777785808004687281004637487375833254146736974103770872926153887851922429700305845125351367083959102217404956900648881385410610429466394559865422152419611733060822307236632527503466411879066809164718354742007608022918454728833391906798849425420708171071330659073793425127956258880702246902384797442663519800867527854512821196771581541604260220791839234757177230116862496524887801415805297565309260387481056123358117068801320940705888264812195291318863068475573937245587192513922976073920657936408366815541907124124802533456599577706361211161715977709918723085434040457621533948953837281459307399118973531322706098925118448733089295951183227063686270150802981127597609896506205140530923599935765480136145768863942218319149334223419734529294033157686900550824672736565673210897234454730103283082093992575236794680505698334882080749800299131796241432071694391149189810974034975898959680155939641121943826848932555725297382676002286749607578066394537784970041203046413620958645113420726885459526275979745722492791540369867934360530989722856990227173761538253481258843944136881518801024787002609873453109333199504156066276950643848635353544577540580969335458851311379530417528681972272515787922696623310797996720108256058802533008355580277984678971837539057692982968827553324597367533708168706966298339076843522900649941769822408433381778820476717351180753674886763893502891497107489792200823810172212725256077274217537372997211685900188191412697686734152368990389589067038334121330317903989080869460130342847603758167603048235383447761045035627051244438042355632224919220211534651341287072323171371058750380298846231921833920549685540924900736372783256073854899302839766378877506005353233275736144248795059166503844373477777909399059562244405654128947709577030331700900630528294419097391639071077908318090441715311245358736763644880336167635121301360317788893410431965084655094689963016176349505693639036546021612740491909049532198529851548720176733308075568069193526680601226095342737749873878295943310911555584338826041595601445450004379578088597096631540837664678313034109576803143798246719879227041246271366423745709942965919810597561769760042049599300293294812460555965418104394385231717965475877718452646617323750523482617491401922106484358133596492993009332863709441835142265048198814305615604933445620907917040114688854308952349331652254044537252330251879690360844052730999883476442243828055010622378705992079560299554947348812326115099860702667303382678691977151582672977359714903402034054706838583288531191755775887604311378047021680051854906285116481824506135382067261375771482263204159542147529540226990691966901478370402290115176169565384333126608544565149052445371640562922443282658844431137386709862370923644120355238368246065669886890523315704784796761140435520464368382052929802760604533821544626256959961875649600459498881753682636734711471004441323204801988489898828044298905622688359519775295598123244546743530096168091313591792417287865356055848757430377991122167533950095694115381069941832365067350548216569775434757457914628353654883895958808895708314083316930800636785369011314914087909744454667779121046941898841087317312116475414687587302925486944237774003514810271587608035752498439350517951430616779039299527767645013052860637583892596674920837444843458778536670229034318424562373293551641471788611154433601861701349372924781484087522166329753111952495913364852620991263288762530191756577730042723921977403972582896073276282338653958519982942112905674010119127597975133852579806135072883385149591900577805569998491974443657738035420769818482560979444492947095933998999338301108242705585755609264136011423742382316064525038928556060185119654829497421114090042537528062492700231326407329570326531987842796142586724390224204366341308495770819129142356200974468956855854752181844473201765864451629917340786181219530331752457124471534460393632144345984256194337656577952841423962991199714664585450625722843254740409426240142029489873668012443611791447740639094660392804574981922175110653343458119026439921926376607482545873739234876304178493345014477057456242307556898347987996686129168008684152045436361037232912103085896814304044237274702876135761474131301228240796118675729018054361380636332198997503532411748323374182265083363017138998598267283264020208259878877993976973169377667689567643603204506728931608736835873155619314767730446830552394997169081903941545408253538664650218536730346960136991884995969282423534978648680644533518740426651344270992113123419937700362782132507480377750043977677364899829506958492573853664045730584713005244676024117366625308770738238691370473100896880915616210815135916770039219065763980027694817389707859999221977052285137118069745260434131295397955473259212870284170437359056098610043387763986307183979924029705270281522567666114731097350404459826272267333007912937319248105241629197664540261383252482168392163621287632080145155409867145415133593607721931478330327332894936152877444067987521056399455717724676597522075563320854715336053824611563156744600759289967399442208370371564827227376173482561572629006374721435398377564465201377023787591262363395602125858160436368707942659246240635613996950180360364420571487693134895850617393335690902745716583971917500758008831910182722199644594698571068879665603477894157168812808578729048552879996590134315764969638106109465863011463270007690637748534127354214636217331098627189156628267464194533692078688958557304934910056652515777908274084832079650623313932992257768573233113474140652548167132682826920112177922762990033663744261856094777936151363636351880835627456844353283902463855749290023776372574905179620331223659701698812711805310780508586207739815568167796178560409513065687005158466788275769885715856226122366300164800133346322736825692584872056677511888502432413637759552054867732695367010670606954818335672105060732030854853437569450792875007833431297684812327199742650668636970528703524632105002358019224257629705029006272245587841448274716038179947757252809822358884042256924551529781508181648289021434125334266456131517111740776359079678972088567181866250879330314613282731962287423045163583557406216453230372162724041123249293440910431124872325811594895766807433765798668872130052080809989691453027526491491602627878968179019743942443460788441525782353443627494367102466359699012022554991818172759606066155164463867452838742595720665478986518612852568988900657231558622362394875416649173120475835315786659898907407899105042214262542993469996255742332014615561933401988416231390004010078679812754147301179609585024289219147716234008438678265645231544212470463604155506054648558168894743718919332488517380641575495745251548704441880658032845384832102818893308268981885424784589186879321034196593518081723793982941255431137142225762044025021804523767575466766985608194168299304310106761387943975860952030482055166362688922954217603269438390467079776517812763239900017656253672774988405325526399774681160735837993258463404475737473799576568046062224359898161091124165236825461447247203538564854925594535975516892749665550408444085627719585188539584375817002195458324031054157244679588704776156105215190514775169477838934865820444905811341395911423283322302680550570932034503585735055266098164985940903854192271089661588115452220125189077793758419950260707682481822353218441829563907280231659358475952813132996696466643957600465853114907284481238100418766737336082246276976468354797105683547278676561139570247495450640295544679378724781837274211334640110820718304454623187811520903883782886035316067600497104999327211827672157982235875553500656860586376536930750461463784312823814529887539107079269145184145758820022029741534924422930724549809600828045725531494284780899045030697319991099021135311756550144650135047942546563382022195110815073011374878887679026456688109529359578521726728706554521511033675490911968916452039544209885797383120890497112617998123732671637908180339718938326540654970006774920117576893156764325829713627640115367420227556786827749894830595514294594343398078144022656857815599143919253196636504758644057686251340806947304284255372629621172368129207405164145202612697671595549646064997551701684319308836030243509300776540169420871041495408537588695226382241628789679026078291073120795785451689591967853257430535115374491240004473880673228503591756347089831080517811164140491177760920512821952319157127308497218128632937962552608722746131341600519966537557928514115647253398994004471499103802567627381828699691992527299345524068592758275701242116756665266495035212848329361090773396911736127605241113867706771557150220470953132847098801095521938216071481671680828230449774096293571456061999107548040414943611782902234330025858074765851155997154454512711927060329713571203004658036847747528980915650006014598829507197335532556260157817838186494434242346887938589225777232110433702680998499424417991973338991809100473631818708840792344543692050556816376699768398550754114859284497107101596725833559979691577952807663584806362702002402295657803746169654889689034435828510981618325947592884627186914670673580715107954174983736181415926666712178907753925074830912133243241112812616896507567342671098831125468115339944350296356733902979395670771091686816138031011363161723733339016534892363678927232771320743091134892320522927229448656393046517333240795596468775331880453982983755910325623683054201829618643612038049303305753941478644481856750692789823704147667526436829714556186793635266924868573357140158934467029041588245919489487583860865608268271596541826251941595563626945021300287142558390498605235627615479036213963441605344186261817866064935471942657013053246273923561657846189810488677936248617663573732141634393475515061498222058959663045746575106619453969275777534540220826625566671864684650745952074662873403042159692541656889020996813436031692210915753186437866778438570927035509690871747096247019281139996701462554990057643528091501633871167518597032707355479764263562134498078609233567256114693243798923917645990768605991285422174452720974354998680005008401309146576787329801116772037592505372268040766144515484109472484746184029891439153853862849021410493338871433816960708844530922738829745224194106830514420789866816811140845558129734706012703603865451211854044830477826805711454317474137691883568479740698798138248626275040156065197351281731661045119553736003774706169234869251255430150005901865067380277013989320348738552815464518491849589066607860795048399997441462308251104286994807434905865849238328858916695079411015888288708165861263427001418282508341065068103694685678387476705753233753437015421618200543561898869444983813678076519086473603933405132271629592447277663244540931253974625098434567338906017527167211766851025382453007791082422443628075718290243470199592649735983511208076667159249878643777898096068191454440753553352115712252365336278663607998673423674982724706669892768473930257888510629087312620790905631748273062514579317829981344676233311838088025525435425788554598385656752545868176908171937284775135782223323758346134893910692283759951505229246781958669713467542947754195454146606854126082572363207184417026078338212782945762241005308134680148822010394335357063151918377345349565403996574214402062873965556301335977391638040362369753143167165233802610461422784702215973320670655105193436895905125388061444581571583384881568154593909253887299168524731986600195418548673044664735340859674672385148288054047294469677168706972112711654439261773953966215651779777100302084211352516149047415406416188813243619479320023529855598356314973500888770577792626448735093239308691543847098771186396128811411943775060648892331869732446508789317539592804325198902272453862387512136515110487918997250958919387332349375744236427030629858764556619407721380961125392595191104427368827181593133214240375353819361182706113078368720300354878752517840229793363876610199536655527484900746888944020040590007926117350667083423189221199070818489425041340128458991311016667277387769174106633901779398733712778639012160795630178430107042632128973906653521277696165827189040640955431057353386966324764295391500788679139526062870817031079539044274409381726213198663147011436062270183384553065307593506996200425595883278738662966484714587852840262208253189228344275040792851470910389762308462460929387825514768063323942006548748477897593159683981182960604314075706238157811523892763566691263266050006019279613569615829757634381460648507315687817268839812420391943627553404422543728672311571171840747132374779591349625176738697748774191571612247562040723737453932258783901551684364065119890455484216892485764997520430391792981977387425439812008822829172279817351635838774445062262611730243298536563847459803025087943323614311057604588924060339803949550216018316307836282047459640359444863549506106147270708613324712200332483843445150385187313868404507502742080371985891637948253754950850465329862736126598819886004694342460904572944723629529413619910310428468680447920179460994810704677635119008247601575075280570272438270898916801814936517661510416438677870104237790775082721360052980167406153120270477961664849883520251494384779279076367164391258524308165759834166989855727216742739419527087562820146125206290884737960564532303034282887431050620664098647885130441077728467321948295185140478842848292616224752407604378730007737016949279920547037755483547261066213890537543061153601887430739725474339457194501661593221249556107697702145359043587988371208307703577084262569885574900889386649065780507258752962725867515617745616176185699944623863056417482428399547718578056429371415386956359981092944137314796349180235242774363624154974079139954154901091367877085543966483165096358170160145113437234272037986222308809441720988184901527082671460895206109245119091724283296624262037415347881939061631851997450352833049094609186412170721240828621944855747690736699427763704541084218357286612301959717901726005233915640131710937471053927959269219262391896812778067802062042884308551395050588981552704721593224172106074988850223663658246529738620335740269780821365286246387461881338469125506103123371801998931781252980874871806669557617650973929113262079354455742479848806199323965609806544619632162376774421628226517395600160327216923386398151108465365543217046083756820020712805298318049040917424928296968834277124338978892537316500207305957869355300494003729869144554087572565926787807792801275665011439077034505348626294215314284179700790909994255436378753098667380276757943799540670023746379461131538945986976924544322082931754774599591358860070559350073497327009659737504373404582905420217253490824247791523188794198624006442286144392418796367257002156064243693182629853899677615401049605043191932927655631155331411622898289911480868192965767876625727106590610695092732324885493173109501896004647055267239928844319038459183028352919791344993442591642611189561168936054508269623330299374875500252014588817033626103008995934643726431863127817650172309711935567327133515137482001862644242763992098174885303405793127492189686513687206710725732385330928900108120400334301836562999468310536686098514996655615028812262039171310500522500985338276831620233997696547554926953196259381263705399952988468052192994420179902523647533920512988108409005965708567787782876429437957365763411122066803631788944514596359528991515696547094140272715562188818543398714885187939318550584698416445811892719787205675049499139434839860977089314653295760430882556637656128283890686305832232979628487425334868612097085992893754630666156894922076562847953694976137070750871359698162962930828993149332403478246091049509204944342454743546378133769801784933157413770511244113966002831616307140149203655599720500727368886720469354725519454342870374861144852928853982460934261560566850242907588048609176585734360851575340031862269546703767424766113918753607239714796103980573792579551241197541988685196646532824614944804301047567987513496348303325761385633706660934751409396085042260217867707040900685914621253572879907615323380863384051089098255111354231056088037654191769749440436233994697016671691492345273641261167352245483640044399454865841170273365785924098550723219128345085491969393606438452658662219037026340264634547877629824462669044362216721040731283382606631665905884148223253116269919914585910716005639758252627627903569744393054143881443369608094913395130075359734870263841863430035829792090437728193315774224325135788735398491632513049975125921436086395906695278144296541239172497643631105866329773528349966203598803849523409608887232908438752613841907412611982077191061573639213404614024682626670843953355285051279513240769116285269480947623542901065946918567951019074578260200218457997386157924105713850805021807580389093888531301659006421140763565821356156147611016518877951757315895712513990687174416899242533263199572948068517996343775467998691700640849371586890666016769228357529186413692324656460850620130839929758393692236418165962708793317392904088448738472790805042939840092357068911374782959211528751998482210852913031493246941362212338950899388760454052641194300386885733344716123852608139563386861104733994583357698630112884631427244507498494283211356845363752591702415998723533708349732082574479953733128879687432284255592195503082865128629851846038799733416692511248141431822995719378286802930672123894585774221102492104190728279518925224847941465000357386962725297965965804516069649232426255749989798601592772016150281590139169872930631592133674000313963760135502944017537491927331290978298122379607543173705213920120774303234365555455483933004044877490168620413776851374547168163713122949960365617696449052050807652375936686274715171022435408469252750683211601877280386076131393059952838719846595763672726150352380082002933547679823934776569248209156810090265563505753937531698191128248836458754154636335077139187787202431865072919146800731692712050890335415930546494161921526585905355464349833026246041428192126589787735178325422752426823467249631762032081315481670527328736489641919345333389854526330385355731607884615353629824355299197846255681812835342091786521609288558556441533653267986972100412480997816687030977840422771343315134936052054833457721223232021298527893042756726096735186879370688655921533633917476126852882706641087912274681292211978216188185575337232518952878202266598087040268270379060739064061425721999753392613599102162143849485375819453643918413005157649983657623583281705922684377328166860691065092830074363793147394299400033143212654185919595010347349587267311484123568939064661999000350857785031611042040841754827278159696279429478019207196853305706621581035665014097939953680782198931249463477221582664814115259921065340825203502786453277749807618284392963960659608658058339018044390719391834869989766205671126741288607141345775604785951061416117402178370887181697971622777127695372611237162377944367091114366779146886670401878888908805529947900273986801260274517445548676834644083460287495346732531664705191483800366171600999962506515164659156178352971442989238096920320998458129135387053989270869417858113845465321236820490048615130098662238799384725102219097560105224586737523966450463745943871795825747888695895535262573894438245050324205672182805396272792519036808437866831933208763173232761117761528980364425408859490956625028921860777843073499925931118468695490805125503879097645369312657071743782411447248490304024729845409833890073552068406768751925749014714590730577369421382036407567368208594448310291107404673004375430155007821903790970982939679053330049779724491619087948090260452363077460267402288910282757847211657040044002737165441137645942734318785529175452469526529871207798305727530082971903017695389180769807774283175788053814433253841937759306142577469454613394390502724383701203523348054345246858032808773457784805878808248125921200381020929496105225438867238130235380857829192778215146307247462020172806368569016528699558762563760849094666288497101661288307658794244939714024109253688087175166424523535140003559283216226598515421743168201244835826342463871629477458131576998553997125781180620278085715756202869204775011279659002763701800963696883309288342129598944378690597182901170864190119439410780893019250724842839160504229154453844032725334287936011304374731835117002542928919529832268261286015682754979778249725028579845873207254230439831295069399155526030447065160811280066079532037285973736891662109532567702842695657910537411658773170018130721536754683325837601650606705752378522180701715322080040767215868936405761145622927673615484932078206458883651378969514399117866686262419980545553567589427433752617827579007796050284821114813098603115538540027687381330574855225657290930714520474028835883017503576514502370604327404213962899852207864120975616753565358003054093759819573025791547329793191379689629268206241525916506372224862151224507620078640513873066216322872347517933052773116528804933681192681821885017375064589095480171071121935136503989735491517948204163965571775762640991617102637907745373112941284676227690862192528771600018019833232336044188512569439928345346192010551506520812802208648990503188837242173764611023038537936992434710344594342035377847460354580901670828483234409306133208182716986814898745844429651265540976876758823124739895059631805974429661945620285335765424132269152808037692543281436959409093305233119602299515150482328834078726451271945086178675256654314512754074725196933410828576515040607007654424773638893432826458566532030119256502172221638243479306335465524847561159458719546733479953321293468943575162880492907926098253321639607205712855891083388751161346843116307350035998486389270369425428313873790571603662481939338921708118362811022207633191934519070984112696811887577719834008335027367217467394700916266131180227885391346443546266477420815189762380854326325610121069908037222519607789075534632583562762257279593247456606780691873243652621906086319667248012983824035205804062200378535256558154784580635526040004852825813693529777719352874984829367842250882262007271540299378085503036593795987580433681635201176113985927301916283509118659220102162753744894301288919124087306151242313699275740168847965406697776665707821631966050516805250335792636295741610379155665967170578126188104225628386444358222798790958620310549353677030352541276135198307244835399822289617609913475812971126361960639200068088264901322851426231781739138247367597717832323307162444517453186306879605615489416524332505675230745565338463556379546212205732790804507590242904038638679695549896857846061168504235367393209339204780351783467836627377857783681485856093170834664327885772912926930334221283193492505241040534141693211663388384261445094965117620960164389798249539131459111101156726170726732389365799981707332343812185945278014345606691375924306660080076878452679369488326864044467979991965572405036205307020972085967812221055846635348898236013594855400920465524979695431684985418884677315161022257354320715588958929492266627137639122860804706155499990020137766553552422284980469274224918299501080385804447844162412731166236234272293114719732874358407153015477918745456520548192887165378128325148416045975893945541739254601546932485281861502649034682323599248942114660834328335795404013377159865984619279860742939601802207889350726676096712644314525500333735434541406675465457817255968792137693513841457130783057747735672162692648401633350459745780766962780915417052064734460385542333639033038777964977093078480026909069676745054865372814505535076295275863722738727825076406364710123504897817957612085734926376117730687250161709044824739695442499061947392128226638545792610950348248577858338934442579656433949876526852711191301754637009786252057380594944267521290304981145243528741771734163760473324535490427113480259113198997041119091933011662275484116404014535885278744552422820080489046036434061233743126332702841082082828329578192778162273797607964124267935646036336745297957301443352859973876389597109869856719711817590747019421354281491381121917726927535453078594160069213931474637957047943008827000256143572140942685472290300382676474407450707286865989588412694644124718881703757260920711695028695310896702092066539244326833672219550052213623056321056009528069445251582762793945704867373178644039154686636613211216751035219301216668919113028141773545956006489477181087132493270091944578389301861352627453147542123646360444749045302354926463674413199463596926831520932887996502928160989098225262331021600258093526696213721050185892761392518850846644164193297160040951059280585011023483445067434419391800415509323782451136207035196108007251497732577647383309974927974099842168459852096992478972337553295710520017700756929483472221359341573499984095736226808285420919984107888990660066925979015931318659487916253664706521245104743946968669340730269994925853200918305328623006069060882416270186162031361040924427842859636416229376670471793876866927202251177504435042501950530174152332342921460362366082062385612601576409490408985804631015309804328118564740935535620345165228586401047560059712158427217183075477815159078555253515300424255176739205540463002458776957276997895140678581591207091694188710956050075314762762473640482120702293807165802107037588228137327669744730750151486295262546382204455318981720175994599426765501062052935748278077573921209933833842908525313155950963505273260866318910708910633569011472423155593332356323004330270420207972331344653800490671124614612218594813515648320367219430278071435264673841978681897457331944378723305234019177060241339500205240279431204063065205465247477545927364632422334334897395605584569999861272443669730118924776211886461955703599139108904614027787311501923160787392193402464920174793944570392619934462227753117306037098498416797878045886831133045847083993946583689393222146350893930916566463123576972920239600483569395016431460982199367158482691074294534962731489251869853438189497323913745953172718268186941577658420134455459917522587672092976564567199673888057526373795434587889881568037478349004710417077642402017847005775946699374839940995089904919398659706919455935034798718905842997482271305805860072139888254431307843017064523347613679363298783931935338268330922271439998798424174660766381582834903436034067117379370349487129849534875242310325886246526939331860990197922354280916756692597699953396719243473860523932349467768667848187251204086494078452988251114188457989520132481899574936600321042306076394319108252218138625531845917659057637893894868953833641782777788312153287133898306510802191111253691255584310595614390587001890573927021412018130093661617587368399926653406369784833368376765071467886365387186505353531976289311403630781431078212957961840686618107792713943965700405213384747575942959242137880744442245331578570704058073083268231480388280845801861233865535707423651503963366096937509716876827807624242667901846165128319488739107567424706942667645654041913176171229799389034066061412251419623255479801792525957443606750105688687913140588668691118459558468260236115575486553485721317898819299108667423303277722034993632426214264768962925813086790250502503139075022959187693658901787214462501649925709463037078487161396115196688607868680458079884368566986471572222773708546714664404436080145401209627852404366385155671139072438194942298636260525590281569947605672489519939737109448606174671790125267645282195004114083291731348457983603021409792183555767598106274069532392005912179046102745216135353762583038697599782525493455540563829003716751725809076464690315270487030990003850758089422319741893618743931453558577443979126903762674921892852612358024707430992934093664950097656749495859521535288557427189049467659174916177535287567892037936077325672990092461257540545031216485598626675613307823850601781002630664446112814553489159337881140008502734108539339643245018662701841868842271443176252585239939080716004369306693145065267209277430595667415802983856514020720544020370898197965835889751173296632040506875355630113559880469437169876463143916808478964724783053171465201635017454584916100806521664558027091598583935567311574139641293373815199498701398816328083997622734073888237864074270617915619193608688318237084142239612957228194938021208284319998247767788266677242195183270641453449615678911612341159788250226463017186243795609210661206491822656522728305116044684969482926294264248786031780046821670053401897528286930175747372483719847202944132781620112608248778183698197518508915488193393717214226912010543813878957972576553081445958578925770310932979240462326948776331335713005606349718493739491514816244148684565311917437075301072733120290770113348543723880937339806845222002719237999024878021927569898792453815463862094025742856955452207988685551782447685221313356505169617424414421639748350615776661318555285096794256131631111828944268022278115444676919652166361406234888700795692069296870267074472605442660759130964284085918093718114460540477508988597891986728202888081382502083334657568456903325453144442509897440612921852020948765433843154064365904918287610744353329351230456253210353834698445023723811428988160723627435598706430158741539561210223816455808974860447258627048677981953215002982783975891758972427950873336881401367652167739115404421477129469035710744852879809887529480002206711825240214057597874097685113832210910386489683504403297715848364654661688539205507292096558635279576904424465165296390799685178632714409545434600652736407387915218219109869250851448943105471269008687061874531638075372816268304145668416031751800471362375716073054736121104441428707435831078879951155598275775901492399818383605909629461815292592824252155872294968962864817272625719091709203980732264401104870910972208660851727476580226724992054393200955365979571908550115978814942293978531693135939838100857667542187114863053990568776787242232261259225686231479346350562971402980267826693700183785678161459256080644740999183814263688688705551846918711239939655647597797711111776535164283186383272631425375577355986879671955343562709320435573485984112419657812061467334228358359796363170188922487982906139554652975617469360476851072303840662737120292715437937857973477384587563101404346744473104064269911226971855715256090119590555117092987064829328645537770787812503017238063964582698364330262652792945493625007019956661989744215144354053967560680525296996294955893441342274625519041354923441211088782766484200047564761121869770914466523638882720243692069573634398682377458283528679842412726944709277830876095300681623098615795659448211456584166753876431929205976917182410648183808513579446925842129349203395404769060970198131836398958066903378717964367818965749963819705578041693053403378149873512279860085488785684782488120785569341778726564589318717079771715114077673583679463603909308581157535310906350042445548184190542979612624236330924887279442863975550850708878116794844109407898975045491372949526621509850159889524059545075971777435506944496181802120154412499343016484078200494614059170583311825191518059493575504024491314347163053522136845608203538414581837464569286336193718243872176324765524715940741356698965930008575583731525678196011496940229454817310932925987238463679754020442652452637873521441607089175106414184462331594374550216326524198176320356945223845855685188912531291858940779468685104583312127065394451156357077158803086935400449486686141966802205624580645472288116472990268163575120348618563963808664541638814534476040399851694645587486997593135419474293463163737749684393302873172408637916448768959074195466389297418731139209861498401684236975857758973031095375117852703640097875608776532538267138465826480672673514176475985076275354024371735938471965393803811375780418073817816940912420834822047761057945481914667600933533743570168702898832027162173884824362554449041667985235006557310176839292660232423845674688321334851286892086099154523952698292849010468300172418076704578230973749593816333668688482417227227811051744450859825991217672178440174609972125553819345781273805155071380528925964769954603726277288237038785699956080328243633313067019607644893326409719230960837508894383729960578589472338402725955007095145063846784095150235135862050604863584778840065741339021505871045492552800897270409611214451848566289661274944578889299945800458288659015304754337357600537143981372205924635529497851471588555901973777907334384517790435345553455260051858822712995317440089279035042250493480448496222131636339566716691083790093880200443935532041402054451614332786284840252657385084913302784323149875277678728785680042839150772537327752952661287685908435452277247505397384137199620388762473485638809179163171502398551754249849464466492637478165725801379511703836752943406212114459102147801775449560961148680916565044523039619720986135006363344166244241468583645393881602474312834539596022113179648893624105476031775842330574219094759461371096576921546017857643479263947830171614915855981126382120440724124037292955240773237515123578071578067924915836055132070993919274670706619290145304772514535033697198595036048482755199520607293799538920424682057128192256269376211033729391110981851043528519018527921845432510336930293036332051026421589592041608234204061162348904069905069467157973245384775792017792971130152429497771035871816812288487494004083099346557748518398767701337394689268383124768953525705083335114909253245645597318203244410199069391456159574835574861192672641151900511416863525522992725426485334404730627542871233458204067632449918687866181657814667687783571522693685672864758501572708675230751480271454534519682312155815542743278546888827072449274404727038724687970835228299465477046055870036846309848236747675849465620394293868976238639877886326389872984741053671227884074923184540647077375365009914424720328044493933260427037618345718087589262863000593661353654459261748300213609711477736201168101431133062925146069671183914216806163167571422900371314444524094390439219661125170728833560809674618440049033909391784885090967998263941562320255940118878081578224412898221515389152098237379530231885521648691520617665010529375746068089392867904254942650705521331470627013348119173467925025112681271214620230069552116713261866894210959395323828093595889410391418995915733587506657664998835466197628214316544535195119834109110243327445481930457616490973230145131050124112662578514329507967285847085322190933421189520801505100172878580076615354973415068991385523736606947487473395189326107340567929454158539168572531555663692759881723112126960526842505500131940250622170544480737745244412439820267623726903536345895386596780266503192947717831383324565336448353907701613039894397503525221189128809375801792648021842964910660955110994921514637284618030114444143414164779605879284690352269468929587338702796220043019574471018212706327235855707771018329251495978568597056696340384048863441827062103328658817863169861794161946492030575339704420859322005397116074477449300026998341085594644088275764890234512172771236826056237871365217428401031885804905922133816843634239554936987198283687402141807904125930149903733179625761661889336461742606566727313750813642851714600204574052718401822020057844025777840899252160840996790376175892736699247325652975302184822464799543502658700888984629931013249922564305918238349185413030783133468528099501471338356039596740036663027521224241992446511633950396361346287846710884101280826939808133903656595986733285438815491788713692686314318522377748189159807062157095376916914507373386523924526296903190015244874907669982212876501929498240571136928932794374846494148316017091298901551382465244927808399886817063113447151985536314692106207486790376275920937191352894688575355918323497252018072161253064112819396538258255426428660877080552863046209056893974738637719890211042603702273882265352218291290236022311111721676362723259757058640111939372364477371241407836220991240926245834935142494563968358394854491807700763530887973238760666582828871982727928284906792232566087353667412288689843797994449227003770877098800349566057783767568458981664576513537475473801477402501896448475391846515834653934065442505003424942317489730169487585549845291483663984070665130670580721317088381706968211547405424771726223444661236930694583008661921752916438701538268222197183048228694481793631989777507386621451993914885875324078686885114856792681529925631004506680283891629747159435438571459668294642574570739092106799253334236945955622022624797591744633668807028637183265173310779067853661405075151569115794156039118539956639522075125714468221421594512631525146907469992804448808925167261443441064067190504839086143381880452485220096904797025898319299817858377740216604536467782801702045379528674389624005368907228421790244809484013929459069648360612154036571263509581235178524359600370651534589623332371975057787110259244547015957978819568458804244372521649725253943700890676999763433495333772108501679964400644907520180429120983835186199475143591492757589089371134166737355506724916397607385887424935204128732611072781406808900723716392980677900722555010893788320405398187390343345731518014501307898845468590046579661983151600462874377547275557963948269011682985555410396039118619166499323270405605429376755797202673906767124055265229715727342200898294322183408662893320131034344629349239618518793723214530179603565358587986136669505127896718705248836154775627699839346584328245465169681137726670970240083147505352254836780312027713470707751847216952328253405259555635271508212153650589522952785116535517035006960416798170942064292089746825007905098343928723080150707439715407739135628019127740727467754038653512303183326454622302606021394364336889446071704862546855067183153780920811408193359731285194237858519160872553116654134062135970829399309096984025321975237567506568203735106129089508001837016222776321795235082018921278067693305274012019565349476344637871088604182890083609502007331938988430072215954706415869875793863592562645299349793930859526894305948877661360979569335061018475327987852871606893578279161024338145716957956611172972925512080115674576220028665327946288654539260782391094045649807256582928269703272613382666879848309939942414597986473692614787267768054986925703300878113719311396330819033217011625191072777534421112398531305593482691129500030355703029229141488601913501162683155214724190910897665216543259417792106115296185231585211826758858030273560214488185200289056502239297595361477484043763578751121040951674653629889696783205178055932900973207500427981623466212915255786756304840525072397890819993322276698379830986676789774887397753480963009130741318715108426013580674085787210267554476151597422963089896565435402792187645443616923196102660771068945771718552578764676397522277596584513416725212724921073336531114222797590708370315661388804243316926472107014518762443706126439448136623170625287684870470183153523903115094409105463143744011146146192807891935229587297733802848145452588606805956383436446101336375797715997252663139013344330660924114237140579200797564539954853828405833454936036008926241366352511995579575545169344304450552234654072475017935452796401640975887157111653259770291357062219616592927087591306392921172874074956691690832746899883560002121575710042207211589385993819047813355404304205018633539705376591707251089405193397139552929034454683641990862309430299374367499565436012957034151047131735002366040585964284858980021712161695538097633695104833469529787681622651084232864244379186439124975125217506466121737781139864457482587626819112610255043406489143021011124272738895747891609133277653965543820681892014530698073071994134025473546801542255166732361296341765067927709561260581165549137010665666917316527512197343903994311131684730135550309342745548768804966626753156958716603946197633888552435585352718463683309961447726228063439709895758888923505370750789439343113384494989813173165001711629807233844599812441065632328696687990801373272750188914327126497943992172751157198198797771825703240909032643525360109810603728982254529276313554086041771679203119539026682819368920844734575577569117962074368470125736958445974299243990314851707327162941146927254099738080503954610073516037702424112223144634864871196281196256441090488282541138927007092714274188550251337510944874710922529112652292568742770874083531566754598285315518353710027639368840301321565846457058264120080609843237280821939057664338572123153225135938841387943429295024977240178265141039022264500248563541058649552566147132513261849911317048110780972409224922970039230372930946670505458364140925081863647227693908362354162554863533299292442500263309893045742307949363286160082433385148566251443260149017644038307036475384508829175362874070926473121318782310166974944623350846497405558467795454046079006000711599262269505626410954746514925342967449535372390782388652815293137989871619560611361931104159248453425475452269843579489114023900641542937404483610485160153945202526185924783399142049474539737185238817979355131944769258395544681621029740839824212430807838443511274814966652978798984556407709504787366399397766775083915788896720885066302245047216668402648850403020672504488844145754333550214512506666218381373967945221157839024036624347656037597092413066825832048765012930199443324265633532940720205553157680590261134751730973211152967747704301313592452832328351592919320874027291727554187251911563137142024862015079589991656378364076454677848864702783107873016931447201016537006058708158038555028865330861318123457165873878364260085381852208249726346258243662908412654213116074269902724715266146729128625971344441108724471615309099351205653809771501272639582023305726525092700287069406677752964967154236854264864366452630928754212447792628071179700097435051269155623112726706137066999860781126623003678462604273279725956737043792643803687074621333575727048012759252206740864366652492249802139149375070216250759430854583654074827517035365501916920224131097828146113294652536719963210286156178091617352246082495803396400784100828908270499944439049956313122956747681756360322229239074377094123987397400497202988657250496493436187339675277323310828913296399295018365135699390016327311939350715144265538848359811311543133096043665005164842361307514519527603912842659112903405153277681639070902561780149542472480232225870754156110854220189768528980471244915611052813935703068176507825735620374378929928640419583595770718409973662521498025236736523161592863112359150582198937808500571524399210521200020511363002386711943699712578904888841974212296401241759256015149978650311820989602332802173300773889732374788280067175010161393198462980824770514738815687628468144215732813025136154034216162187668048738243470011311218010339632463791885115310333265162973249845775613733104780619717414413977127689237996124002441950258021363946462085998730202543702211634210461794499684556105754438254544240646699061005265162016996237582880597798439415049217945507834240867465389707159032620238158023188512952598606275761860785108816411796512862461303986237444126644733790920496871110402956898245797409908927681125134766885188904504453026482673993153001727030898778589397778963357807847344586193615324721879810203837902503856636515989560091783598058025397259787031129091004384413040916551270433710063958852065015263157486968744530273348063532242028991972357776252732346251091328489662044592936967069051940198518441481845950178898711279513191341902062855760565302693857215461755926678991437364211082818466005390575387193606277904446620617502184356401333978828627416724914646914091807363269035408371466535933098657412038541011997794621703693260646405301538790842960735775370939497076329364421953407149303659712566851702561624691034626289092809840404884396921157510066846470893954806474448503444160808396485558267866067341865443894265809985334316863214558437729118645441384129994257262242020271790926443098241792122599272684452689769355859518044822303737473000677753224054032584024447671319087531555779087135938493979311454108361667816695057642131144158775457571215581886947491990336413688698528450772733436233892438497223223518385074166485154622273417052487197646654735086217810977668244542882989233938574552502519743210837987599094150659758390505941554957838846125006637811568212334517377354342707608649954248461174545246215661388303823979541561364943915591071579514312971189142677178185194764014747875365345824847577862115286736635108904496393600220622085662442918271314688525065035356471097152680523141034270137686527150033054463618266185836820842328650857855803622239607835872957636675041628525893318706320236567303742513806873804145431347962761017294884614995404004984597289538853450428968558411363935482632438750092836357414301580697564358937926335304298325739154035536447703989658745141457948144434442511703384758798582927876294014572985624535325087436409167458308220321420051091713657918690624614046367017518852949066382480985298620311983682747873832977768059025074109864376512756703036387574664120274708606247071110854481267519915939417794809772706484525661588062760641291320634603131523340644770094499944743697969824629560809211814758524864404390906671247973432629924359592801431558046010775110510186907641818798883266790169280684242353484058962741768620200605331089530610984379647141397209991267942152127910912867438193264412607767501107251761973483159992469329670502316633349134026552104042700632432184771765656078321127171438123661654978338097086507416228413846783002535653896709517357397342147915122527618846981724055050972194452401954939034851551457139054338707937610113471476446825803085895690875954354632371718659947557097701223665338093121674178629483518283713832696222079213974652231962965315405319117456141966876507602981711518087717253529812636856314900620298879767191221199320498270914953683915654321838884318595859244407351301491270387966653291852043629453461616524618698579847467144134788666442158364933145965081238443397244891939344928404895334717707981018023503649943872689460604869297369404048815664249783343423696933579288612267223722766867007155951601134393977863337272143332091538783310287164357678563810730042770690372298134016678736595063657835962226289512451564604623103097771901779647492779393142728521506842538855052916561127613582242217091044594933774365306495429508027354904273350473644999975067440041802222062634877200192680228799943129178062672464460897231044418706028414123965325696892252298911276859880980437597699566931714875454438944830318491354559472583131276415306300464483927593863052819326587580639586605373424058588302123306991058178690416729203441251929348848807510793809355393814996953579942606241421947460102245580174805773160123658045326407533938013743365970552795864503684639811997396787965366211135085744532530715237076076907126479637570781373759091786852552349403109862999875373195562558699622838198502550746162232553992036829393441545475087907304061501965317800076317574501109089592941900566633560006913353863263125788176859673142469907881710493233547379113289907923882645253135976658402994401596335311507694299987239933142541049710085368604780380654772804684279450263658744902776808234573024891654813844926439770833388994683116007599784626023325747516991907863854275128869977342903418003958000243618890407158924166670256194320886372733214916688551674291309174690236682641348351371654572307123792222351665732192527438171144232899386186067766220168723355673845125742562661684130087394480186443094895760753859684951616141588870316625103934769396535962990454716595541455667463340922010243333564156970250920412241176488361887402522119535747603173623864853573984194637998521741063022785514163573381259993113227550869082769483498780253457540588072768513808479619605079967279031575276803237283174978117718151918611990567810408212647432354111608380641442206643813872436065432797129449492647892877756516998807043873914889580729142658898022824283002083659072676093066312372136306532464985400816224487389432349157876386645459228007969670326469225098895263900919503290458392899071342526352425546143353214527183177022119953478105852881447843961959386049580542251183038229832311653744767356382513206941182580274299404118365260303065728250777287741922661148358385973270917284200226138800670497953167960444750907228667207758520378913804503438900501903782882696338677225585314976686616704468643311663685629176043039061976294911393167951103484825700922072056279311453620974028982632228967980128181685965335847300405234684127862425414038769355405058310703845924856455326859537077289664086432394966747217804844330079830293545184903596178196863825440393096685267564759548875494449754589170990257230425839123226448641796985580249325142584967456140705510300621284875460964415776866207843996851730201526205990308988308504522652408343701495312261805712956795097171630648651524793174344466536636302415480932062116726538735208418153104502530699030244052938703802697316984994079914488036366838838089316137681776035341485223248428077594447361013241757588823312219788422925975198054632966401927436224705639662778844223552434717488292205591360449904551011307998734808137198415144112012780123148820712426905693469811631285300969284113182101748554164713887839451955761169596760101620540482594942434545739561099174647808943595942615711471522920123431871664660637901870898918438605833398945706962392803455807038710522323663310327174010915335944912508555635924986173986548874906135198809712849680658065948433911669562331486757211213325217065805664672224669177055708490895855078744040968468735990129424327948384026004348470633858976682422653342704218814145838542520633034835809580758903849270127122416752744163967302885316868419513629232718167303200906844922691710233809528082345865601083988975507193907340972909499716765339977415521189543441522228297390276632660666123784045383477423045658982578081612502985425341129303832456559393264225793394611493977829240430253139308937227927916229208456408309179952311507526169833620157617146731627699312384201661884933921719204313883118605999363157856949359217353002337169221024493251633397112918101150178881076063004189821882639399619973873107684483037798711308965438588838417352008822595673361840981229874091793430192531510483672748832598691399483290433336315240618822987219920837741281090130007600880555913900997878580292692006300709597419309841517099757222632463755792381331111907314539194356045037064111769030159218986799139923951348397342810807289361795132206055210283953498510553510948452025871570839507920581046802803042681235105127878766392641952321629780240581925454028616247048076582071160583753479053322150521435903250311734669798279506066761367150071849833986734460488495973955905376626683296116586920528259580885758806438584466024137196409828023715962844564694713749878068836332396208933206356651115337788524142382643032080694649860108690813518062091481839012817530285938606334846029243272066808459665507256101743064700097916043353330421724062369220391520545392238599994934311458535501436878573286951670310427142580540837777497010485487443530775121484976907894573616870144743919079420207043260468131889146707941332670796735002345130789178937681494928709820807101466407140450828223356280118518721540378275066056315463597399081839981281648885465448126638021333749986881763225721205462756282955426376826580097061052358809826811162455473047899686652891298340598217005199467307377593505539149609380415685212109119465038341441921825072720732402454896540459544146595705852878728950428238000762548863104372504923628048663611028203165077554058162682865319692382355307032566230743306217529392780147651762126642731044089488262709205307500554357012819468745449207737165550170465144590875965076087346835355041177727801184861084899051434703825657261154904264008011045198221999692452383887645133816011454284004828470120789969833735956256425766876464990785196068555061144727617236684862264754895408667288834584402615107477455497517408903226993123068438105017333980746694053201880287982222331012758507337981904166559651068423482034940442231376868633558971621754270580770507328379289195649528841711530597651350139157898762485707520682804773721886177796432606370737044409764400082346620330694977793254369587811627113477849871835800883231273578387106939851575614529070894023168774934885274286748270828117214227421142360075469292866891796919078242403459545040624286170884861350338721234546299328093721825129303267588311837776765050003035438607739960475234293139549708472049121547162345086603503669356804722368194182597724384026144012815666536257504720442502490561416688627712487218765800531069091758413525471271921691886500161567757884948980686466102454867251528475393196616331303618377929828758500567613461349028095954209653978269411000586916242546808725291303628401464044757551563885902506359589625777049559196410437429217167391715864424047343292312146552960272842166082447959510758805413900763854757255756424543244593641814802189545341997006456297616629462411495438417717907396309719950499182554612120623290747221014967232714120826326173715040220086328779830404414143970403905370370510091100771991068763595299476508281217952709827572279578195098650790922793782580480604759878050224875951224875434032590031454228623738231306362755582267703886868461914396334830615307899769122789341258827995019060299762834838571809016168202704001204045064977722167312850818165706210558715554887704066305300266800451281158734630427924885963213169094957988340952985789591164204925439855254074252478150129291164124224403757839441849910307449145450340469313965144661285740063424410345431191990760535937289062940495915654279459000365774007959461439147243850316985477603632401142708549541827791971320977241225036896315481088872532859253614699424174380314169308890446797408590322033806595723972808372706326071255025137281617508125129109663488718432274084917650578894176804616633760923833611953761064281294982202606454490680743397417679688033242507828858931622757158972025139374650198668073928879868588118886768354967737189006224472338060736151967165502201634116014739658865999174867746364925830076963833695929665441465146217034112563016106772255590279088378935718281812873140622835030420890744577946463802586835540622357222377940628213229079130112182040608754544452525626532653091823837417059367552577565571267811456204196251213773358949843889911474937697442296559015467489679624931241184926099326644087436964483812469760416404969070868517328551487667133608626055002657332124607407988006212815308129766744922297336822209854038973201832725610529050118497046835499734003306044077998440435079880216949631429603455957059756657796457261151361776075083176260250873170037082119767476442126938387691521219262936388447755588822509323900442786612573901441675418167478830151756579266663675247458103940985741537859692539127771709019202008393709621668535261716549156926488185323580258827362543665578912750149646034089086938720113496605922226316402483648656165771308843907858695798742862630346475738300532089338640617847921789228461117241562502095624314326522194521225108856794590214181499136911349428975883465486078912870669458700588556599872524948674463993873339598938403660327127536291199108414613909349940301233011590896849017524995850324177451394164817584924928329652731788425508468165635652825187821188515525134101844937929009338741407022412465650353427196212263503048314518533838429793655460247958396510708023142587289101050388680423230778473165465140569235868554473092134200742383108711231622795256919575301597647471206158514195182609225787656579195524759796766649489897314006292193826800552865212692405365133542041428636908634447622071171702530474145372149118331381952169578593538761465542339359665761555985452439148687551137489663984510800682298151706564176251061629743928769425589911158279949397639699173994381760130949920663954521469157309677408501247775150772912134075432981389782812840953058035636973307445284555478229669799119787086258717933320650423793852253815126447383558198730161154858712905419953438113459615756698917104816370718542168756316993837827117435561142054806130090500425633870141106903886803813991918886004479179444135281530587955878308810033393864777874193853452020301472149070065860910074935629724168272428093377022018761290405128471652818520913399875252992169560796404686702515085578539645661899923750863178587785519146564079569492028040968905453734910666456568722444334007729190215964713718742340896925131157860901957183541939215944392247309731134778108305492132793073611617929188746074336452844991412223413284476074611416275093836604570787707501748071792728737290310934087811262961782598664854068848701059385550410316685395627637220871979378531221679738965222149037591335058255770630129880173371040708225255407887154404527143106500213586107482440560307792071183530672604492531523202399628894949481649796716287698375440726380741023026100378483590299169833285606256246396201592150978580412505810036504618703476940667634883564067064807570958573807105316256036941253033181621245503486341906519782849800277565733630860957774233301423692018975713837020105585062316660727923243587951906887153971148155752886511647811536203001957897918989436539561790157971310216920154708809270704097827168414071753117531704695599537131266278113911272799909316529231909897979527611969787943690944153451416269478148665527195649701265053961629096811942881241608256492610413399162335031583043654060636706916339052349183102338714236944954751138700344685670110223055811346128693890876684339115209460617540100378576665888646708926846787179313722498241766854479503360128364162516937377115502794117386473759221075753737744754891739452071842117477732122023540268631634454439557445531867230417292821466899165492153253853519309209404336951767902950734211301356201491581365565880175923606508165537848996245097299675905571784599311126742863507259644660205664195549149011862541303622543820645719419150887031125228451416287153087189175023295080978838454486067174590088681280315574147168140602684649863467308159513168998275653716131063504235688344572239981506525370480704596696937070587542777756651845263325104516296458806316565391220276609350033531722178910584589614726769324700227960597447133265113569063762487661967124067067798848930891879890604157847255642411565644467830289174035583880149083322929080680856403974396256835046628339012861991269167798355981149294919532621109367893665854073272133313965212048292034801548610059969696157248468898638348700098727567969904472517523164278398949185240798977563306782873005500012364419866534886416346670205001076209784113682900295347386743530271038436585700940899511460111935511441940625396938809019496035824330790863877968992927256005999289201654434131060360250077623759425583940627249086700878672634166570473227928861728732507649805495676656013257319511625347879358748608679021891999462441893706902220153185422122827539091970540502033832574100452458290964622329526475847828406311666977688898386362182349344165345240654726517295646802487879266541232012428501978811916998663877197349166039201811283510771956674506564773174192013231649551587187035877635422777269737934001245738112295558482366115665107290131476678612453517365585005672905619564068912806021698059390922299594085382355236593614931823105477938954279560506041935856519991462725352755200474135333906966457835861961666741225378842857985202581980262660848466637776022300012366754914998685932209413406328094926629305770878267645291987173115199033911074314237608996637558652328236907991276877098009033196423099185493442438520949071778083352662052639923936035417116229978209511023120016340221168400833016004828332647180039335232545947957946780836049976546177479982677049993601290717690825872524640215913641538064303724073777745754551138023403990749555773933405454275763775239075683432201911245615131824105593686503647051453613217675373991439189691977992070466869175860298476577845147503856478106615098763125306859103488363745111896654237269397036831305571787874569195645216631584099439948520534620452619465864796444973882347916399911220794459293054247654894997962052430891138788810003870964309796243903518739136068890990392072121469873350267906723609186144976636953045375505533927209508529563470878824141224237074228477656621167506327829472671792317255742452158249948887821325807401157762684427421104119214446478402945562651343612862915313146952104374199151116245376726485147145657070307636836869057185707050688302281259776840427909007490129051450267636389805669900740586785158392107098633389497084518988819477521261340874093769131476876186020907164459196315832078327541060284291936870199490093831120012070119412671987782319461925473696030045948558372080158814798009320304283814521036562332136713786305655007621893255691684771890251346233230548652149503756432855093498694784234474140065776727162086045414457123427606776384131441179447536302655512646053541257397043019260118250114328109544820878338506775752743249931136359304910999057776916808842517453874384714070379485007183007615404302096744290824685417729346197739668058872046832237220939850945762994101631818713161105777546936560477321437540791972515245101586525739973053081049044813208552534884383984325080954764180273724414407289011112114287933090278169958695227913568098559753827160677251251009235922308691321722427114513420588830129988991727699001808493819888459217560402787333267685115764037230715144309425251051026550260141198665602425766395697677508231195230739496401971192333388662243208654850037287010463707385397813698897493803844990978441767433377686313911017081067353510579150673984811991147337164216411408722201394439632042796087044004819024366856309698817673817733688935141180130796426263683217876306766174052318492704964901161880554324705830876278356693487147003333435483776332179061373506095184364185145817487719312194048990948245383945083908262183744861253072641355766562243506182665477070166608837717401846021251370350820121681551114920263743923320438098532922291487671837248280765971004132159465572528026226271380645918107555166725334751738062286419710885123172916792423267201661844604346259962966712260286914486668953706649493627716542982896276151205225655874658692532762997731104889747844704346736628686356925262168137131292210476775186640694776964611229334863302111740125249815277998096745761611808950038630237024599198998489253035741365448940576516916093767680211086077168679058136407495692641082070845885953416477640354476102180172153851273290765482905494138118365446823973050077452683855210064897251662495107437128276233572797010561111767850487175758938268450995939279058254798024740034660481256343677996297359685658834353218477979061039329941157094921991923919957582612035919156645686172691088922454768612637376678171804627611615806454013925511348619190116051074250180120243452142412188371195373919137570402058344874439501165903638885224888011027898168423289856997227974492559728439914707648388800686357289225614949985530134186510399256635227318639643419003326792656292226787946385254505313041074125856732552685039712978147397906286745625419848040190729375965934585985209033381808290752103414462940135576507403960809992746023324138529655293125412252184934738940491998025367305517756495625856980888239639015174619744910915999168254278021373263903286389365960635665654835497825928697217798660415266721629986894749405956007421762764420983254367019096192262218927978069596528941462354407849015557756824662078047475018654557472251512794038839518170395613387249641931957263059387417719038071450876810275752035629616095317285653656932738532397591257495810027464546382721476137193575516705557766348208145710458120633549610282306559536679273061475713263908437031173398587057628175398515203170167930842190564760625685591366642160265215859395875901458706551335138179047162846204609442159653300629017479745775811736504622457975232905796074717841572925779171678019650937866830342421950994663497985845593955173870645682673863621003187106725063936959286806667455878125922901592121390103259660148531217332633458071041989792075107147355948790315796894079183009721789327013896837619403212632670834468236890780021904941705019236505195858554602931733541749202101493385817388039186239342354683596041603160277340152086308628933083716706673476222929307895040149212843231929151302262258278922041444228570075401555549108766917128339499327779242251507565146549944442860236241661231301479843550138457002809914227627062211978769218365232520346434823283242483110499728387618541386841940352231855602067802587554659019325214948646861488717861890547238345060612376547224591953011600497425836609896704436527716057807722852784507175666951162769850841004167266850123535679656307874309483283951326114336218959915100215995213210718617353428232163547401923268756683214930909847378852470879316170691242626053447703437858842221999369427772980667249886968878629503685601333577749570965608260061214846272101618356959939613073740332993603270294671760047526492119476824191276398810541575076741084203089140623658865039479683013656006127179552178420891493299081885227943621181928893219415468780143963939465984611125481646274984467462611646910421090162868443645496760544331172413035556392718917715225707489659761134564671196082880907316632158514960138965189943411673035613918545341748287581289536035184829305537658384839844385445406056130263244195522977432419761679676136100805348414835481862281190392533880188193905485927682193952216606002736968474382984764234755556089287260722976044463598894818863309709200394297649875059431910842509496538074494253425630241098656646770755512856318699370350182334401563451475420314734484692024825708682534551846607041360010315840373070635493550057335213757484109345968578875051977324345797608934650345878888588011541295478893053957956057833831516181329754453985243831391591623315693003465020311599991422352562134416506723444930913866274679137520562170536722139529056403720674491291063178463117037960119028507323617537253906484649678680577421338719818907890637643021634166200043615223150123851304234456846244766910895759721042349707389506345884031681936372265918821461653530862979670365483853478941861933577306914510962018622740313703357629576499854106179273220309670040303169494910242907858240002736385576535806409636866507662526427266910892373784026722950582123853996079462648475940167035034588227467195076035862980799250223553267979810681663981310700129516307430581832466493834722840451933521562387982158104187241890082225611848513492214254909776028834739585420819202465613640119139322242640305136211827576820171281373871399156696309947172216603495944961078082127886537570100554369719908652164054239944932030784662875068376084908094756046790738054956191723507122415377358031159709401961617316504353422255398638211339140360514021723673319900817712801082093490592905745392170447764760420354751233956265106841404485532040320264379134196919722560909138809860110938032118334280631848094727702972283993692145452822818497024420244654012115762953756323945135874654693469024164364297607767619972759995511725922472517810158213912648388375057610524162889982171528382351602542797614908438689433826891059356043746396095076757745302176497386506325929564145134261885775097820470301031768565705357123524952382350405695545697111582204957338929623789166570187267712440165095919343227066542789861247146479231315566289263968506229805049293730243389399098759947899439162698802462286531761148422579497908359995354422085386796454440914127045336336240319834476460385561716019349209954317991233286738375150285809625914535993812648647550874195412019607132924408047395347789377189284788532247573540896919281094040365609500493084586249446059278543819936320397256327184529865825195481879786735466953603756887474831621201099340887259652099288317029747611310878058190179338761673052593413386497241735339870093446491207209414570302327626305524321448217625715644823492787507981622707759950457472258472775948202592280488910671442702339405135784776701878894647484940841454914625530055798095097187083689328651974660249592868547125248031969340670961106177384394336680531053004793059878297594130469277918610720875297366648345496428715233765334560603579597710529565673751310752171970835645257153027528521039634123845209309944465976489269628534510622831214641782855302028345415526095947627843555646676552459302360412719012954547694996907246735385356399453854611756327593755077742657246592088468855341486814751178253406136749863099805176295342122364490196078996813307744187978991914483580513987363464710292835614388473753458213424262646773862472423585800637381015952464520837741496257705134942312876130305667457804162946059006043145096904782462603544778038799136446772554444213065242085432618827833719127724397019249017486826010755481299583063449570839631132908925321478011807960508195132840406791433045667596363546525081332978943714073272083160024116986014011120591837722812858402470562359078838753055702837199995254000033013145385000831561813167809997773962458703436073962211797286073869832425944379972342622166984938005028213327295372518249207881067467590839340005083915238205423302714370151315990774324380179207167527665046507372486887428753702906573848160316087673486089105521206522049179826444612555534982533518041200496596250019149900583277318154495438708152012556006014517054852447696953186016393952763131728898949458376282108284405197109687676391879571820807211887535139951100458871777842989457901322398331915217749865416898112057248230391243344572416758412278615201192050630967856706925127523565391858096759069660489250604574500670901551227750430292924893275661005232111573290148817923035719056442045187957842571238890811571182732425348896356909088803589104226923504976148781099480771501399390217966373025429007675841161954260633509349649513575925993471664095130119001704104143471136265289133241101202982346954631229832910748918524228776807265218383703026140607923149034539944918315828172209566133022787104216855723738308331884019020563606460876100777952286559048592694016815243601495969299152362009017406760171150021055159073518567478793991275147024714161361221181259115810214726328132199187862743460858716527029876067822264823882401677731995995956030827372430321556718858353141330007347618208077879021939388110464129512479660245647687377170689019793112710793944470316654141292315402626276694022971676449886413516287295989380744554892776327525063848149073679517342058982667434389587822386321553460563469114688400362193503520407278242744798915217383543246707223110423000785608999000256938310271192904710861964647151536726368522608306836765135664041866703538358611914484897690119780075657933005312121341641967899106583751054391107988047314901845146869799580444996729766972930376222642305864048938098174574503819354164098671708058604951808222502086277090467904311145774405344282294258604942294262628349301699516683029042689471070499726583657917990116949310817785991828351194400172018925616522829626317396277043003129327917154129293447006663791013548882163645846288557204197686968562068997888559296704540352454567446176791043608543126312335615617867669696752549424661872883717230575073747045806570888865158131348804437777833232989138781496006586393089567970573842788932478111400511602395672136315576225030031955353541620973227431271188223902026323918282923883149859323572555756987614389349723221965782974799667970594762460682135333979699005576483972255325416409766414353945406630919396288340066666885411879858439670706484174653269128041946496592511617075866440077520821432072663155647010090675090743466109589426581661672285013935236077457787601728936392521335606649552113062900626258719477114142803367405858112769531554240091038484365947493595531487700788629136542801150728418200612105401577301754945977317076129862927142884241373509405927207752644416610989060354133893168514695249491420186119804623589846382577221655882278008892541305381475737040799512110737383464764066457025633513119316457128404820196099660507775562881244336362496624847460858221050376263937355471393776858024383517355533191297255816473342911770161297341519358776096827991192345080125103377726763092439537145032812259965770922903091021477693383625888980566181859698760678880453779964536893548775390022587542075842549996553344855358574475357857796743242762378473321988074963296221380064977841509424239134052350902866870623417713528480691392698216250936095812030353989623692120425204807370160207635866696365504901113980609994282408258631499637134641543074339751466840728192515994942470441565571956533321337328255395097367476851421445341167380911102459945958818660949921461570637508508083607080176476639069904325272224664387277180270153407061654290131025346971784914413321046928460292203924465795893568772648547009406316076096976513786437432664890616906737101750085392221140529174643012506010785762003283396345238593353482604336807330861588193134842794248641742184468331934369625693993325054494608813500280520943590738071677970199709305454508352172723695013995620222295652784459744193055591786522650426977829702493130244366649672275610284347954159306532942030787764460214341677942445843229870532893688506407383190722373433795679490654000407585534562204035188443654129970018732977827215544126212812359804617921859927082802004694056165282369045616186395012223863429045804885656468381704825742582377537561073547858632618528692528910307138215793489950185427486062009310525239056572705685840867205802544349019975966887333544329466409119441356373525241736374141954907709317763955233910132486094893999579489316925171907957989695803891336319790657659387921136839671652687085970856648074731263917156542288689506479431146295696660280081685538094700924375867609752120096341503155988427522187005099277196762800625435681882430436564523505425620523210373381345514306459361955911412906909999094395250812581772673897575177993742092681493104978498536130868061494999708017597813350657070601310381845764471971862472283438599215564167774952757168086399905624176396271564555865142256898830764618084213272241704951090115387893365321177211319948277917385470229003057889451265372672669471279939438527651963376843710965761242730489005682994964010345164911690474625041670025320913563005438906500226412625620598115680791475249878443192409092323749021992162355728555733693009376873910811472179023871524814670066335881563158122257424184845924743940437949189064606975347485328823401011477118892243257469913738175620007522194459725485848803417744521013547670597396879904230097984874355621378425188740763867175753913316477358359586841520117144369025291823848775479949837738077034744608986581876606386896857854350026875004583560253420543496715421352145655200810169729677978614287572824686434619098995845734502154746403259513679585969620392096066321688354742640852569129229713836743533929636432812356990295964113488286532825511562755924328066652926079510012625432191560621159549778129372806022154398740434426395822992731834976148969504970277713104518009129595227834259790675495681591564319469197633332156319373178062877920605825968228408598450185694994695642823396512552910673063847438898333546085294811899286808383876047890080492636630749708903822958535673267684845540064470984517591015761916118307202343790698824559139770370634926576801355232858627600717442840150646952804268599183041251662616673690096296264899503566235184040277506619595999006356694721077175557453361860462083263160878660116531145859699578410766267294049679661504471992936516704187884296203946618804956646670296075989506816139645140865402058236123739751201022466545743895796824289476631547002379599384872051983017543916794090462315817128574708588706192752385513007726229295461376747052482864911271934445899168089028439384194082005753157919307700218323646618758737753659545046034307455048829708126905489994110030947233697454723527836194312881985684014941185835881110399405713092654072899593944302365641367637195174598601204263793291419617978357947893540114377400518471280247492727577356278638717158700497725493470544581274620269645312298527985243033961011692375824806585467713970353481269053104236774620118245642697540961342041763249185509022105150397683592458387115243699421612866825792232080919462990596823603234287083458129919487524447324090305028018671318164141380768046011924305870224566352429654090653472797792672504508354331175261815084420318904572830283326886509336586919830811411108560008605411087259521164357964512944621505462302048852353215650299399630193643524752333186370907860761022515554042941372416995369019201698137569996753746350739073016353948474891033294058475455158915270261810114785128283732240470887846830879556284740199697952242935910757339588194888246309511494804100458868493274598683982572127496324125436545915241937983337286908101822020856409210000183402218513836295541213671460022381966837960219661446849824222751671847179956169458861680929823480473537730635370764480529652433761272386393406625066332671733385723744704202633688340931648389529089102132990881000515575999119778455147338052920804484567554892488861731157010161964902466263818756398135548986818345261421074759035322955228380313256307929513236274074665237011024409679905555620377365221447523364922949051367018651135311086412991954182619549989247845160103716532531034376113166234762884776254863087057114498576322898984314659889935832408369250682320110085468965871540814737740256374008332673188960402658857698721113988956906008226926634626095135966201754647424873534923497992663362324925326081513333178465534849926608372736795025390567601503354774986170636284056732698647714812896986549522030278409915308191319247759005893068024736684978369236990920755733800252299739868153888107416220338681923606052248208975308817043038110079669152879768164295198384995454268368816192630371577970371563399069806442299006564141618458090582005782668322558425561678694548047751538854892912628822094336411114733950277469385194854801645527355715493756425103243937225439775869223153615625366286850605822542054158797058979551685105218457712108137287825844980298804132664057155241414138460499069893599267747826425287507704696788736537433176059146446224081463212902003215943370385407577410072120109841404024770258424538603601731677723410916315361879567963926630651720942534630011876845255616418958252927464126343933189746812878215260264150547100130353014797080179772113591242376744906442043307159995616545002487419436121968311258836370519074490075658287200436723025718984104707721476315868583670358188624456861640709530063209976510064954261470911709349929929741721033545295762039948478911857264528016097830224623806451611705571004815271565388826927125844984233951720281029953807852655610147712709303888033149239403239579425296507781821586443274002539559554078294988130263581090062627786485938989880211223925939720075217767650358349455274073736229133175310684733232896751640456907522545022865602944508135392370880090017032238522924820536261119330688236375664312697522433081980867150970195219597497721011855539673108506692259131363890389033510621990500147876736617713032098582485815921306071969716354602353748498974991145071155559004743554166580263324522877860384637464917569821974488413936240370368936553180374649553557787171719453359475152621289369792106560949763850685741343589909683469638356021708697317639749360782880744966121499162558345678734024717464911794535622749737588699800263040463840833287698308229066501089261509071000982945496333770260074827489408470250032565287426368044755662261189944421862719132314033374617559214448649611133206092950358154205923536688498144786256788093517036852553022427852845862026371573250275370208823184408285163299448607282155260019493226085891063818393295730608085433320839402621633365216661706134101705939789069594905896971633782780922725014223981098718749836273981902976514729143259800451216233261646913046869445793503814947903261278668985006802328155686743628194415101365486795901509759137956899631053829493890969802154136042119270274519688922051714351521813876149916637438168657686551792327523665953666099025321190983219758981252554286256465410660173606665199807131020449304752611415944946845078457738549060858119336736539547259600291248047332391339582669390932020111108799251645065991086138524979879535476977681268052552621075201688320510907852765150926544262793349161489096669060969837329387087422973238498068802231778159593271017747751818877945812188550626953850380774987746540417792696547056729385585141662168082552120461143273713358145729448141501784496281213619637893184333884942855789773890755571896082485364989242552830184474859521159801792904354430148334334534160706352156488609775240652971055108922730526139961691244475362070741406569271395156824174732225411026625139680050197049179962706052626347382840956845734794105408294231451768237279945626345627063669403310693758755492441609615244615044218138613146053949278724416546816928813789139026375835917195675625412816027362599930577497464367092363413606854010140749942490988405658627332700360918244252059476630816425839368546229511682101268853097783441010356258944091379536053109403894105935755744183503821081852972190281779874015566082070420652505846895932296561098755260046042133083219677127055780133752994340994578507906538701821784270462152563712651208858334609078477060496920681527585237962370813279453869687096457472515558168437685326607782453686037744900705799318728038128710514742224110200587124039780937615864112685955333838036503388804523298197583193072359104388247932485453076033555581991913431122983806472564546801057467502980125294434374965086306651755214050017257658119234354100493571247122072887253779639850964259093840913512583294260602225870966136231814655097249831404667157484072323418224972202218568155977683127667097814939526340802314936092211275691398071266921503935320384867230877409195625342161232790718235419289029752166676386016567288341416606292228124695378415567468764450670982053243260378887877401990186309907364230602267811810588306967621455738431251756474345839070207899701441781581312953944746349031875761572288704780145455407085949811561099087814361640167865566335131592252130354781032679375058508665930533801869896845189714493824446301057229904407552406859845082942436480605862812321820648168906771824675375055827799801068609242155804243190851299907116290535527619830438807377837853944753539188892484352773409744107891142277887321533891885556918885484850746676073338393740081095770460600536337158866503166472086247362800483430470751787067219063763784120839573755951834397714573025915079215808618812953037355882496585483459212511717646936833088838030659458575098378726434880217722936368969598052515738716928255694698981205809280397571478455498492179365071480923385296156720111629327040545585460396246796823272131456536300951214665743714401024453324986077601233144067907066678365828665010071444244117042502335035661478466867276062801431581707160778730954060420952126365919319880816652893944291058144489538553675643522962986070690653214511297504834471189620315970796939922895590546162733891471513525575522960239520687964074656975799378545873188780812639816466401723723247948154118746639821218559966669443618282398130013875632086676440871437538571801834150673983098430537400603844696558597230258049824754189091901834915054538620242240981243642323475528040489980401304889966307681769005484296778986576925650761484650421147856004912315606880319548317117060090506707257500894139950848191200332386351769417343700487639494158469570974973150068367771342911042168447776225330790586927551842190155662145249499161913359119858772027473455291252458393581649119599395235030277510647612245087768357942973361105770815174587191123443973091133079469781663422575807075334192812427280200228770866499180624384164606529369482682079653752816990480643347159249351601678155830398981622725143917080605708203265705466128245880747494846187893619945519896451304006830756742762499201336177128869103531290328842871529090261728244287211322499124682385272155584105490114414753102241089972090967172715257180550734756611054517713855088604234332085315888116058995253764796830626799657616515840549689898401337889775829177313403051677663078037573101277678994550462843579599259509450141242969766117532898539978455037526343507165111117173334897873353928732014178578808023033111365586541960296147508002540626608125812103473538580107200341012178938115479867874292893137944583167327871606473002354644288299912438025249352787780146471652992831623946888729931841929706003195826968756226366366158129448292598131416552612690088182690610382255685153310944376446616324469159467129057041942972469189750755152155574170845405493178640312364473628014411379106761847485399155162353190698672240370996054746203290538978873658164151226476652556910055034585424957389913734710480179308004473490758816069296109165703423108164828433372875558044658469487324688914958604180580782338510527048729106334475090639920959297207094562466107716270649649237001819419123501597857389590842014982708188740596188747442899165830446756230152176792156718477149413308697692173799117640194049710113091354752220738246307742097839826686645275696719263800694237757420122294941347057595723651438635075878444327901116494754516225164879113037283716759463308416076415921923028187911748989210536227281584509188906410114924738047042145436239248671911604164954762152923881022767947878275696432425761850277988633807482526132358732399885147848193604836339222091487888359780265120445422966852038086829458148308785503493386258487194989207821986584700740953812233139395785165055230868343335664063276274932362550735488934639574544217913437931225224373670428067109103403928265282080166497278957738304071297740339478254399817268142193045106657781647525902916756785523289501466548932753836741825121762770641155282082472319530202119251504610656376106005455268643267507829978184666857385931376363650249678974486394015465743300888495054591532737816855826170651221884097915817559758097592954087414827345681558879192718968223085748609479486589477355134992689762811359302083586983021101081545403666354030931325761813863458938250600595614812489123886318746668603687265575593334168508131607507753580556534390414998517958308686635298599681404772572346355936919675656708921950563949336801615345932314630827301293486734596656593728461918179905120875317856427269699159972794879403691237699985113496915501372108264615655223849003788480562196112668710313768687574760862368906613639759463042081467081662822513270047409577943229604266268829818761551512948475024083857228491207832431547101354373133976379632357071790939797248674513097036413649400255420799670789479981530298472963216072123665193898712215626407321828913807020019894154142447283428847552481236155480446270656135263743490896966967131998614118636068793793005467075625143430459777692689331903456410005287936726950259610997404583020312782167925534507130501116307604193842357799763700324159093596371024522190311609751723850601698953163647292662738600849778920003388411111507478961965732603394799236638923565485342906767679692913025737832462924321967455489813907473799190473390297376318135844038251949296391782020754038515518378827731223072139856674948303647178673894253160349025284489748885941095811799604222575512875483958329777336764092646256549269924401836045797086885891622328442246074399210543175392885057848495151307680582709311960171279753520196158776914072561220321232340469359017239808612291358036036083595716958216828556665386508717434468782646405613561140573966486816628732492792954247541743936934597457979185463630234265830395250356756420147828108666720710167631804436449021041007576105428006790211208781869097221286039022898052815849735701075947556350279760614141812063824187708033373530531294264971273485851591799258058888240288475450095427161153988836600671053317151740187067535585932509406520302611713428990969422391836819480122021550780960412389965843785341463874731479910460090292415434442445001420458367946871653645260851213082605781017069511138736650570124192023072168156405239294230213044496593917406578902420164383312766940851743882986330189784552065098527738431439462164306178593426348803462778282817054911863123599453113519598663214850679174063306581295554954455316230352731485570981923406504038955766359730087163321269483596327591107334442349538530754980207557054045455668967472515252551107012210252312647231493451508816072870607653960543601962737772809175601566022382154145577836753110816781635612563120595626273145596299418232715819947443361352761324957148655541534061738265377913748037208763854533419405588629992202091118003679354426986566865419770957540217314032431962958125785105869050199265531168871703152974941612331738300167136468340935304054996999813452546894805730387308560341928940012942049826261773176613108801708404405725138771899995190481368739101618128421960669111764795964952802253626769227661250323532559871823449265513563372085368607965837914350110456897592416010825832265857825739041802974325903871962596342391495829068068533164822651385705555868624174269516032010884015529075830543221755409599079364920788245778568762134432999422079556325549817003032622150810303545775160918326941828660336832630488068085704872932396787067521514682946132127537907703908700670956465021666513380372392259191442902033543688289992588237999929401362884348884916858808115305558030029642872988561260800106901268163558789964338392751766065981150859625467373134346155398153071306115398660740572801059524220372823897426506860038582221524271073086289737814944198796687069869485282496512395634879618601950879876531421995092895384980639651984649224268663170460015739773078722712354460373163932049974183136895099241874211072158703179753721065366476840742961931036654411603601156343001708970063840957516370623857737444305608485777342507496210178619952641248879894101147486461190034059389766290814899569501760291411948605514314399401284908718600906394682905676505893325130607466137340620410859439730233530232493109872968782401208135202395340771594712420328243579022889758988542302916855407700544623647894435241327810744537179137426834840934242325989922348053615947512256672428627502487119174698468486723912139676420694145606682859786320320593746109478268465455016773326871473947587255300301929837932687111166607311978192350714340916934925011927952678029243942605893199559353862078785228679040150840103959844258097403744341744518097497928358612049423906282686799067609892980253969771255153855844505250388248186302035467854206534919911058285671335851071992175306343126555211841113637241578963421027266933137339197790192113879125309144289249318669923994025930838844783393216436854309068307923521972004555611519173379127359250358862922557280469818147495498466998911215381498503025283193459859507064988569229122736425945974831257420194821883677768914966439216471930947765341018686466359548831054782381765792000568598185424918531255427890122859065710215084577156457439606636673084618692676240777744329450933321239024687478691126363679207869201486533522491276758834932658760709511383717978808031797871126204217830074923859393623876119822170028958288271269937612189034805447866876207313723483912343257588085234861004151545922100481060543635044618706717470055090822175417821062929452022413246313235584519033107629872432348083381202180510685087260369524235915277598043270547034256640417748625591010288166671493710807731522041995444607889734861364873660352060944066806052830702315094535972922091760831518840318080444006528827362100005428694569043414627422732944457772422109029463955919143248486392161393511360974658222280865820373941727394847618425085637630241243574611249024938931909756849561990126826109254084825370209128219010882156801528655509169319198626611103451603123443249400550019042855602624530476188291824538973755419106410435363433777395388156604224094619339738809188332916968546726093167844626441257516382394675673307242143462767283962604284736804651961921762202107957739470512762046190271157001735440206266510769119797492940719654564471347668838415321576845159289106416928132213573500152867438510820236719346033044405748319150149477726960584521081166085189780176961956409185481853187949041339927294317829178183099121978407848498864256746320654514229164987208621257015476971671107072729622418559046193522781721103581539450524835979793791111884468183948609624673420068594561743870601299280850513872880115480270086549241556864855914502553242040188528645293025399932792236041839151840622881578705480428078731622021576638115739673960261961149920980061863623891385160910717025289829902493332358714990259061972976834487744557837080463755058279913270309428851820479155926120370132865626673079178290995678150464677752451676093827699938467716105223743574141603727021316070677718149349446560681413623248915919484562514380082551543184623690236891223052759181312851817857361608563577395170968828079936439558373687766669629634724117628264834298962461021556374107695242675053099366670082577271260865373680966553228007969382258956083466078060039091715205570487151399639841689108023287591872373545807464512885206729413319188912808399205507845648700413680929601919095315325228499246910341213228175791715140399669377279347363860567676887827584286556711127771714932493964833312334083269650534304273022649524981447971960023331593377812472882323430598671207973521511332240335416604932349447251959386688015475029605917991934744864642402559471936875369107146209982447514713533493826427653141872583129612090930201254634286530424158304109212453911621834974666308110630061601153878325766714584802190505453713399380822928632548484013100010238747399689053606633603740649462572788471964276170924035253112336916437133036421890745606024923290497436708186746617275606356519586778458778561171406249197015543487521346773724917649204740538717878803782763171082657338530134096963783374311620134223626968842530565329480918938806341248555166218709992176078177013903663630630382565841914424895475032814393682666659451261057704227319905600255144815849724493857415972333374039864609982426262213349144496006492235484965733065565466678764470036548234731042142200906890036030804836919058316945491426827877984184760256357650849643467511776710779210084523167971816969374491865867102621017233314173863261998404929850835985466011228993212684728922092142182588414531307516281780976501580053695791425095009833190779844045586677517375762795030072912146519398502014296681450173290102071602934507588534369015355900251499295876732970982599284236289827421596095815791681373434840091060868389746238514114000408172662611855061849580642388912406008754245786339045478907853171738587016166409637839444657665172873004555007813218836976239053741096794863866321508580018458245823589775694027854616076169867702239803640131622738728754193316780303405478287991738563763471145279114596609409906977718953099909683121211713929618363243094604492877307504902166172841902690729233317105035309555438310585327344704686371991235520708776611404809764847638587196429573264141921037528354213943604482948300660612439495816950878256302737640864374661009334916270578575149091576650697255491982508681333642868198978701918738171154043072633807466949988283731103721663007137164557130733996863028228987313512845618442616598557367851424849569657574387202722562079827176644734182711774983954512514900973603877172962966019984021202261926505412673557359269966919929762949757838281488473368429049859157077439970535653224762658412216479270276783787693268475188670563471393901241316135304318110411836835928131931771169049653338499465357073169180716670992268933975678248513420303472446862473437474939249046106112787241679458979947892121327180416360265807201361757569039471045012642494726280698229917437066404288589782178862548669512425689529794610041034441753673820506579932510589395497526889866738395773949906266102550175077387356226915179404503196548575051409718698531508611913710403861252124339293274596476825751135272099908106784325848109147966811438751697459112383750308320281359525018428860593520044912928946663896616676416962080897036944315208078246681447600513834965820747452808041150244119005567427598430882085939147266986515342790158395481799581245866525116628477198895262884647488341712986845590116223923146335304190925779764188383313783388426586280846655569901386940648118534322226178638425245917542996197914919012233764339717181401337744590239165664679970930169458473301082515622949990396267330014456864034523728335541270834138302340944093637394265518051600141680227496987911713060743382152134729490138502043615881993983939806571962914623857402807839966136304326907833548333666295518222421240061044200126172890176509806572424477452550061655307514596829038192690847931738481448425286535259231213578598664628230495001489473277478013058780781981496478064391217612374518260429483065659663212268205156077161253974409720176672395229032084551958047664412560598789653882308441607366230612068087543399955434520110100311672396048105369447754697097098735002557738677685743468281801883850964804862114665166384758664055569783692726574278370781265592829115608897137932143874709557706351214883075064543306106590740008112960173989696905212346477117782379439445679285119181747642740387021082841351872963480566725598797195463646016445707265689675014302513909599164476859022834740782565768686297399873835819341889443868314541117118319993006602075772182635758411293037576883514904384752145640498121494342304975904345576735013236954354092365907400734740181507517701102400601202473799535591092201655291160527797635187044345007884912267450307005072622849882402370619472125247161793809398736637979065685663786171503811509732679251998417521353048363359968563611853585838306680288382676984115995228808505428841415037033116602939481334918606081287666176470676289090705022989983900801806647554502888013038553038756981178343064056823221803106114866788603438571054479084168632134496173742816547872991501833723704605580071060791135613859754312476539043077150000885133507970182312171883881630902077146308386020058066657318014468208734617925843713031991534105383469641082337061729679834423064894149404978702280994865322055254599482585816603103079943470785666975624329153832796359472037860157466312248865770949395707555400003152974993480150604815664715794432271081345956801184522872552985338144284487914416134355390482854314033871537805206808853753206082026942405464284398981187867873042204404627749478168167802714078355148737871583869931669961579316456718078054344303287846019929926885573868598978324052900821845292222871775572173039427736573687882257627955288519652993080873354407399837749011199532119927095875336071317724017809349014597614896476733962213289038353022624981309992771096867328632275253510628016559191577809145092927311960576777419382459134353167638567291470133120541690518029558802236219045512474187461683071615507610705142930496947727125008905854515450983411681086723018670755830249979853749798815740724922409392922280851611025905199253181921013781619600101677785329126093708617091699271255646570976377666576533885361458183693487234898013815617375647685382614321676580484233695998695038572833577332701244326073943299735447709174890639259828328454586701874337433156348430032330434309218531361565668490109279679460423750479666497287504206810616062254992262140843940867417093491475894261023495062781456421047832005077664624136393472378051565701370885732693532553201716041966079416790667402323038132337261357397693950355926709449540923792535650443189292356946328000531673000795500829490229207349960971498972676200484983893169719041556515426791036695887323593087976484749268483674189680941950334582363755241932433303152664499359381032640051419979931200314534546460906339975111223623726803458430127422980127680482123198752249542848911688491484665509370419691693241465258610622695403772710262092987222689771908673655504676941062445467546793839725909152320497714610247434633364423920916957173630488061962413216350775003787248377308462125601805565274126860245992501438179771173563994981337697249649541484278234732247964614777641806733743012811270492030913871393388013104866785313048910599676280667439892604770519484866818712836831279121581038302147287210279774821494362128356259504254560638972153563585922940679462829037691003944547937021915406279022950450860185936461378632411427858508890625460243805040885354308626495248712086696788961097284914690426594150241159824594307533581811111217826917673569631910577377642140473681205973342046138655895496248963623402734594865638526925496265678245013972798465621547124329067879736731830441886824001777031827129998939750229713775150541622922758366544307959710885595611320131205382005896085278131722084964771681206437622653641563311827982378331259130592368109462431539647821375147623581136141478844078400270811520747371882383191841511530683958597050635705552774662450190111661452962374641425024124190228295735572536641796687520880682560713772072630206359527168759851594295621732188598957916280911817923587463126973484820824788785888711309680332953318666147605203726600431826508483418623787648920464542317318098027622140859934151762262278099130133309382467666277388743006348328836920647313573904785726030139749051204703995059800299548362686932752321562085048236960557330334602630190210588744300400931911617376416654203009145703796398048255124750502092184267500645612306282097706455123286452919761170262617587150921761766347447059118871497236848805241706316373264556417919801747369693237468062932903844443793104844868335329809665486698773439033059968278144955390295505327013825921548846852230182132998332186529618816646303244476882427232849709732455467804138114192724887341196191850896070654000765154670445568347963598390086819836375433148368489422294693281848787567110698111450966386548224494221193290339298553419908051848167763565907206273094692265263688862719172509513675354339924634975319322627766116697404570872188280563076099739929099463395039344341886171132240943013838937384627540694424832671501881850085967486844801071669871883945784928922792418901047169025164590232354420155897464483079777050036141458750117055859881235524165269357990510798499547224987280277442382750374266092316478649649172797762480957462317705127903706481919308854063104566129783653141074664712477220946474777007530734877095312817289119221234404475593267838996601889688113042498678060321257625367744505062804518209936555669885713812610598883326519905033794270030497471033002456769168790100826643129735579110303226034219337162038645047397688390229531715131912457466726630977640063514787086900464878082358726877131904807601728590396772029563033665803494068221206234909589553290558897702962055274214416128249490022415163170050614036402034171806810778361447541794304592387660737076613453589074590034305641486119783903562198444773851313737480649396136660578382390712062905293986218782424653294657750297484467643467237874056827159564388400754588633623334182099026230658311797091677061008518634937321351403607000261651686205996962592656345465741723678034436815125596295271461473145074600412794302123212078396815257481404459899228567894999590975762256003250074431852479241256083701177944401830341230973627889894431865256427713024189709631791958544117897966983635960087607091760049687551664104713090141547819878702243179456789703178959586710979704004875756314566457449662213075888008028333561050222759797727920335228317145750051057535897171127343362625067884024297464853959221636836281069757754492909361872152198591944414901145553143066805961513796384235530863350617475055714791066567640528641141234138664847353429870596521103293007683541504453176599934538995895583732976180566678271046686443401674263243591996963595592330840366416770117809329870329673378385543701579570410556195591746730803137102354963293301376525655927784694567073229817170182022573635995971375751747897983198484550738324110089186898277250652381449287785595319616241503528190848162533708672912604050984206008322134111377844303195933821659638039327608582478988764169859046632407146507589108784777299846403664560191464389048404442227574565951939926614579620019106290056096747803696680118644168773188006573667827213815547091865880474988456362981636506995653866178490776846042625508187304229017048159337343399670477384719773588379263567225280383784237004704966265987144409984500233628640122932915168943833347600305263776782885663015692775703887004680752913808815507063546308769782275034887184205433575385320705503493014672960865565515072477582146076434575421265446475331037879225320235569340581572237287122692877365789829293903306763037913952048429005063199291094223256923711106196228870212760158166783909044808451311153561571210652025047140373288424187696813934111905731769987187877436543547935535098532118394174491147680935601436448796219569456261822048905186626031194195390038932817574171081466582057405605579476965296360884758075105246802077649778404728663760415758192547254675774052995713987094643542697743565105686962427561653078838178398861268248337172662755936001874367609270757147568683280497710573183034876843142210942773568693928169508344737683798890671934745430134218356928666207296833359248550892096508707558094297125284094794188628493102341420386938150403081446592710627940641841609577636439281009349287446383840812323044624169549749502114874056363711933036068325556506664643954565218207602242451179683693542981387374823382460281171252530014160577886571763534436366015898790224970098328335701573162067775274871526064739456274735436059158044653063531502738865479770889107275626459587678786362244345061098007595138862445883854837574058370622194831979878176159899944253097006787619546633159286532342147005110327219554943992676195461304727510107352839066374331412970666400937100949527712748892593562549793046057344401417017436865425526567496544240202561229946787275983527477138183635081015909179193260853014924205984905781739574328539243067289847683586030627118570486028475899320915366927040656703205566636033633729271417332811361469529897800298017332052716247637552997845671227139645698818064543565915928626429175739835425925027363286828588904258919954043111885727800197636534572136742275676537264806951618932782316349540593213354513258093833836618364183894640678600689828778047399211686071119812712045212034843226665241650171339617248679194217807480134644145532378093196220187977800789535424310593578883660915835421157703940701177925442723091967796562604456436902944963758299838553852715876109180274439815462878810374476461459815191920744370724477646341827286658365433225229707305382629003296336841724200547905412655672137104119730795741510622105891350810341489762595549586213342483799411916295716683678997223380873625188631403923646232288379550379048753522414828982797796231483551643913297117790192521616752255898714331910660367024547983864295051529475717643849613621274836824660599282738020242173815797811569712017430628466996029120936336913625114545038357597638960943532347111861026200328908278051667095805528266312105981261852812775870471702589719325974725639482827384290651369211151354927539851116904737651867185706558744898919777021317543752882286015636006737544677343539826004229571029552816682518699852507762329426926083917364529313420374923354051451905020485408994968390682870265053850200296379055194224948996941632583418758494204571331622369791212154991573766813898217087855868473752052846900611382745929305630990704147688797232527735109499255697228316331137757748837837010484885542920317369840763149416822413695170205497868126155021546779086238508637560361158547598759582212647303876585319095968812797579322806168862647989377330366253334796974704081362468979322303604543915905730726027630965001902898475699938794865282165942452481007365079659751341043984953770176369806971839900468286211058779379116422048523923449961008689854162366463610846815069875587727393690286802882023986768014985381314100848791789563029374491094440908872521743627470902668183313103792673024661875944608609788388821232182060289917215230164582580081051738251624814707481373015579817183592820348100575524628656901972324899059754266082314965527902810274881021462323583961327388316166202226682093416610311549006946003192676471346905519611544608317562581109042487570423783536560123403179781660304609427621181981680527044785762226914363469927977616715965938903899981290612677645690779206230489243881937838410771157825870420985199175047157449461634337509023478361206811878073628406609206688645940733325945365228075716063647324133902874303094898493460862863732171011012206686380057714110245179264300116760266180401801548984622703728137998158739272077521359866043813624012114063011887529101745788645691517358418681862588315307270396223233040838977611936896356250149550932752286486202768020622859659749922925070818727252527839295622393699783772707198327436219832223486161274910085825074150503641424857368229818744187402951312187151243941731966323026045238253409479004026877985707749669280750977938311102774135277988545816670665473088926471276026025402993000598787397142093905852262555494282373932727267990431916865907590103889437514367165050850446885927455483106736748990726243198781612405643321592499091287612478907883987393360318270680681926660082008469792595993522979416976026238274209040761002121546860099228919552722567467723365353215078222455449509725676947265595702366722703009673053885988178781264002958995079459324082225049186058095990775573460497567988859934668277322724164429190479798378412000977078415335426408954328484541010489401083445444852173975899998418821155334305752946306176427946995370311588036432748182838829559796277490672905398997469428720997013668779393268976133559902890354946241253391281853003020781875295817466400014976518486710272887906996154604556391860273710521530132398455945949032198631394369774929565277678698325056556521311499945824359829367493047046689956803674341111664749114076152734916935507561325579179699568015259880984583984883154241885043369044560704880875103722796794823754255050410295640565181065971983394973781707374970662694542898048566137416528476736946800663489649662825694026165123703304963074997315442855273024730149170366893762153761618265817961345179045713047487079461772392720483836490361995452187437420042388794822209985162468901669133794439887125215205856687255515014396677819054019752585138306210786585446888766860549650757309350409407751977151937664944701169460427052682289252081586248503577360360132683931694824409419836204238522896197887505482589522880266970272710103678563390317637986093085618380125500797619491291316937673850843669230936561374955749187490637361082643654787728753175012598510152587435381704292218453579873509997887483813156704032475965576638755310451688985746237149221091908900828102328093681023043671484877394983489373502895707041271339186711511437511130522281631531565233814163959245270627286977774320640773000076153370321462376861932420969341630908792021054668424038502913215631886054755664446940700611239946941124349473413697880379143039015240924331355544290606086400858543474588035326936209019950616688652448685991234096201193965033160612219877675256056590580333864229428330304238375996756226290184438140567538421215298443226991071494400882035071725440899271627119287063279259501230257852835021363064973898643074385061104086625683183538052165916739243448872121042610742887079299322691598027213961365053951124812235638351157908731571803718622772856274930072191735888338676333633280620509862509387635048157866767389121958995690416889891525930272227815116910190786364313616110808514795549115966771242977461300571931148022491893138854868188853704459308235869034036196844225774446754692971518876844267856218528852001377168504166058744456020231095227687160521574240376323010235773901479996479058366904116278408836781976149787905454609827028716707832259562029135457608682382583606475628089643161680953131647876714663945146918131766775377683001161767396074643013021639794523447080494114849949164910225875155524884724683199091540381771926223655024628407589834236302228167484683904803387342805778942424324352128529601155908733214683084884490479716054646600135251824277754245276082680561493296957708337312351832063063214236330710651871704604985291187682811868966056904436566276376977578001175979194585122967685332199478435270497137064367194158218429252073751410228422254210206771674298138782693784309952815900574192119715980101611276393014217879427975849299887793557460196656305868060634525426585134922853244551209432367384763012935726851331964598692408611916562389091704090333807818906517109554141624598167986933393497575720875196184710011550052192973005778269308881643196649243918403615935712644960588027517412250196790867139832714882506744710974331498359964845812523321265767931643589868085119754516382907561789629215396004499274999023297516347291045275361618714248299564977056763628878781946708797907372248166733593801785370814402627542839332834806644930867229169503357572665660445399938521474307169784752328622838879342624010188715117078197175127225337402384792048314122503478548793422230981383838600813708792725774758385385368813978649842117886090637543684250625232817704492972022114358021423788760338878233258856083130827576274624848600124270260662102503763524596002445916672312005138849323899662117464108353521120316957743553365599698765599788016065625179601665540376093320613440570133587311368338198600596528961642406772697083274342894818291648661403172250006246072415225963306559199455581949654895019616390531002909695751162507263858620680509654732904317885105842741869140556488273333222344760022186092905610317925161877998427675324914545172820000970616702751243065652159862980966412271162914350972764936853865637961631608762939213332039613725646126407927148233885354314219822083831802634650431669565889562732029118050414807900035160066405479316803137202369723505858945769339381604410992055329976148637952652847382688214424822865232003964528566395538116097515644347693300860048479015101523383046911265034580576812995082273539779744947758003935931953886671926188950487482327676105597517107284039116389077936572841708274361398978686621143681989955129832649803263551431966555733161732105688376606141610888293609302085059107846295362992001440874241833753584245705664998686455678725756961670762214410329605140211505306833866764514472811519916804612262921883998449955572465363152298537359135800264021034146712558561652777525856609838927782330335308736505843381262051478845580715171352051643887997826058708815702106217809781089206175854814169426333353413322664519772744775636863186782574489568750713806859115328243898876019790330682941887481470978632449450118715455117329855465376991851265040744348598057209768700702363590467269539687820625171904932766303589787207790379400424808743680569216830322702618518812082085976960419943583042407207678195027337435625868917455747538108243996720188313369383555846991078054458495470932870305676444143269842326504313463198863935230377744255294131583112463344864021200700886090689003554606053258852948878263509132773748820236192009804840471502173220339950190549382933486559353313830564098975531889037770802237239865281010878417729266516583088450226966558120289003100124914278479026231762087488073609449367041424726251417575663680865213505836722338002895488521772488827962727780730617176201344964117944388839836164681131153011635280682221288861011035599583054712838748726177192727809911145913493201664662671401118063326424658721054679040317909877156613190273567414200764024767836978476624919880828477068069693964569895112211615220363278122404001772830548116171828094676260576630129754429141467428482430705055633599751616578599885537253591394890395157562416456664900105937288744696943644014532452518947974355220908699075615154614949788872973163438593208451333478530771077701450391774353286592596490424159929230701000045799913417347050957327214674072091678307202448809179125604373576244261934984219922004074682921896589733481078599886813667040208256021822785318379019877491807096304360704807304626314238267832933356303325463508592656310886379014997108427072242007889443579937794882727901466360900776238493502965272088597196665303779882839065718423703941996467719101292356270208392164443034242681439849999439672543781850653177303673952564797636323280534401997464432964949139807720604499897997411736518781418898869987328522221573521677783499714891919211170190839618820825813333906510115618363093351874389109717157275823179978024947437985956789596345438898085229070168860595902697629691655010970922072316343540977580288290052826386883730191461808946499972916754181855924169227949362114663671200387435963542738812233577573378355996077918717801912900261002575397664306364377685569123881578873347646493028465463253886842730525662805371911816899034322973189011015717496281887585574846328754467516797920269202812672556857205919310301711116150822054229222633400303235252937917784839287436248942369964402241911156820091235078518711416811881590755379253325325863072290133094210999355660431688321109946006080598678524384723911670523730725214058765057946619730190808155429949797614055669248319902366429129355329712978417627657076524745196487438339425474980477827674376589885897552810247719854350524621105078904313899385862946248377145751128907484835503332054411746897217105396017367268927830855876949382517516602577884168178148505009138333438820906276677239981138851088116789513345686672968934443731055126876454159766209650285857027715394629433905825245445594782671837289938801386811082073769502015442671374370066338515057961589915622359332205565370008880251892830744103036615155647870729181267174108244256166406862000363129175019704014807549411816878444602770185118435669262337727901859137762759661035086633903829248436931811333886542943907256267689343766766726866967637840303228812502238830206271737481927200452857124418830138234725545869772221472915719392597435387115723717974760246971131952054825879939572882977351276556261416575588351180885577101583583284792948758307698740374903363984560487748004570518487447583986752698806812772802659692661689165520118302050378544699012540176099230166766823427695549395312320953905092927796093533847361300558146896046926647855475619728900521407127427600727786623000488215558648597254973489717016250089174954861496664415432287561676473432520659776720161355404433536028256013342906584789875154850658471524102803885572628714325952026142093653595458723085824725192633820296876735334700139815980914188034779902349653404350767857192388327983307755827684495506013166175652827819351764122651831886725614068486860403553943679155220042491020147063275103148030773494836959647481965892487627902689739099370016035833329678742417166154466278474118124976509564717618079250783035575750901742434850711447599083457722233017755895257978700851911574938445226304335881469842495612900055455649777675647322823291424513901275074681641224864200384810861701512867433677196694905109377132018505590783201383819417557495624649177328862625885488182352629035905121676910508880349059431923326946536453775496503925244603237220835189690565234871248707769280991239275497218518284523981049144051553426105783667086852434348821458469351403111159393993977313430647960355579285315198870478180149367218936618775264135773278078326137209201626764194192335916409029931948339843852790015704027458162633303881892672736784994458888022376830100090294406220445174093177738526921876038597840366081919563538205308425318341349429078829436317655668491428887548861304079401826008056290882662272455059046596427226335370109329747042191201154793460797326206494675119937777163757728806353843032830066744489724691977042996512389409861925620416719060240700885296996974015290518780973230814307005967110815596684254849331920943617888368760834694080484250758046583210819574457194084736424718342459524561173322922826423227279521551521125296584930537294048913522864528980702052479451385393198044625990590946460687661256066008496837469387375085003616901019606322622932151637302505984902363880602823019889833034348613787712545850530389713442948933484077763070848144539430177446006310566304806625288518528107624462097979220845348314778227904185173198403461852991904092955234257331658207924461196036796689342444622445786369911048015588291607802298632612221583642719613586008394373559364026191594782907796624830056970336246072272835830669917775878405330239753141128042819940346604367937307409855568461514018410345326508132286940924982325138570440908802311236013384656712824642003875240257140910882810890077814161139322438420682589908353789531976916392623253836702603784183092861631505409362927504329953380059188377230522467996549287862596928825462246265127354560390157152189196706460323187000557977673175967204885721840079015331804550966960375818324605508335706191510122797138914832240956407366821411081142813140673068062800121978486536118415021499639663140515806248749537342779512383404146630756579466469326087488377069184675776832797888034236965751851845884921608184423869462327912023856007937283409307330002971237307000842909616520153957674345716896747331902826527940707501590756895501390068561767201260803871619331091935047171782332393109789597939628362307505375796316965733801189497463313586870841535621509066705948141279763522792712351879007296038614168453030738371244079881321498052464452164932901125955002314561455936477783274975152284685731181877783892269373856642310753232001218324249818507918635263343007019099008192952280261732465551098138372095766798115450318340363233974670624126732492782985412577150716529688870118417720467593816763162427240002365304506837626628707022352581400007698750531014484241901755233271206002250086192055452852418174846300848423931090457621480135988248749849531514782890072745242224673484271265352803768211300334994161789179602553641182735423430934931043680572339586601222019373052337843381361585598551061825362987123491004965420607010879685017064303834855587278858855547633902919134844989159956468644126412718765183854100068942501872159946231695710415958394712258717011582544261525639512537533047068198981518819739731438332543201701372721924602326609142349944224705037598923049473486106251352747942493893775008990633353405210475793185866856433491034468298680945476458732684753124558684433525814195055024642681940407953759490566875308648596763664605408173934327629046973699205302969276748202152905095851566210663312082770685688758075049120371076360953533827107881343865408838066825137709737695719470716571291788262392907904960056249601759834725290378058116382359348713751954961935377917264263819264538067656412256337211593083295906991682659022297146462749335489337288889592202395219884164633341767133273413625595446002816345904306003170491132624597189530660878921169621030604014281628636428228434218621089057896743341009857530637172884034637722364277298550335030823343825263029784911625605749881477641463178937913410962948598969752411668646758243995658098135459219019029107249993493519285005010793163587428489881568414073308104214708556884811823434044493909328841935162141871211486620506704246299883359996019278118778602702203997352334491915949521437413369905258524992782483526967422201136433495057793453155396544422984191734648115081647952375720613969397828168718613172255977343945671653631815100066896954498445774008783377364305271426428274208615592935531462132070766545093831445502300829128553578676207166011193566359810968673639137625312632684028316408426231036704093038995720068224832933175836230268361157368991272614351302527881020211703671970768218998678353746321120240308356959251683584854609747670443621788638236243492341890721036641144481173552204096379535739408446232718862131894234441950265395747850548043618593025473000014917675913599764215306309317572052358786626672203654655006345485792782589306948503129081743401236104314174635186030697002433036143886153224171798290392355477847598592761857288038374858142405216359322145019822230595667866353427800953689069328811123139617390609923634618881332412773661223111405498254436862919668564001194907939865911770915949904122403307597899889568030741815017685996626781690045580211931473918901502796120639928081304492036576848009319797922790135379771389437493276820887210074281156439627942529346790852736058833684320127435677966930951740221576101399094322477590504140040523493809137986955976982150911076639792768163591821213538256167202502467983956737497856815509587526189389648473964715524966155445602685067773765146532507430634636164024567526171436978280546862685222546857141780087766089549520048675802943262945177572196560395451681009197295295694212049004659827326194070852305418720115216569839898073278533676108801724741431953587200385277151339190260072127110278276622128161918972864294071282020009405136208815392359277487098072970770786229887562788180767136690519029805292032569076492250565310128059033444209298582304377076056858560504835577958126249152310489679531363671797674978522413055998016163208048019667754971303494133029468190664960681834368828084342086793583692313231579010943516094437563958576813941405122618196523454235779884353409236016554462749165430072373584371408595537305504462483046854543978784484543194996670052880826691068249047716671686512264741330883543099286899464463816492067255104256433009011239420862907031571895582998303982674070610635382851250011728345236708376510155158009903868369999714089790498846071907307709624897571731979648374270562301710069563947961909983021281963848119665459030219635325279055713775172875527868157539912727742645631533306903719952710081189162237564972208527412555282746688262846298695969139549491289488650516649499336369012226721530253120226227868064127861298953550554270673652904310107645510929162318583284451252243574334006518811989880675464530891183788240013973007634013231024579867797949961749441732890313709912674577047658749550263840912819486663114788880014469218139078372426007570990921737214172726878018886458173435305220900885205100079557669082563622535115885051236330362615090156284077218000617101111366295607457123186657463091036039115644670191540149335450248043715796352175297675155495564025895920459902125818942678762546820547974301346960705107907058331764328539843295910637795628577717506294816769056318976611639844796841891468216088579895456307007626101301174852962163097285954834090292777528458940926573081305573037903855331102461664781124004613158355488446413682683132846301212790943166137789463544530663519915683279590878710119962738103751293006343329551442080023608795573752418313019243225439646139444434851694674222170599664593919204954206421305233509307283227840231557248950085383477714475006311400315712063969192026546628949920549478413862091873634376000800782081314563899107753489540034018342054661141677226719473804032678650849538282908292902832786733406942817126503019061663041658766643741599365932064327619554420540451987777162408068658684489780473268967259641750961231595812421676944913510220094184764179981237721377362323246697703895120036679300118200304254530292467094565641308387681742610865770563762712159536783825001649390305489220000733938437519248870983173749660583475981444429009829171650473527531592618998826795307826497519901556369882651383282340229322490899494883804143630984446465601628119275431957302676894784105786289982088339639295628005528526268554752496306697355200282572006320191460469970025326283412784718574941921754148301229933356662486177023852904450674770987092537531820517994982397759159099369058924510004342507317897323826760626070186668901426952838546675065407473522460043590959525227070027006610424761770569993646745437342124667742941450513755165010854660625740715863188178375667707981450948403551089458163905291290526512443569836341080586178299678031623847631834521126447487300024010615443476347474878282410287204525422084411241780665173818378688863499933955339303658380238393335837066249228764185380637936750790286413533544615001884776107339621925071090390276697645307129634728778242096157876963808324740477464735555247633083541378811803017159531298549615148075982255209398356426102450053352307043277659422486680978168529957238426136036636983840311207165132158920636501516322975560282659345155498729854940946524571861670989386291521898068117565231984230546221502762693606390492933052512984911754979838984248146263206633535143206896722865950539382706283506783990044228464708690488717184267325594259059666695417067781008732233581454733504186017272384709854553739860464811015514524393534275825702746633455275214641602148747929730517742034144749545478825185176934858747280870457169201522039583364828748372959397812794853081817987904782482520427801457633217141721905251894302125000528440078816093300079619142271210827494539266475015989964812474443323270552859804205039650066614769116752152486015682239910845250921174236978266907155429185671844608178980658352458514383263038983909384505416193931244050446970707723728876820290052768923225700071056822433875571523737091350167232891395576784146871519516233082031304282615492780212046005644699814581979179115579657620048538830938288598036016448928735465247708350046198098294305607507579066432569759590482182792827169870397315777764759522066455542575026561624355644418522526620097337815854230856456776907916713733952542986073678182461638629768270036614385711379724345885190965632317000790590342572324097686847757569721033565917902206462833108941783114676025549599050173477761872444219867970584184537119709914796156331796554301228181255647940463199443909771719153760301880117829028870787121684242363774785936000458291779917133600506602435347463094288073264972968598700504431961897255782363302365499820029768081209503424475255778930801966883225421687782045467958989852031402899875881754915743409739701577985935422335662058414718379190669866350949557066100234293471193011791792103165316287883984668395630880058051290923285391709207471705299896453448730618947725993543188939097526865024326062617020263636916384209495395389385675817147605696580757245985998869249618779678443007763228009873443914075524904082580751653570846855201416943453902834295830272314786790536164733987250184559033695868715250956521494781728530656105864229867697922086585112090618135211220815182190374443509433728560470445818486068431730393156688041970241115596217689134531317724350396590355650893410899761888124038509911871843983974063028211812673061609707302490677821206800375361762525651078037254028690858572254247072310405386446480487409110706907559307740950421178737110923869003918019309266932128044589242976384729290441588746293321770143938797910341509733748930912859727091191556050779205181849689972873698370284298012511508623960801647439698910347920082181908877095799476866826379644246252419915803730275362026410221177789297552623649305549328462595666459344139837929457000169781193416438545567440153471196600953809510714899597371257653875223132380081803558861088408293411816688883554537878152271991293948202094891605198876411244094873262340322248809905224925178494869087932262859780874136472482078783732902633633575662275285768519096193136135424465597856891830914629225015967022376557508093427859586169460664676290128745577153368157002497709532163135109755413765481206439164657920976900500749340158070941679001654343762176912374182840511049136579799220491274248579846975706961089984220466850403287795878243640089581280847547751211043074559936894933162898063569537249721748873896711050694204670768199874073310608467610459860980494456655867749357070151087140261318843218559398435458448856704076199292216529150427375874769497645622373383415539025973194743906145858866423600826002285950063751133861455884780783338589360720223534432363340790641822044941613381053958437557069028977449397093973506880989022530263502522785977100105252447459346479326976599141078743222883591271307640814829186835771116031833148288118154810150789633572284433147465912669748445240542837401935438710570500884497968061712583443823456397819819502931464399599501417638713186257131692271091650741397201318307298202349483104703129523527237057058170953144926915180269004969078819503883609720411282420758052010391790429089299519326110224262908020670563262457548068144723401553233071183276521495972022189252823636430913202009866301150638076024437454309250216336976374422634072068167407680386523354246487106080488477441634848817161526630329120615119104446206990342920340652356249183600402377102335165472159131452045603189229248029179487922642790535320138489065839157395092056611441475343677698045563749545300780076726061144286762966938503758957910273457270654519207140075531881166974784605412525092699317419699124570543927887382085855842921179923870852336151621564986380027222015891390042731959412578506497650338622654323874335258219536364348608436890067951552904249130498243327820771903692262200053548813241389997011757500007577649213437646182180207516162323132699717809258511378073974633187230925542292996626739147774128789273919670114898111672537511753604903635043731177260839929608075412664454049780590519847874516216984374286936022633512406717381005084535592531234402818816606058717070827840737485763249212760447128280568976729976992667740849896786427248671135679806455234582696519542532381913335132892963013270026741178519874765756791511025620962056805940671119427793621187733576022194311880005928830423259155185631846178420626291131907322870783688727879440621412577165899822014091523128594226883427522039610368635369266497068667343682434014426978206836311162376277996166452153998457073768291355542898407903827071518561460314266685943006818420093283010920428799381392611725221585371463033622299230583519760215660085036126748860301377515885663750630301404262882570241915321400415323673793544032584393762225412424982238136531264892306033430773314640862205639814406088445343603886172041886273322037524436943854563055568755171793203441259884578736053035721510002745673575451579314049709182146226102551964973509125427233142998642169019536726596944578269005242542026281117929077043551407476724491082213685124629319701722253283457420657004815370515473362727921174618148874731776052287404661220497246323464640799338781428352372773007870443295551706974272514702234435132930242377953195061507430652576322961175270099990143207404255501086729708696995777876443690500882006197051916666319610944493988685175629591430637727214631751012526129108937344269258862367667475510063277261076312635371621993592555518989172676757773862169024011774313205386860015072434090124774776935405750665063914274157324467877869753698250003318834010124315283951280759798624576442768930548328809774553086658310749833701503916479026468280695690465124093371648311914378326973982287054367370818438441848634654587030819564698128627162521635061735933187330879677507430496561582720125248832936380020814064459506204394902802652056418900430472623369854005328661639944768247536287111989461701563518038025900025838963536896934479073530841687347143028944639633313710460038316371464256038277012579962452416763894042376525949019384886769025270944053068354506872786136414656787422561259678496540752837353530855419377204844973963194772327788492026421126492291308480470632849499251154441264837219881349503754403987992509725023552170720214752826542889483118727661130995411509703234575075631950833583199485870251505805678199977853776728420825983562374115582760847569004736127949138442688476303966689561610145243626602911238647993884845701071948789627679393672866852870823430529651523342801853982179823861007241542648512546329638990688969791834194150515213758098047181458709988869021910551882470593426338351664173904938199354348961527849740783072242511931901482381056879480354216095054809916924141919901576447958548597496830180419798203189187842101826981282808365547862505765377641361329848626425007465343320079107374944174376260371431241686611980416068142358306135504529487006032618065083547406775631831756065976214496113462141489987474098232913534084323994240533914420271481089438694282420430701382014922542851315572976225974565908052176373074106824637001705387688882741192278761720864519532855496235872373701807597341225886511726989881929772898617048605863425641247074741435389725638710599843771804958677147798632963268883799940871574719810006424338010601947852718543073089474693426299866092757995896299822589439583933057996100050707251100117619579893944776275532949020798216309029360321708173238341656857849788664274472703774173796697201903262116356906480657826731317233920091548703056718758135879360011514477374720639077922472000824228053583587222489289600421251691066950294500605538828953600982234102805198338830765988281938465801176583351598810598734636823735388225678073243090866972488729136685989062521143462550763252902103220357597099097621086643109550350545912556174828308892603085212577921273048007596983973175354600517803022869719460437742858610242191916257244852827141785276922245177137493105321706728572410672874715022311104628105356696965958444404812088513430304300687959202033890830614578965138865835977453673879477580629688170233082377937892379405421399758252059374535600777721856547430644610127693299463276066466290655077432168821109907079209181095407477004677382940292641085576870454970509778762957496692568270523986928368960036577241783327051106829333979911535594163885879309196681302934103540820917253620939290980122318324461266764673756362727235911833916723831783118300719614870339616458279011680764340357049279495466528718900979070827491032251258547109236496912522404894943076411191954962878648134189298508643047024317874398681728042021497012488359913574728339767880563466326791998930859817450471378860736389474070949697104714441141005738582819589888559204844200122362672956894061751674355900890828986090896758856574458558210821968932997507289738990798880121440631840405623049550580913898154954878590490998211955622886292491084920752156606995972529931372239735335777698057476525318552575997397688419343959713185942381637997274152853165370754024396057991392473305247353420358866612624486753106591919247337398399090341853434951513618381781474411902416740505111904868430502117031973380232618309767976405098857934940369647814357697743341146267647882016004995757426398630321652420737495649386867774578091303423212113137128518244525256667942740318941793480967609766703501718677226473048236710320968522977303134874127521776639552922133220848430782128803088590574671166748331030180689057681157006400647590621855399368544939290074633559127967061771852588684549559232646612084191577617665922192320050852440558620383449142072926599158973899932860163286064422379390793328447402354161680679259925095202318562915435183055308531555416703610640622906891335283769365754599767696458963204704047249896537961613853455439197562062752272165708195895827424398025085625977389220152284961942509405637891093114181655202641028112090793143980104241846185564825685622251463982533645673028265073686344269159524836487370410377264043559176280788880473134550456925124867171989790396575076705708427669243996819930415583963135611335201080206314246565919878981719889647884549081636267806539862755428367452080449092571028166574300385797134561869697629711323059525028693672404749042408600395464414256726828362135808934301516080114706770277702507704320537396984015187199925641386883147923252735368886650628768599159130350303620962999791122384775679082146040273453924113302993726215644818805700505779226438810899745250756368378545409431956533086834564044483699198710086304073740937881545066387628330971793957235725203646247280079642674380009325056644377417264583971351786582655106912934722127260475804679763743263381585850914298302723795276528499355973585337497470695223135579483077827668055034605496256586892521702222606223085044630328658784407843148365564801014776944567412023040423308960571297398560440361105645119776376072160056735159030953484758794960372374734333885122472035720209733152422089914770998201723732051650974259541237917743786952345810444740411911836964590504607514835541547542187029975472145864915870352830608464959662193868414369679292113337767881843189386624560629527950078320240537355136827136100105819551227343325430043760727205627915206598279994478066607571765202946538079994856452922338270252830317030589899368846156688299570556318695898143821712258798297692241016547653361191934443654242479867409212190563340837270965748948728278596829871240413369422317228325189800586111600632165639075832853732202858190951339631970106009112514022134667699762078555974761274173965299528852508772975421046635758653854226842360583826086355329583793544158556046349358962798324615801983389980572900190193815106766381365811374744532099557099131151020089503724019083235912974049226525980232229479971845872084017027694965596339045306130177946437535855418327171855809878006584981215932482305127096717655791069229471042957414390821702098623316314999142537909931710711648952552489579802821898812440701105265230690901308873024607939156696068681139159792503726187786872142913087693333890153682899655416825639071130830683877831092518923293287976096503203287620381481185628415551586393484985737207775021257465555611564962833655858364564465404719542739837525798294696321099798283741038162180409478933903191456910852798415316899817706820828440941836507902141518625308578722345159627695992358856472310443545812287191166066340399429761124358179583051343858582312726238998067379314754278863020221717678073970192277261275740388968652935635454409971887778846152037007869493896107642742849947698500082398341706993334128059133931258994580099859006425535421014605144175778077817073055511138821047252432016296339195487853109942432173558301535549799446616934909613819601957659689595493253203953683762764015193497817594825733654555077790133568281090140778153565259098982090043362054140520510514284236024480239134025700900714139641898574407693898089669461876360566856433421837975016969119357111788818340099280625286805939923023368130823943616183786703972744335268980873757454989180154950802991353858216786213636443969727359640632375942885391719447939016115137827388328942311630372704131126819836831023855235115330077080963422097407027948404991547840835281980714701450833751608090248691226709614531204348960046215476295435381608728381057443052129780933576908053306983060172227033847422101223917299588179715623224908905502187437572473654446582355325703924377459166020247956114123627570257720345693394179472502478653009199604600771355739072581851524409146309124109479532963106842430500705028270675693542009527626142308187760444000865866584041998044825973085890227289138194675584664362516403497870612770086107664007382000755557679375906536596193384448328831529285194464144373735347412899126017176978674428571563095662775899882938265530846666761115793496382871157199255282359323228554684222555671683036945368542439800642223819898961468629401478328023368708428339493539061275335372759680359224755320988490694314377364201148870978771968485382896857364763638050511684840973703489185979595651987020057484193011118193125546703747595160353866009300843251748190549656555779514658158161366005047301875592853197877611096691065665702932980059266892203939179480364570951702241229764087894844588693502911810368890879823983366432061059849454565899404921555753498210304515942211172695921221400685012589968980941753115749691386668391894228555374931012728316354742950999806117475622898298832663867408173948412838669896483945014388647733029121138250647573076628213935014875166258824210602245653047303637096501896815158966003635032443738297804123482574258751912267040605082674449088722577539168640832348882694814391436470302567006760466383698249786161289204908720025117711966697077230590049621668816619821361215298384471798969751763238850041384631031143654918345357748671338939861272791818725685878356940265832555135756485798344786509942977214148724960976963881463991319957203615356651747522330908787148812499655207784414813137525934334816925722610664558456660335157077733687814484310929949680313324888606652876882328041598389631535706698744211213498873510223782581075179381268810880870389760562398310755664405608858183019487975175331112015926063188287516792043296456426134803765553564315589386789385022016568430501248570661599057017984120495934401385770772892688750131978094094616871989935041427853372501634376783195455093174245721298567412571991527129939550672639832803229564483570333476190546036767084908586001824342304384237755568667666696925534881601534732977679949877347145848300642545595561066956178729594927720675607656313316198936457408796124629217236267055873841286132737625736913028753952862694705667355484696753767726641939559585477633559492524880705122556343158119734082404592501675440025323556863700622475441682927956572236018206154522393457349558958816383030119331271726951576501404491781482826614039047084957337257589679088789990684216215301096503460031571625458466758017853164625476148732432568970341626673141311216990468571172553917966972455064046772530990930602922458992485290153847542965467312312971622229415397557364101861238917745049660887836662599600110623266194103540755262377867219280871568881020799392766243652425833826494768424461111314164723289630782854213944433905170475117680511180854460293115448941362935160843390697728035528362357486273619709819584902555903415970476190586493871136215710750073630268914514215944154425105298385910567911967807329316422189546317769362190286077317374803609905139490934607814692479050777252169399965326652460266352437586449668699842474501704007290857503246092831038727709697332182602712941240593017853243972721458051949112480443606763610416322111810670347145010724129145146956755453569342128771898213057410930507851186119946954373897116327450327427960376125093042796385190282496473489543153754717791253658537879205789509899985296892944797322110208587855148606453016513293305896090153123549364824694186569788684830497306682612840110381459397189512047043165747259126315297178533792135088649888851142689817987314301815472340968929607957845790588839317703839260721854080203865384497445704713175808267145312898999721021189828948931098088371698562656296112809889304100480444632462994832368466042889850268083063147404395440782098406694336499984398219488202656673393158017986815922917180130355602093404862190482426445030466749291460250406636037602462094569929599159909474876119446631227185603404383536187746733759011198588775682094539105088573056943972572776909533864448723533108820358623309124413251157585878074609268807038818459656267202591655334204510697889421142712594999608897152355139058127688342173374645930466621478016418650820871252656408167853984285597418878749867897782806824498574406107725226520242930514175111485631993980138058911402194615274529736521169674145997500088822913159102137267542041876167199157009705756721506150700310150419777705520630477089748583339496476255236051285393533832598354513665128432565826910881624058751562714104779740107108735221634763579457268006827357710263415659092555544656845528915260612179761539637106565846678350315308634854725253787599939890947386091711924218615660697113497609763932826628542797131660240959556949861954802705092626024593317965022643357269886462180815400560643276206375774790712840996470512164011623904965059887097693219857835667056327212271229632316884063687870165308940403019437962125470728519832161280921895105069033945940099167240530966942070245279168842367441385658584162461519994126451123089394578431380968388514994052661678316506252691539685182346364401187374906560175492535667743624533767036072918212512909154661674311291544063366997666662629269992760626963345632124675139814892969468803250214445344426973670578775932369089635865329521205332485262735200139453495432506874013258580204065089544796465559961644851967191550752401935527197982207273711412546605070074064248637628758920395837505720079349924703343825277825315229447597900276738900154338054861946124674561970127810087169285166880116922975000700036217043495558179707477335813617423915964681394452162059299843108699227007115245176326586022070685111876528319189564405177371107499762801064816136785274030661417589106658945968290202121385340054742861110752506558107804185274025163768010991368803179509463585550516944730238548832547849212948436237507500109709609064108034578617004227844885180513315429367288620672055352498913267033138408935382464969702099799653662041324042241667328181707826170210271516887941746043145338909475928403792275470447605224338316391019879373370685964845306455811878915235606069614895306370521084484764121811779445245599245166043204202204662534625162189362039106839122751304912511821622000986686435917951162210817502184318241003068114059899789365960077519784806259727563081388347018863703499718170513581524757344603457145042826720254705133169201838643455058276111713098412461783577910689429999305753156030737659399410356978957599740575220187394170445551551248034525749768500275294850101787344122393554870902441727683479258925037656677212500288190454547845477113594755983236552281037411774861229669138186173556463030664331438327462735491568040720002444700058780064563854312805980491242665626983008715715909605954303535522529935112878589740450698162610742569332192794205973419306716761447477450161950257430767034597334807521635593543899195095917814334784464443605876434734375235524227696150540252843309307761403536392054729444682851356090278729569181466111437696828940852567493878512915216861976275462392127005283006432913307309707330462642230822398647819040965921189392703741598854051077842886753070500490740722396080818179760813175304183709001685393641565828064112624421111590031217598909764787099802611772971656334185377707318811872914715500759978162264802736791003967343606004076927654706710677653808881071104092274493597602358869148831444830716666732599000297278481795783341473066620230552581116712924877490244044641777709880956785917903104749018893377563599418177270234257144312374875012661634360077472585121719936289438757075347290218044173637190045220636358279851178649473506289874372675944845065387251160818025854323978285552591122971194911849694936277759565110283750513682875234109854350273200956819700399446991633849748243844661518869655496914913628470699463253457557649801861724281025720831012096238078153559987741273968423082848903094986499534766331341474140942823366086323400240345322112073060070688381265383092302392805149192806807934161725408670130561369843752460873154790214504584333565944670705972785295962616997606363487471157812534638067444602714502416483126435640059071799847372700164836155548306001430167234347397552243702591904276849374558132525469213649316451511021316338046155322375878763881316094694980971327964161151972960131344024500627862523391568073355758375496577068350543859981954396922111430482521186530053662467147286374386672413940066207689951167108885266139462227085405515261740736206102494049794275881152064509097624056994799980940179619700096650512317521989042850246032888345173542580542577176772059938402349983981763648028889280623364747642764614130733258783516098155997376389446058674783069592962280660328889217975273259283139256801644244650662442515829152757392937737095694557106247651746231487209847741929468830646068418519756583813057895912101226901875917898729794579952511933260779057847457435265503637364043018321896476152718540402452356174349719106788399783529893908823955006632622016259461367297565646817243169546593397391080405770903079061986055735659315440342590793925470020245857588461409979000139682212852433962582791384900536830044313263892049343998832235053347573959595131186885147629507889986311437104628801764262596361833048694210662694877130527318576043162535634667716156806323757175708493272284228756199753365672169315979595364759748661480370193925539508440471429109947956107436271191582901459127383777726330839021767830563600527789329950714897646713345897053468572837107778665272290317464849201129631824807146926875132442151185932111944459101478192790755179661860333626685418074520659197483080369604098607371927853075210235597661083417774017433138140436703418116674447225254212139115463673882518000965599438950408491193577335776819642536417202248146086807056595025311936183438623408652103090579113438702461448836440382258250684176434201960157220991711686939948925448807679602305227856780481405583302833263456625173454371504853899407158149719500557037160722486097811907532825291059034982715731113463674934353776192741299807026709991476110709063472381844286662052004210271645562646594404294990274965796083648569603867143883503359126663070429104032995037545410050758180075574508417332824148413652912271052351628718063297938814827624914016252840255729881305385770717880709386727127654097144832096082777518799619425971097334073931878491322026463353840643130886681202503720510237600456080037454918452985871291168277006058238603064090788712390657284148090577517616531944097026646650278612248829209807734254531938503929909008740931515000447466663492750198330821833822305341750980318413946077621506842116507264157841543411910967129796968325270482969432159809714526603016739876027483860368828999487963149385228536575661784406397956356185569637251474535266543053436965176056384294073878852148697752418486312927133669668341654267293465245705029823270987075065507106289945250228220529757758728930406359534728249419350394566118743229108432387098983550896358106940748449989617062495756914526562464538766728060471489197722345256642683569316371858503785200349506787499526969002010087933823244175935677939726692350394355737727259066198277747955073472600408818010489408044795371874719948688169606053733827908314222707729280632086143777584036917284180968177201511643735792695662585755053427421280475480972633128619934688566770016417925005891261535383089290703457601206929304746685168935265979944850494510681948983534651583085160603062387817622774647790570913800949199073141079581359822964700641167817666720778160213000245852331216550424096133959465057823636027746072748755532312241717626941530459955153369183169673506126029589577182071372589322584317539383595199709271777332942022206618364419421066916058795283262704744185539496020895207103148821722790765112629745419552122901264309205163666874461793900404482339913202937527467314976120281041496041019039921400260179539444928273447762147780814902021002480550758314181147026720260482854484444660089838067915276391194314614934455168131386493373185564289383526259081142648578438863117975603978788174093120929957408865446456161507856596144254157299570945915927548810342966997704082166195450918079628103217869232989370132296469937990659350255143134641287288421938164195220575107900379779553065494040188601342583724171474828023212955364155990062637300540381549804281478215818353803503774192134840805935435196380456346139216289898082298237500285007982211812075519732173273525403837488251144484393914395759327499458176121341256578989039136184979598170001114401732166584577946435172566539712261303678429191326239979210994233828315378114219214174319899504598853693005240521836933430532120441251849789957990853060008328446210644028324900708770735708686732348782935676528375664547128633860354952518072756440749171689652909771105429101061098255750331844965681287071825201767293371264979049476558397250177982526935026901423575474067519658053449654247249606085932667642342796227240503257744182412780327102880536178244759042919732747276344140048444305906927433308101456687569034200198657470353331268957436985832533441403645824674407425369086462086458932362600888893463350027067278639391380016407514175772571834971629357318719126546954903775503638688644128266437792287339044122338985735510565642886213537560057062702594763410988643503395949587480094664552987571202503340371325197515617273542419744504597639120014746962956245401660541961552597582734312866890334599756847767316354452023239540258792604469652266224620218511615132926689966502826770719438572548078683224642915451384444834680245764686300926526337463595945735453281705037153499814627132358161293343665311652372046637265822369869496703499456646715120500498777537085573401456845442618580472551335537588833782833806994885873230482290848564047068595293262370106467948925857689994998815141928930483152827703466039170522783490519285572020271335094741715410602124362717425278299803454560050007449320455996174075417225326699393351976824574128649373632880760293530925364190124231756578952800579065299980550118056023470346194736453647917213171600050218155371297208035890821521007224468176546834834108391771307459444473375271446031434444399410248140487079299799902429333703718936420832591644795275690206777045112506341207466555568753524256726477231648594147144356256675664987984904120330791212924508577160234389206393814252699169013556729912243026635662916512568763170319877592831542478906782149847652875990114722723945017263349453380710232235877637567730185189605059131671044084663667100428239003184611796621628932513813215799617788132249686991535038459071848627202887036171416786164680832288655690815211714481891079487392814589164327995075243088844951868438063416382398761558421920480239946766373744420532405426899346907207134875609636839970954229214860789672599128977512772494397561662505876096378341036350285139843989033133924132766273524487921389632096489303753591360358577461799502859435817034002638927055554938068852209809753959811094226655598301161299650413939964614138587196502496211324131927749395489562286205238583314138084806980848188655854334765269092597950640825517023066505463310003493197625413274898859086796682937873784372375582441184848678706770673175646030073949830057993294114538029502451701711604197255234803505181875775386469981483370049704214942993294112572980153932341894358237247053943319901001326785316983787954975849503921722943154440989464560201087831896637026955224731702586998397481693223931338385744741479710716021430156709686498361536228626491673101206101246922938809778750617646605295604976270584161553190391468559642162667691917117340536930569589892449458820112735412178588351900736856003163849232024247864830388780131679031832180252457848697510494600339048014615214079124338671852085241193181776919386191759027217374199402393719477113423347833884918419806795279001136051215496446013879447287797337548001731707843621079363453897397859851597220753835552727370011116734211313643798096595514895072882703111425735531380387858911736008053133001615125810490740857520467414570440669831859985557772181480749555202927232634953203495009558060146814918514365086976525063398422946307943332348516595516662961854705293386882052958417314542493697610260338810689639876661494338091145528895460669237315177353543994982604379169360637110860525783296630879165162481717030648908919671576481280975584363857230004325195016672971204413266159490550378623242717220270668273198453587006991983048860073163412246335307976961090208523444547020329401280671952812487928136496685781589726665368491350281843841412614167996367043550368095948919751183262060588111949245180423052984438525237680950360168981656823355234685160199519408015549280240883761655513067750311117885903292108543306844623746791000822428502433011997691614957719143525790687728477350777907786912091935070901355982300033161090295436365574250361466916635694209710645635999493714132954829890122515543551572479233745225268724455804136470628367110516814251679016772862749190029575697432420044909190903044480604378232024592858466483484891582374697350349752357903783214345491277917725545500484756933484622853830369472042097683993502661271560547659277734088433944228824611436513428700956598820815680478478375213891991267976077059735122773785350806225061395504003241601051289578801812178203543931916056960323465274684853943886710054726681710446226901698107870154608594948877733208096543587012567035099862640669661488582503811635251253541035161395415577573303053941283272887112033181265737673610736478473927839670718337440794372949779863942370823670493454455792492618645753444539378574855033309546303160420953352095229381147649577186594002848783671938442305597897085858781238640021576183013274736125692458732909907657728187923979757710674375028011349941130020178439195298069280183782453462956504649487130911471394821238070861097709341674092990953080784818893471097689974092461383429540845496950909016508855541363159427947307230001489443209907856127943580089907443987546941208998524732974784867616125334864831779347684596353457922719538846553037938840051812378282952880982360052288582630331055133848541369299318972449690294000914304497677841047674108572069464268956442349700597231141034204259709702281428496211868128463882799118732594168910256325070845698845407651151330086217990583667202744476571238705269329471341488958670744040384673193833624013301999675857922572283262636768001496520455340669884880339706839510523442516064913686215606443823287494555324049819648137719469614003762854092317774562884010934703824081328255976932364879119368512203303684828880269124246500632709648197262419270924843156925193338494010175638522527309859352180801743245688461429607628894383257493440245068864569327553308080399858538243561651764535262469338455484434259129779023816708442348847433593913932535940443950141628454509392151908325124108350160810162627552238075041758130697580652469156420677410166255756186664373479251749194737448741621951027026316588390948054416856742691717854235420248110514079805565419624191381600977401179099386778823194583339337315165914431944475449641207345968054223677992572697624143943342518145516717613571109911291912003859467389183841836669211816978479498829665596625820369121994362540981062840016872705374407834366473627177812526458916149923855943757264414137310454363810692072904120774725445206313121224703169673651997255613417748104888471610192165350912573917154884347236817822367651644494501158672195018612432606576440409420904701707311253971541224349849360580070963104475795970567300948802869468911106476209193548643827442675692860084571892504689000050264586189510925349763324375431943277921249879703137242354207390356106391750798798980603941428476978292634870786374138469921326476110587546289010911711479992975674271818713095193179272522241086916723277157030574036599474132986405071466714037538271593132061901889823317075511101486730124723245389451919789981574193337527689914003159754740393557493229070156032274775571142683349313317601049793906089946109670958872034231377596951941535679050563601160791535542121513271190578683228914329422239567780011463260051733532125910988133159147359512806455312720953914653174785782475398495647422761764236167835763595568519578326437274766475557298047641986237334540665075073913297393375195091162785006038094693422149387922216653229525664813185046043733946480143211761369187603872491468761403253010980201845801861526990989230984882892461768921468386730125105546105765494545213680841668144257951703346153364452093793434680025464376957916877323024884552338071729689554918451550047902847994533654741588688470175692701174954607328390064588796989984019108679215960933117566967564415241877597432461272467564715961380216645265487774646360473375618707307448458874053867247092485937384431805542864065699622324713253308855476135825107004197226196432891966537869244949485683069242973183338393797321923211513164836779413421299534542296092729738290170167445956471082150064340739714856917174185074867654811850504909084975543581656474953228391433016482891090908433723332816419681475167634475340441761827612562340041295970410507493592604840392893851576180417661848351138161634460951300951517306139020007887426724693471018158796121335165575007114573712130740070069046250285060042669662773990557571431299862297038918603379277574963922350300736224980272252426000903347779174277226820333005191909500770916935916355823938491270420536247409724521339732920785576434830842805207488600363927412110828294226345546924523942514953133928991742960841254305167234591514298115052209151570533729249689306180317844057747865211346811527941180325330124995327246491815641666830558520223398745780643827354272223961189961447486737106922817823246506676495926521622145012511616327948154110282782209531182543473342015308100948289408509225897738773912309862408613091003682847301661057065733366859015837864932605800442466948401492733311369746275302554344164143252347579658404907471636546849483759222073373925671518014978702362289361862311071142706423021605249427011202437778528168517819878883944694050562052168983520328194670271919328252197188734636733153271294880600662659866004257658084696883206039683109206781324127334546295805814357411393910941711807515161064874747321402116747288070701210743575015858115770045459801548490028634695856914765284809922903528192463954137689021868505117641871802326227328418805785028190923851943233696916120187201869977383906408842123351859806459504346664209970462640166684159730837101944726990477395873743217746605219925535805191284162865437264597338696835584824443222626430427731125707973939149418174308544182418088071253557648407025120480703105077764933063927606779007946838601355042936051088030560132656626523409023133526352193888158142469748522994150490815554554166508086379500116982154914872634494301249443891921217799381851093647469792026670504092410507561372279608049507356181410390593840429193468777710764302406852965991488435665449698216120968878491498467141970016673678042558076390849886116285292324028734465433769457988346384630505421527254927276302463985041465704877824798825990397232260838494173990131407243230399191652349138339500282866804044410255456058787838709232917246385755803213847784926134353994873551926481148016866354917714669524510223587800002199126033495778902537798591820519826187211646844794569275329247293155049998147574756044514545060530163295055394134895291474188608825687538768762782177155710664308019459443774172459203601788847952606195750180494115870218564814293792096787129237475301280907070277303141625721411157591111466175576858088144010832412930898955939989091814339540542433191929547814936940350693684308242961985754250056679923574128844384189773668396011327491181256167016276609085366293135712148934336577214442799848112349966833976572455756917175503159154215834797947302065897825536000106174033322403723132435488581926409791752595909482398705043234812550780043029200201487306931074226438761655117673183206546085168019912677876603147710427825484480805356564358517044676671140990251551114241097530492072937588419773422544659486656358062819201817255025176246556169667617797093077395845360846967267407212096254195981045941492944903349872639869461939126343205577510273699036626613628348161569163622440067970805048206180211256633010388076294126237895002509800146159212474354307342450986196584083269748283114719570661956074532797254692987277537195109115578883623415644213645258821780882194930886496675763664646694098927488479382598535561477722378171351282371215850441342755383763287927414639859069581769189081836140561059948885887869912006368625674129698825017599615672420013987028116118008383205290697213019483142783931144348116888235162452921795186576708292090892606518972753422888474733348901526819851529633868562229094716176416728704522371997903130522138047738837475734920655706283045850921594513917370280400440890853545833907383801268856299385991966435282607759019169693836875562618265235119563581237284984774943469370667033528763608949169025761077965508732497790835695377320095135595419282834549652048830917227486225040622796797266544668016252063534902521616914287699398816567626266999845939791879668484911209715960468438799586444488254582908574652136103976304310359810218241420837880484592327751009702309418594943765108152249343442502557199195654681647971305207035885861376296888754394647873959727733828232334025890464030138260565466218566171296445608973475009485268006852032558005382614654124567174993842036492261772406390868401057909476118281046418934419224400556920707454811088482194497962610132678265799758030138513621996921750222130588250080847821603568415357230591713782009136672279556319104859963645637996611847412255966279531987374282583397140817715439576307056420908304833956801953335729340756582315949479507072219573203698691792192235973043449994902545558943749518553466966475510268252458833519446508883714356579303128304163567572920565628600072590486248571886110361654135892975265407475773110377357416038047382195628398002654905454028925238926940178813238023460117593385612493691480845362370521056417796686516356825478542264660360373007857188298437277829542170471448031560840309968688150588076444206419752745911430959445346849619117443112376188645679614779393779704653758331601484045542174263158674759551012035928181826152363362440161562130805710515835061187699537116916601295278247075594161410714318203859302506691997967037101812462791300701591511363969565454190552488673248226526706022345497734007454233187440892944465641580512310992265711579648898429805233132786491194502128071288438194868689388382377480546523022337968016020785502904639260469081332970771019257517291584666638336900977062461514249545825023423898697427996846298273938877383183301886142332625015698541885293506239570982021954048372303891314041177126881428320950136106114330973050803570991741603741098575394391861238855762342498663561771223796045342119357497142783593294796404999391206851845428485456318880737352369036151634519530827037117955019009452809820791964886849216865572715291393231243669800659396754602211853481173715559472899700620888712514328940852317103285426910660627911790867923518392283723840074578986016593777878806763146816287019808170422802147931929276268385317994200168336972292520569041803546111902956252215200757690509319693806270754667553595322252813789462566335709172504476627364470948860051657523386056507882619711198985620123341779078936477197919341263593644032138989644287291347025430277267718119675895432142709110461202994403004700806774636282792501846093493579680889441531738636102549611554467542140616617487691826243326823254424977455031625462670885006960815249209244839811186147247431718616881067362484537982766402228398055214675780464631632292963911538058329954573443819788115375926215342479679897190500136134946097474529282907108093743746641299078048088576249475962230123429404714677066619950654395393841607483740327014804569406395957338587667488125878499290752270025976285314685655874324892266201881903861839081430931323459079755645156343179192691303306263994330373182328053520283072449801427558790388337196262960392409067440834779241396659106493324974400782232705866721036845572612812990163438740378763212238577629409671227074278292545793682222216959476302928780261503514192573031080381128309892765348085791827014323252712360569701623333992838182370908447645603759910807909916707718792762630316280431245718737677765175851901430530247323982095865998191559851204831836922272863787062341048167112777753190677589624698368224017069029883863868455233079675530652599302931126144239721990791194682191465279203590213506688166886984592648820197687060824103836035022381457599976529621827294634487753114788714165783402364027990869444964085243971299490223348859235974320192151732787401489595352887200988092205058490875612424095133019732907291425617405818854303177598279214715418187794078487380033944156853123067918605281396294036210545298396139336199863392271237196518894933171156435489827382580366702459862085752036809354272821981284562484965745339349143247929589016204186195925256784142223876331302068003205769362332228884995591895097175770807694420197689379379304646527977269460414692071106127638442153102780617527527249714433100721944440239726873756580255068560115566924925935400231635744992540498954206382017578423118573248737710349174426686672935258027100246870957200242024896075011876131632860431970758000596528681528207046637963803917749358168608630361914806196658301020086518745732328424739123691983461271468969356609882941031907313820480723576084923430213651752170049534343540388411645479394041408673889901057385589715989202555226251963197409400712612421483046569548345580588966739836644977734082671418645235273088992391134643192379847971414827971409612952328086369154559357285126590323612981184655921615610980886888998950186024071066276643507875407431737217023710538545863142601617789445279429625840429364583362317555783899595109832714636555538911312757584515833515227062758909234166587169770873254785879575023999049454599231845329713362189321104031641819354980358688335568776547065607444720749934353978962275101551772188237688847760480942422292578706003761796133387714302378675321969786251212959928299219330519689979894078189374460018423610385696831637561275133068643032266450925237603854672430895090905516736277645566366729674662962999677394270028733307157251794994211073120868047866197382866589612090115461847597830800111610195515653004122268703253930040437403342826371203049053885474166848629825598575382042807550320302225194575532811584919953872184492617665441643354848027405283721018046355441196860080513999275253279395657015420625896388616849844930435481053305728458977312132995793105913301928853133356546161944296520446524016140777649465288801638875098974677600823033501054009966210308972113392592804029854224948919282313408715653221031229482817677542847235264746129383355124383502596537935350330681032744287952226957428881603108617893988407022442034700969462224922723098031911067479018212094856656450256701433119557138758982787223249405905053988148947208467554865917997019990854291908844710310609481229293345908060004361148716818806113688474886132157796093072975631820264336288924055769820701914155509088316179424595822090558579374235291074731690431735368734853526349341080385777696996520204134601803404748470237625287001010468953327197473087306910101065929095729820428198047115867452582028475781541451654004468907963300213003605838385622707179321708048288779270401343532259604988479370358347583804030328643895383369440454628610791117573306545301517399870084961882730342254176840581770004239443437108968777550571562726102103781489633281753536894581580194080594908514578197683141322857797254107443697900484419849389145019558735998329033065989752490937024087509300444137270459484498343217117136530963519418468563069273497049055994153350483827943256595234547836572421090982481732521455973622414427950472754459771530402743679015716744573303783311853799137784984848262317488980420999124506069402889072094538294948695397928524642269401312230457971096115118297139816953492912910440245298770617318769757675653337815258334687503545100930038288371964132986562288499247439392497779035442953038995510139519721737589017318493287116361361135067422740282928840960731258833442443614673962435892636378305026267907717362710579948054440864563911913752977646621946241833689009628488893745828964350262204875790591973189057737654252588951466732821428124677409226780578353071929044244440605491068048636841687684090864796903296635645135643308713060448239367241927517723514134652160678973528936390665190543250326648055825966059358804549469217172112705439302210979719929616419429317958906957692695461648300267034809117479329711653790085018150510843420311920564925270669237969400573084091769325076936076618673370211379832207149719913912870359492537350042146129548819869577233179447869555531737943781892205222198747696217891753449980879525348052664969746123317822589810548986348558420890529156664153628383246481826375993398233368354524783223382179144411180779276849269190998845618947577502053884641333299846394453595010275776807561579742634300603383949106002075445625535301448443154760040756309691663913594509015212350761375962018212492705579282385147251866975889298247054125322666939175979380265574276549698812145074396059315650796906187296524162391398106333527576722733003789883229823966132595422165697435746078978952093149080863753941068121215976104311811609127949389876638217431134985062089525098622905390159500187824900640698939956774289895062424731746704657920388420202621818375242257179580535920924553166471559796463038107142402158885810958229458458979382116785963961778283876882774809603970427794537307148316696688843793960524946909360654333025969667576139449237199156952860382599702729768869030905310604007138829617494052608336381248648535063964580911801309729683629494248517796464967031465414501609320951349664544776433961336885346555341655966727977158880713326136700241049867716379306869811799720075086503100333804106470609631869951434351288065412310077162784765420350634678366065411250779395755975949849624564370189666972521599961439669484329644144925566973058968326020156948131122835275064315473314405454741544695729175074610912195926249735114173041056171763390110781813226298997700583907307548412185232489980485308131810420486868933061884457280943496442022380118981844940820410377173059609496128461117395691386875516122439352115603849044106836199217407627979825195072612854197222503475584261538796858851278929850434313435140697584325567156453301166080175601395277057460507892844452230507137580210347547383244753775563661797906794054538383046233553484296608100382917157418614421744196017708495156685356591649176380885205635787164445768634518838878959546468790776602398814146358709037237252456563943192905965496557138216449882836976916608056426965443965445533481832664339996931420974743327808259102725121209784553081761374325194520976393645795712318739891049537406758305706732577492387672156010393040022793925339367027927763628727893556613915246526908828851935633007180742159433897775487454830727135441676711412094345683677296108302312385576516977290057570855003143893723242624637471014498998182907762676753161055330255900933920051982701776189735164907757212625478577796832793142588698127524395706410735463262109821334065221135573417987658046414011160860519330685404943454607927069576935530156510677396575521774742032816979858493925721722168099593402519512592569909456877016383140149793953042250063959388022922550454836200362808875098441470469969282126121441079902314964939946672621350783709309892100450480504107592988454545367883353378006217959905451913421772411996530151764425092286130095383237843530899251298344015648033082886544170017142930455951651594635112175552024372965279894419472570272207849231741686649050665215263637342279009012340132703155346900676690276489110690826102364269278890859704705546584736417724259389452103202456728287958475210457605893919685022678618745091486265239820640497643585693530423779448781766967072121399588028090052761392992206518028197562746289588485713594276577791847152757382102687556554512313210548806158367631853866424570335657662903574363002282338233201278809271346745284329155466765931132660825590450745172227236971269844780594129613574308223936560230562672052496506735238620242772088670788490960559420004342342931209546450822049930527355610181005377335457901383337080339033774155900724698314858185411018938900249124662050602240972918345501241400921710672913077474326239656472207015004629870180531079470109058811624556722725999223743217634636456349828849308929206531619204020740312325932177192237990311152434376762781811154021496593286204976876113691451733537438599394365668787977207462503593495968061855631031711241564056052730508553542810395479588152357400786743814902228852370525061742876984494867568589535644354432942031640570438617196389515896868771259476766368505096487360885094393284564512398589384887165474498964967745650705444762670476530425351671491029086754324207696448342229632185275140305861275176363617442148191434551040418536439077119438619866290199549943248898782024919254710153517081069815169933482657601772324063737550313331018700502742061748022203773353364554850045056005660130386391946272686670112718840489764552623330822093593115099466365992980717560461586748822837877538920840928995689754002567420942415606067395098370164891313232952903663970458243013643913160224747869046908079361687954255320207794150508038848932121887506521413060177093199664273067602510478360951022974316943497150296265529774850540955397909327675969787271979270022987124209032103851407327004443688539576028742106815405333098207340805994392846412507548169586903842100989564549859288458658656528236853312058517697421695418111698590718662732558312909741591065333767897275410503046468534479740852392470150702625491846205298432915136545621226765895708965608793663904378332508681855981318747155538549994509023407243009416725801059649569212113429958363852770845424914910239826652324136303190280256381870994067666145203846980885834621843738863104751591234191497798059062327286843033455506551048206369855537176095264850414982079049180927952750022967107519352687305463458186759731006518220084205959016180486950130073511149595203007323622174137339252674377543000986412070910601217562584948358553072719675908101604170168861790293861117062960340729221761000971200124923137437864098966260699281954687606451804973185605236889672745857750508011622707428539854183741348705643075103097376037913421046367130564347104410559759241613250709008659315338712278110531551306516376480264603377739794201258920312478491901555227210195287100210005293052033813801993324651846303077473598892359864906369140648925485985391378125212343345855925861906515373558066086694799553813799255690734069354459680661186929028863193919534084100796680494762755807407012157677480774764827918458326168441142922862778438931675516861466288742785319702117276930772535005870965424201230610687528079979480454839537543104685572336628503306427389075023299532528636048206274157177733567964885282384736277942327266826491304102708416133637936788700999419074726580466143237504615405165911085709358655761880484688123043507157040397639748673118368339582035180724329138218970371040906409113805888575614572498235904398015988326487929710294419565400572442976418639905061477586438519389350840310901034223295400804641510388273454888618601405095600551790893187441925634520988050212538526407566624506238212452011080455672373312197900092880130693001891434859953988691210294343684170885658051260187095038696230214068711582549009733646198604150193021690974549922533924145257589743994269888493099783491102373564095176598831202968339906765226733494297193606533525192905310752460801791665886603823991826339142354740179186704033512989769189512355984410480720841490026635573316634028047172840590534961853114576176524235336911887031104365734644662176927030729650391925551558512211024756149523182310784858465179859967089683870016688271424380227498368709959350965145788827109479564834491719298459670398025361759782726236798711681217578965680074650421263078038569180169445908552556696152735174579812370695315157362263958726086460911053766645219402522473713192246596289858082143136740359142187874333348074842056663951866504389537080475379658922274018649234278202441940733100705439914168479231441389547044967618747032281477740835530699846470091405494493986147685230590757137330199953760210329057982086615405149393713323170527079454921811724963829095406590700476771000482407048602560917145897104217513277773447051235715399655238948389353129432079863369881473388903411090171152329392240118336545241771846495663079005367293951295250610369864401028982472957166958890642355670075381955400424429405571585138215803995947597051232299332924137941091254355461595932894016619019866770725790487249448876952003771130511967013513524330821986821395802924359712222262799596367285104199504281460974511402568691571749678793477808997868021744931710236731055150362017047385775216189902401582858918372962607452190190164555186297456587453061289038286245044969956325194595343486155022956399971617250581485343692191445908970877863190583573696650292633669609642170007406669408727440430963857104312521293283415173151851813821609785011490359922682914924715371591549072459801908038888057469572371079769452224321450885512675159874373205937906993469385328862522619575378121897004292817796681801548580042905138374888241573442119134197757066212172326409617933432715305425817716090363533878124733494661041544972908823714652671609112781282770928735818995360482142861796602920885121489439753499817521535498531709115989903692692467091985013688496665260602246149080677654336675522151171079236091936092821698169599767414332941670990872399940405341622288355748816171012092564238361217924842229446457763061051491638447518839288187122678860257792923712361449931163064758912835879787375987365094658688418880502135899138393812715244968580344137955895201794909072069433294983914382155051009921666009309918742170097351087807635075822790657766446724747402496686012208890174671204042473991313460071586655889766483379015188669735071726510862346618784676956220214999866907631545160847614154194572972875538905948720908089221386609770025115531352020439270615197869940064956476772879081828432122441672929093727670048997941344622229104032401840639635424769055232116654783046649684374235094414872147003547138979740813903562828946159182952252691139615239414186876668817879737662739266138252254647266258825311259740375714054070495142000181988228816038421695566283542222858208424334422331989867838548198138703943618775364363243034113571430826295344196550032282551792340544608510871350571871029340521188439680765237776143331296612872830737797428442808438485386698365018040111965903182480594594633470309898513794995986427232438412363863677202380707629031897457887041044381920114057162517183592270864651124842400864182557022358992632264890152597829761455581730773075060494967855191062846691864127121915073019476454489245890208566029525230136908510510946138361642460149021667200454451951518545726523967404561282388188549158027815543154690010045405892788417761052194218686157679311033274105129976420960090639926701390721074208550985059080932207688168764140340912416557731739287917629651310031712741460007129569957562694612709877252753183274160879980400139341267651031007964448520788582273596686679839818389636603321393538187525891030580030530926035149137548692944987405698131125500632734029191309258091366165135755604934698218420901376982491744998063755786050398625453079547895949792172451647995470578577167820428210167960332126037835449914988977271923367867795176687039658837201504945085384705042715604700465967259617355947515386820430087405770713157959541207286087516437733818473291325783756291585296059094562808826413237764799345501312457345935841111142086489538253298572107409014390919503914234092834847315187747757096929983156798255246710431152106608831565354873081010929699619359444318515942970104795995691992003919095369817566864478258028425630071839557896506100188980282354665679848058028475685629985283792310644287333064002721054903230703966507018796730324795547522044639439497114813831167423378906797595546009166995527124039273483529681312214918864411069554008619311007182087073475037218039426815054305305354938178369594174959818934695139690161499939532977012133545821146010170486127984020314495673354491877734719492625043397842431691127414453965662627045023254221581235926605400681217121583773626979210213554172366600625403636135243377316697563907989972320089474207101682135374240290229689965553949318308040959543766404686027722457958178146613731918908366474499277883317184624699798496104822127738612107064255090040221712366829004864436237494139431660228643610623902164158797092092193310179869758247924543318679118542322945722610686742063137509102509379246955979899374211681743988833530332032672043681391542028402085953338076652973137196519978159847862886671827140545708372740879380767830283593351972267283172045023616618247560380211265620702632463809212063024259132433982024765868805672139529920878064497816823092811846704232156710640878117628142298546997126042085023176153607020588795581845019373693976216283124667488134436727032093528470751745863209587262835318843040168240307637885896747604112126646265317854087806455456498624889687720980653856507340057811432713788303249574695125415316910676203566742381238557148237174090673541740347838135650684772093503763546369232829981895738759802539574504089738312395040280086141915374045734803287339894294518153553660166541771075158850479327444933511558888373795833618730870844992693820747740854871583375938852408212836885177622324548022629083957935920551198726586604957686366638347591249118416554608543247720873474202457613013798893025181837698976018715629241605280456991520597003089066162037882481542783598944738199724648995684152000128478320932945079953660790606656774082446288544085723367824985159320133472425094669477753291276189479926579025574683633234365931495955666321337736948176374583277253298827607756269240204036338757143716115368524827481386937214544201043216190961862841495665092119381081527170270502094803642699594989854750195624621085973206335747282904622214482346603038473313405119055645120500335814469974155282882328136751343839087858158611514463957305495942155841722665992075332228494047371722651704557590214772308723241701217144447967058858561321034993776734702029045145626350648202387892574354002761226157148526667940279980344425579589963181057046630194749687038982531483360036226997081050541282026506549452298914850169964448882848988227445471574849942862984335702816750193847013527195280802448749784162614723427076035531697252477234813076719737488371175479191621000664283801652009234708301258349782812515830611242487641243382481069335075019938422167381555168972184522178466783975501622070798805798862960853534863306854806535746771187888070436615956756246636577848329056790444406241486611898811742646475630138876241124559436338789467514592729399949613767337443943092391902410847479684540825513411414906701578685869392386280664220252009275369981470131708144930181095796806258380554802394868332667020078199441708034777180148694416035579897232535224441409719309937870420830917693934560441189710009423132107577409422811180902291907410694309316403545870139214504621076528613809729480688210684650468934398703605520339085902832489229968251143301857166861872797463516197195886395657304879911291805791247570523348685501204646114704820296205816183829515725453620693568916577895183693028253150165854717627062878270857368014397815447497608652329290664381819641803705967767972848488161455902831877137965987680203596631652743065834645734480052747208499689946352390706860002377435422875768644307087684211044269368389215944294614090560248470231803325429211835315555641347832824087307028693276139453150516626804844261350079584064515960565926465048302281778988981617701413212529827402394587531096102135709641745916341305853580262293846376552466612669288654119769164047817876721321521320354553749312583266189030260677375526585956336420937697194255734524957683884154345201064594254867278400976517813341348880432418977713443356300587905462594579427047531705518422754740869675987382594966424425811222924875804710323359239969496530779485847381529083141188893633397307882731354627434182754028971331860718604061983189067325114650279390112029160939088646826328335384143136972491498218506207442306668734974190814339484681553379301619709711149999005854658763462984437280770909904833529425914682279794480974069228519883483730627430454805083435620470847127622716669869861156403066412639554270315985448126048508966283497669184421221224017227543680478095834742218051329655896546558859680883668975830536710023789472151464371343757654930381125404862207440222541590266436982812822360779936693686611262580506784672608801356099068102471965315274048551388840903162845961873177878572206123187741454997162834121960240239621399298794164124377863530906179313226282034058287476045823598537927381144942147680833345855151785958018916049684572411367384654966065958535453934956105439231942493665916388576157323762869213253721149871006657334460937911169912962329081719461401175699861463864812446265911306575853009680990541773721029452346514795621631485987688891871833934956640946169766605534310612284725601387645674955746962677617056036656421363521214398873877859249181979392643039115008058099056752713854436000539256409828148923175988537046942248889117760881419163024869731713711632713881770337891305617698161230120170755268955247924962778960703431930317971019030131765228144527808265056739440189277334504145485312246067359327355765385984789790545912245796769931875789137191829497273527043165163747683058975891676103639371923230324958607860424977467844270725181611696274621883923228476191896481950529796276926189989141172336776136670356052205298947851728904211810581904340335419905654882978003174795209235835361248649263428204335453675806948431081500831972577006623918013702980582016150414009096266860805652381135351979089134699622436695505326341946025191683402103321392121554704870625308620535081421353281109699839416011103066424748635490928963968944777722365708685970856148844150061284418907286584575022292358077717793467529767792818556280646428375646724840624057926785609644911374010561803249905048317401100740051451960995101616287986411139995191834669436537240773867242860196953735451299788857665675277998341208377650100568742288949231028852016879411830422586049812875562123693587776191362208127355380241629994685440458890632673136773947245320257297070389753273446758880705099372996398169303274829318012795813935511802152419316427379291800939449532334046552286673300781551932505809295666428871733304107724593957240346162830402445633161171054640775055518418442146339085894511070933399198422291828537277663417574492202366926566677960886195712057049676425106591204122443736449636507325387084531493060426518577493238078582772541568253620314355174555892622330082223486033273945584970164011592262668022525946876869813746762079460072806449007896117739736938845185122186677854386232476457650304894058734616283980103005877098419655111925358968918322392905215165920064121784699767198572181490645488966081855072902454893652860843520783101869786108582236800207445092369256816747005022835636443402135305202969318490995135203238674798657523712397095989106209386693777204764798578671071132166223483133796834667979107546466276919468446756344057224199372245707759387239514056042642833785132716611298870853808175691787464245355104827148244041565226223144105534649684983388938236824632287948700776421579363635888033158381247748681464045389271623323682678211260392534402524079352063177550832283215270866132224888902822776789115874606903008470790901227334066841684849822544816019128844683705532154775077814893588113369953514192504884852476343932498063333129185963080923653610118782598572121472236951862900313908281626106485756371022808042160517880133917226517469864411114324191290430097838847225057322295405648859100858082558907528079048855640387090479464894875647396016035811127130498507649265502575510413744794859899281956425995836074407072750061032826214511417595809547638829684803138469732541979824441341957634289203382274178715512151425060549257945414423763694992002008623576645954369587709888708484895390644916442657126738277300040703412607029796477962140113785586090018164435947421378350071098254686349356351116253414206455245152705425676585584647206259873259641625714009629916748185776987880475067612062360636062349412768461680298306037019872518309337595001596336305194599108375175112270025956036217305110726882674201122036679148193896343994510329971701653267473491442734071828778790043548053261515502892309677775295697849901099888198936428753446452668741174596820609806666629250161652705003668843641744208280988428800860702177822626161045963509199880197121969588157725169104361543640884211440705616022698652044666379114416514521081682156965191253515289276634220622344419504393991708650943839207651544605411030198251763363793489857200928258638699621129279708661328676744437699811619026610833977633765456931430875248912567890294485079094999991300243413760696324808829936265508545601267597993293992965597879972236570751135349940144205563108810458571072141356588438597185004213235829001575142212424924369535785648550497217371356070800488365559924715357775855337417392557359856456769174450644322771876736622816545056549729874703988650958868448919060618742995870640913831306576897050798508936311595595747000088152463559386507848678423122672659050755216847639337069044874663349238829510348287890410728378751487218317527171466811167313805337400682935678373992190794683379708281137562442809779659839279092395647164816903002832317820936980172956148586111746103229016240351137147894731130446847842088110474368457861085638226292493505575643959105663734064315543782581757193140560807877253035626345722318150185990954505263165728150465878863280475690760054866869170692121300398490346667272159145973516581424080152740741797359409166907623318232862783237306444230664526807186161010417250010709572108590891042661755284109759745085258445301003924071120164263647077072617081869200609958691754871036079289940787370219205998941504542639817863902542834919046655313508998490882181391518797042177400398015821162252278243715098996798016926782597389569078401368869276399241402426900942702650777226669705622523981172135169143222606418345721266651882949913829806490589489555687267663051807982393935121419149234950780446387542041614640760747526456149316865747474225306719666913314574470026415285562033071540318653217726771532730208559634426348105581265247736742260913004174176912031877709777872747003169699116461902362800778182331907166605831846926822919622796744433645639915291603158426473092480368855587560142351809578812262253643587572665278195789355659597508488193356519357639295748066345207847693633817668618139796633722177273934168284430895764740331334603484745350036116787002195435913985309916842207324147178347133482568845279280103211627002919276945302635735361060312411149630777211023837490273302869213098627028434903513298692363631940610607298111591943395351798669424550241472415249804009144547615364990118377238771010981317590068117137173162856138412816934542608338297866665121574958982864328763366640518670205050434513663763484738149286970844150858751606647212763004804847609467422795567527060974492711059519616343271039934733770814380973539965948420211889880704304147497025062292087105613070092877627529724463021700714918401231510658901888930699440421741096242035407521003269138616670309973422218613784659485881389404481018416006998438248618847070255101681831526341819478542311957613781807998465691363907577733371360143817049506781988142032152446901690290698944009938613892275269690747890839965067133221131662758858995590756903061729713757483153364302035793666996042748610487944535639210719615508085706756918893846870291319350171736522114750701651370145543387116900176678578254073712707117988119133369889177654856733850680798155380144629192760130706113738606931260234482637960611283310928893578052511314997996435938508825643616263087996531373405903712630099902718814023754694249428868853670689901133930579597332236571814167278622393997405745449928635138267921079925696388654955916037060556142202238878518674592060823922700766778227091638106257923469038996742527396229662677731744745665886130921416757014841978315010164331490353579241818353595952476840963447579027853021444533105118209877396502849442750566192483036713572981032855208873258324860457949220997076732307987831637702392492630252051768228613355207377002792001975326470990695549255329658850977417885580566635175383844621044793604091333891349186175750194941587466761264277639512157474905997961917411371370596030421114418184407955339270800838282081721619949967482571045238566232111935489621183362055567001676949206600722763123008787283570643507850456891451392658164311741248510736806010602563357247296651831083227941433309527718887158951716500383847329750582308364057380001548530720146690258270480749344986680406514971399131044400263333590816811531322730600058286275693131310070202321244333817889275481977892838390827881605919711255219277447363911318062653344528562296640388234599441665210345346019010718947627025191379092877280753836592477492168128142716084301719393170899949712268486033895371154439025926588891729631298987095964944211146874393023680103332323445132372204229069302793521393152281665813612979623160821163579622061351772323602453475162776906237266299165341337503920884483551505467538628268335247598941900835926904961460472564102129579710945434052650169048925358197277300371386721548565587827459272587140973871728099625975589326640204586329592398540763783867252005928299221333231448422569833065355498157775963445530852335658186301681114243062247362221874950390777775757960619373950986855863758746328197127532223614963607120887506135249079936341757248698330895983927111795650189983999180719253572236207043799982382564676990516842230678064021887408233679047460255383461609567210629058447452547393677670254167644913947183435910408826665529385020048200698651249659916629420131786564011437329329304826982856479182314027168779201100435006540235902872052370447653576704627003194075311010815097835877309300264437757847555637285752775044515391710518254188946856376618107501323418447269978796360758536129225760860711047371374897411541724229416072641268555240830734514443434223413540023655438748371855238906607644427414863028865613400826602393857072336678257943642754760005445190263656760923433730630197796755277153250998716268717972256157753509557050798912381008058355825865073205169891891213280807320732857861698012060327033490157246949887940905968704800248983028101950914633225208293415863793440135645294424479529836558633180640884359740318302803866182582462110710781471076573620979837137209590280106539609183610191286903035474415114315703368199127590543037037123807259995491279057740666520453001659438892321411800099805357356064642881592440872831195771241600664695424057868164922258051013941506894638741322061256701528248560778307744198340132294246944638129977777262695609928645517513333587937947170963191235796492300300833891002519627159424683493401817748672877945045664293858934329256485909038164946922658187812980066582173630077065193081703758335831810103300669373558498057935760240945146218352426073814005225221010169877257413305991653226199411725226899871261086680838215752948040253527289121092664463402482390965235915031736241993813083281075258005985050347179430784973855444153933918871320498487391310348889265211638895475282371537543956587856492831000474477530722418765208992345337760671794522918502635949089549690655121857755759211578800577589571135376090099842968857421367244894851379719080626317574265601344770196559418789178782118839500049106322709521588646767505403983058702487874947451224488565543573468153085075407252972106217059777903896282262128207197685440186435917920526881108300565339905811905582080228596841413886328691733361309269264960266409637383194782097166304386186749946602196229202657723521243761764010269821829389146425839103705509317161456351415600520523413138964051159823014985297688156525776917868584693314426876383149847365507656637360612319019836942439948150266857038213350044241730935954066087471748787255134556436649940948083897865602744868368872384343140742201774926298219324742998117368306600891792640054605602867168779137314299520944728160564925285904177890738555372525966238678160009676039222554803237146062558607286086264250037258701915250924716044179453136978641589967353826966603223895896604823207047928181182338845760834671970075906493721631866003556262514805634188260290282626043925121222210071476199561110107120271971971006307673308380714029190234899521783243640973940546988919485441537956085438736792548502027620797216790040447470921931885826690191345248576401666952633326852591558115754213551344073040889892598721161595595256084325347560293752497797050963694382467499614828558970852767514447655517651801802392194082383569567793416006126272324215647701843195896786723727603635614307971254699403450573231314612815509424744346090078815782960173593034091731274139458175992586447617156292666843217717187378856554967822526133576248513771459957371439579643608660400368765652178358506460716210584096363429542563917691891607100119366831809326861874532986055179364650787537287907125671878165579985979876226488106470402168976173894946126978207985928438721337834121319637915735469790269564868372873416635338873497541713418225606160164497799337632192834806167712619540260065781060138561255653920382245126198805430144930721410893909245699773785083276556154117853099663231626862526855647888603157814874541220220494143021627346296203364847957397336529668509418433948568631684731839205969875804817618022712852327801078180086919335724268174620258436589340499864819889701616171345779674374522673912217807711924370959168784695364243733074635906759763149554840535050159200226159030072188573025554812262031565151012002178752018329874855729821757677300309713924726918758387446566225953284970238003601847640312670760554816544242530398023158331523711209505546837110716840958285124034982958513699332385115604622977069885767020154154814541365745105731389121156302222837117902818425571582063073074225979821374841020817436533679590168578978400184100016400562502869331925187620055464843304781101828175270417738008647530570921955183929917149170845286521706781507564906844851205129899710629285072372996567973737992036165477217469480647079783082480268284478680018288849177560719407971121618147536894360721679876811783732433850973776766174609645152654349184872814731515155430320671456413722803973441419181659554653963501487381050088415475445151067602481723650515372671394293173171353130109753727951702440688593415479903083318612735172171455729465325270714136405013766363380319723172121560884508857718156086863011973709294004342699911443495120442246831433052272275254528663530311983386072843115613069084945081247997840409100861608076453485080746231414237086211210420705980261960115176369009762634973159862241973093179271219907548119669075537188390284718860343043225869863109710749982913051981009274376433968938042487579672717577108367961170083845509268982550363500197624887784236556976394546670339966601455841453937158790814376556188344922315256237809218154867307926369715582948529709110800586430070676751714854611685366827331791104493087292224932618789204411797564320101224524710359088978944059142785459944051471373392783089642331975483475120338855249306818850160960442591654921735762472722063890766956724633864050507076477655611923309009287582897447035755927122245446010436798842334649005003806758146248845001063227964791139702534283118986582173269657237925486187674179018570528180053870744477725008416511751135867526148922752765826273140421183403660384122948876739182998841054122487404710921683226735966180323925158349196429190126755220760408823001513667910299257591285865078437791464774997499666432888505750922371215920596618334203002867180994911076168259778290486641517251451090820840881643391596054267651149073432308515362649292454072832733346849069595737054663961529642938624382215529237917322367183226495887514863032192143570780151866086804286335857625500465989860866186538954564362583060006453055975261026374363306565863549682867214131135123060829015292254457129744657032815526847509717744978329908593691870046363672544596223545343776346598973411838762791213056062664413526399287927433371920297910400926773078037756129480618253533963788260399397552832336993511150816662313854428825701255807707536750724157023310505679370137843673384990048945294547715076290786711060102874388289727825153411000234656253616078826340059254276887035108538695408297210211557873086988609779865625834922439536159201794217888449470345973288797555108485994969670955342763008094264297909655502151424018347624645113601064922180129614352674994985466932206861410114942965663411142225151166802006041801610431148455731612951597490255573871058283216993948345980326959770958590220956777253541949660712028644579138293796875560331781268710429448624746827554421932707706788899780818942816020017152451424168330371446631684410397798779955614053283233556365281363889291923397725734577544987576813109336172660568621845903966142010046352538705364523354676088974346392953744651880265512778948345072221580968213000813674299536917683456272848506504955130988472548075098267556891668137971107196132628035848269431191600818571483155403386542654907490011531341222282229207347840282352516643872239280028571672073568369241686135163143333122432195368878876333179612277021039655681301802605528338824946927882536450264208842748277493612110681214642181610180039948424872697505875333651854363009979788352355069291057851611081972815849552185773939344805823627794960426215006106500787867202513210709162822441270742579134958720039203480221082465817652781101532355335930175692616221541861002833583474442003234734608236930462705860908387632140965739866804074056850435979219971858596445929306215220738665682422376279007548113995752802459789103812300775619798128367405343119807582617438870092345974285907203749475881588706998184227646430680515711688820026230943360809621114530218038635325240240664999909994187289322511690084018027413603677015957884054596762126328467789066755739506505457542257545233218221286381218521958953398601200422184870598677644644685455663349762971440364597898294384193931750320889930206106552358977442933113441631852930006143297519764006101679749758119027984741729170269219253936294156584407820797509454814193139653055605901420593264535357462318989270908186324113227317934233731502453086860522572210567973394066879217304187226166641610066092863647171245341973538028999834942681456659380666250819350694384678856953969905403250133509242624697110274981716932922054072080525395305370141772560211572001846843808381402152903288364043241815789031274600763376436953965783732088459974070950330102339756379509945324198263771233329926610818213330774559316117673973474011484629614135820726107925193081026571881532002880620644477661157743500105624403054367007709744001137856836453724744709827854704732621153335142051746257907908516558060567594923450617969430191507397092337690052324837350098386137876412892680969620066114496812454865484406487905156811219051376950303892411192763443075517944332185274470132304206016551256865341327445733921998266140830680388676297996069114698953715028133174798791311500258248497274081747322289370431418412438971934609691294767818673107035734485839818308884908346828346576094077451827118587302776258563828521420789800856940494063647063891427488033873852739403325366380925889048558239649705701819464119745352912662060704361973466637921643948618468820331875951056009484801925626976185218066019676898883149827423958567624389880023625966267092564965034034338815572495133183766870280619180922555166953543231779130878773722870412492330591184187782340541591656690672849708225474838833808888298150884568119597041116352063437128360753442816077398367197052970229739609950678910424170800641121960602969770513339482742654192877290840645012869807740489540253507743512350995490735458402542082962360936527901716100625016700872652714453967838552401628093844901448641155169299842406289155154337877128190203121834160119873444638857815166616320668276705859894607113926731158950650511207704924610015923241134031845382785790231405773436094625229442688242685082518201954954020826128501359317708323996729950068386282884246176097965698329702498344954555181449206675165415578479356211449447968846446928318149038216186013664905902302701688684988159904424729446550683964702947496837370519251185669519950890891248857764998556928189404748393078250045575291867011434648354864540660185827284580318871264967948046247267803003969224971911192769591442918410853266250119177938669884954970316397035166388051392966071350314958724818915764755109440435277847458327039306757959900987138551971013488755350336433397446968576306939872740736032330636692975119394004197756940287965252427424735233893732125688084530432095341528592528509474458270679597001280996346060293785518988322565629037818820863958738418025516410184493013747524153878526997727947165675965211121597245356878888797307312912406223633363522267674315312010978665022015002915696590838598128008021972991391443869713417971497481684835475144210276538339756004335778020736044165932168429460082191534256369597603339348065219110716155913465035870442830556067510265645460222773983282635705397526088076831159384804374519857451547945306208389217689959734474477310310327456351856039894145489834551737741290997663283685547865615899461467201733212398457260313924769072126199246086043468005825540099757029514440512033809126776535691355541915152061109308964930757813399979340865532945545952362609780437023378177518909473977484713590583022236624266139617876437824794376825219046312490626367816150394072713155245045650855622810349464281932205795871828856680171678489324366588081331352406641331222296557111308389415941797253074139376545775121331246355330934826108501940113446321360877285102754559689872035808344218374970732783593926858135910361170476761285412536339482942512190300301476617873316456183871685358773033346634892359267646057237889618853415610150976552864603672878967708558064422081542638561423396079937625461033687648061639937119311908729827613027249880117687015431829540470691038315179149526769368597403775595643072891420599893631136321057284685400452970010513512289600764534000821994665760670789344798139069866095857400260370063669270786773147614437785036891964383181159992885904460934463334993227207240070721136036780562197114559197000606421841332795329421735512985745424095698504954494600408933405114023398957293952754705825714829308070733564191869928540862356308971235118997049980508633555723447597340484731112511144106100547741660390812296470735625981848889072982036729857225122807126443378451894843744655071502679316868006881417682142403041492138531711959731058894765185387841030935761520156277281944525432670027123977127513469627154927085184681196663054190156894939277969316706046203042307937755824629576044468896781584788414703898819146944850096165250849505939607436363283898564970174670632800008874263931140707371766523961167315254497837015513560254687329421453200368205579044493983532970413392949520687638685613214554225640197788331574334471590285596031997987146556550065039581209076194813230564716271470974084439666945582914316801746732445622094098469966236292607763867536338031580508419866429811512055880075867834144259697700088742973393523661895669312286323036865769773470634995006806351694972569150185246169057625785389064335049379872176720569786127651691059290785698058958467376402464189670360135924795788118148076750093634738356535803070930125314551882369514919614021823116698292547594154845065369523778717413436740944230270479018176267701274226247906720124076503823331933851033249648971102361452152218115186626422341325799871185456102937285329645280143521484846654034553083326313324846610423710475796569917384611909855894281275834779968222335078518332117221903087853741172358806451006942698042801380878929515007277097371047008251413450430679771197372116778204202702747028536624517734766679494494138314699131119128548058074127062004824875884111841636320620508652651695686063536305898728487329780337729469524932124841784730979916562337186432454989288383616042666389386791215688174392550475566438427914652455018690732453453519855870124157027198118892086243111067393646416449839051037018552989481412330321258837602622674188667925322504557207031892534672317793857139643279604998870884460249486088464102873110476759566518979009490726922623184272025371447989468265941421595789563056640340252282439143966486523232474821001428903298170223629203311202990109645849066551550352029144770503398687740285787275030776520774412392719148441576865927622821981825883107631272737164020440201039076527828017529486203321196411910010565368953634594808703803740005844077444124557654891361132287034303195180818681339392546430961304631917396999021582322618723281329884396166295672343656449079992001518593147947620939447239513296813749443626080207407958101505690451465911053094316758377133828202089570117582627901354559709789598948974287364886495228151959758705100329161850283845287986195003225953790416920963084128280478713243919546769199360474030355780978909783074619615151240192098183703909789092545389461792764311616898092433408154857607809745841124830235653879632537211125431394697809763068473321875443637774931639877746825575489986761430372451893202526614057830481298906056342463590670062777260578689174219257687693554583934118348840756381008995950141880496110209520785381253645560837528880584179937733762855623746219125317238537623308795106701025786264686239473108513436452135500545731107884243846116481721458873151371262872959718613286636159810444941611946981370995093767669766966943116956295256586786195342780200723813585139628904346306915973562330964545297969233373903450120405310311693575604953315237192123574781875950661912881520936627085847200870426396726969372971001811778336115904747416870297344335180005988437518339131889198819916157266832985261759070998124566694066714036013291366390922896307337069739648565313806841662727909206040691600340593395051556003658249976994082730115244449651853866150927919130987197758877322613834258628377587019388949942111264529689728204571331951591701357719289812184525616886553788825011435085649419646290077848848656177110133058209794315770799578445405621210389611696684395725118114169880777090626731469852362763739171628176064511239637787760346243252996365015926135388671810216248532784059183709909392377561835059193049221116876811838362529242802871153026415053833349371474868007041558976238557874953043268039159958365935082494463194197478403558794545310791509654851588944839361196530620034855772582269465469350448189985338897298206333430035586796368790287601820285149137732620727962940287722403092919203772406949189289789450374866736464307102292176021584624937443976169576649836199146075085658416534252747789278402661256475987516121860814367734489255082292208334247028415554578797325998748940795348989745950511766931328671257312778366782001960830770882335674769559007332518726613701108562511160865714491009520558456420554255704652933765129178703177458724749220590280731684410727774744319407653957126878125982444774543149138840929242550853779382742666758255054079056679269727879097060142276439833493291722677806365249664761008013820803753198050880499693291133038835034256937948405010410202579710504249968639337533025619213466913170271178809034750598195007410919760685013393532002943099537103688126547334691667533389055129962391592124683396051160795939822529095795737639152468883933020294926031583997253032880469082425198244133661825485023628385456742356695998034212671035999554936400986651342005126988917553206757482702147213767256875099830732147097881005450829230181231269765735265503825672594588508879901578639637960936736654311832735396747559938983357519616807003636219349373013038880312718983022311470827176720767449963534281900751127615236091377219575533276756219101037242601079845561147938456353727956683283759195624148387779242591679032813385977498130143408801809520678743589993936655926283346069550039327690110715092598780233678757346417115329604132843981353776597756568613891940417808245786357430070271214159889880351024307251366413937260283998114381687894204701364964161640071492974354288758531619767517272587990156038015281583466189265871084662089904102021060048556226797129671769922038370457962922804113711043540585597787010417041498033816509011904912319814874813200298954719786908590131262722199987669403988696374128594320814411357808559477963980479097438269032470286110658453815605582869013739012909489923742171763693858010537317307979972760628676628050276473592256381243294443128280102869199372164781766184656668021121349858261119518120044707358783249960218135573831416351946075514355712865010742161196608780036098331104532872328849075720122335918391230275775530242552084045907050226265409413985991979614613768253169894003725913663023572522464440438344494161971942989947979992879337111916316747937572505810599605937173962993752115838174366547461137189768555092724861455364281374217861406553977453091185055208539810189333574090268119246221896898672358403493032991979751390950304174022450477938932835762301122930803750578280003125174290697722661491926466796596538091948717373256751611272976946807472421648265078987778541014196873450105096471616946365842149360400154784083140394293225271333930709054418066711089296732824979250056503105595296376606468308677947272146292637386344913608597784032545552596458334253883586740906450940660822059666640256666359069444732874163481635113905540341967763992620821238193240324403777731275095156868993060463561623500682951890677301137436567260731474334996814780581947971884583279895243883329204103869080875534960577930791483246001093965306267065326556839000815130326392868199665604817704045354124367042273040981436980852463313519765610680968942951459433124714319792907130276639907324586322651261626988400152454648878730103540832837867289236031213164334904478827363592747669630623028423543711194772424574828210940811763037378082186486882651777392820469878294159305229071093696385083482992775420863072943111141733189450769656528929373950304094476678979347703854554344525861220342834496327566328732616395541393637275872369775318025934717650561552702384646272245094446994177602370547194874604973936551280229027326602326840495560738697989390000199951018489880225432179565788387380519330399544511718460200873681014490529198316379601056909489069202377564048697286208359143547426208423635266769010749304546604924394379134005651154872142635109208817484054528219740849089092763290724650049457743117952895847001224942683491306739616764717429481443678297573005827709779229098410122762236854445736948218923612824344470047997475860848163104216185454896744200607134401524680331189272733019997773262143636235472831521777647924816852767728223099636527971108016264964696539215103821500123533883334291297370545150251410905734184445815421601029046018665898941462238212204118970862731102480134949636742454721330001043898207513381807883962524546871332298562394655842268576714967180869347470116131291483714213732944165326641755650182994410980578930103088983484547281362246306144469828569296959762446924726270159821974603276575116244613112227140009446465560856752285503392392006842697956376980455389632091443222694868360447978030568618826505547157589992646634190131486489430418749943476721907780138706538080758076525685221634089863170275492008088143717568382134486567398178000539993182423003912080628470660655621573092096380466672703341207353438537841671357740506357212270735064900876901041828156383259663757883674618027652440338729434234347285070834701609366118203524320108031946103809867479744079246186547811610083616830717287703828983985510185816262462334296694989913206818972393957352178933977527343686833587020314722514042876775245412728329951367002094936104448688531109335048218073901383666153268135916064483920284944389855450819204551202242381546260271043789342300807374081548772884736386859030600680394831829237321159104722362139101941772986783031447024105440103584816934634578299644209288595758619707794094337788181352876403989804841541562917018900946472808005955870590937540829839333802054921543438698735127164396506096597419151670667878500238496200048455342319976684681229568643375969847506363892474852978875805946430414703904258941738159699055880589988670922500932107961157298258517230420016230759102360237975023033332696759783382330809030381702833394733197021658168099854291688599963173605834319283221969303080905472629556008583206413942088759408155309902103263792244745344952572694481549997307029468776749821254703535307111227064056880768701118904437810545305945400528647756368589365896585303545202447886571245240692860828654155681867268203807928499247348816256714655874732490538880191625492117942695205941284632706257911601352573548154624922783260269410891468494835930508233415749364790747352427171798440445781737754007650067155356058095576982225675361044028381988392893774824135083343127967328157842346624389427130348487425879469297608266838021239408773063385031079145232633079046520151311595690497372151315113763382801466142222226982785147568822593940097137897069105064774419110736348730633540488665529628731904251374934410251284815862681148610468440636161427436595532448426274796062937371792441302158790998149780682256575937775226388996013398180642533699073099019701778758566587084130004319130508209487334055936050169853968747998268020256936398929093872467148884080387038751007715629684227721281359244510318972494542876037860618344202564877039622499067965342512515613345855876442287237596697533573254778080804118846318743748651237748404743310615761758258775547939034614257708228699321671336119186394122581951703202793927636822834874863771934939189900983002137345885806385705853600373945814477420662212209889682817190137374609737578568994222902235068743425877520719116943580112236850843467336477143136785761764915540234891686356295292692309528520142972184258784184562604719135890695629635448150037637038479019084839965740898163964504693957261588255232146498837138596515055956303253442141862476262104882550861306127120992884099943213904597928066493302720153461491530377941757245133449911905209148414805230008813355764649359719463930137070137550292348754137649062748326157994384359513182282303736508460950067947269362376000642807349104343867311531684008188709610788950675602394280803672537648920086836425959442216524319972437426878993787021113250035630273954054887696022962563784264364903239571003583614182544446323671869306553240530604385897341054177364577757713501456042154933658197209266933464559871259911508494157971180236434993236637913835482580381471716266373571911199077273328947240790089606338324079180974819419015689454194482653945926155341068793359917903468359327644271319509665108537042924002354534781685815538021813311689188957815575659596073662370393256506048615239771586537526943342460855282948691518268137714766172206570579417688105475791856504131175065936066424999514850295909572402275085037289414974692796921351404611318483815162238960904873960187672659309097718508076271159145428119126106520829766202537318857981521362853535890492430950767509476755570338290658075857895044157855170544427599720938417588096940203880306796162781790887509472377188148814363570916627975811651359132063656787821527567437205972203570438580489224047640551379572359965390602634002544459195322942603657199603449480379652510783806654812465781041555915614238489947419157557470502529333338764954992284353116843651921888544568769398336772202566018759342946418969366606544920315930787578263667443364048582142143602255622078910483843468239310128194389333911969893300878926611956429512035417838825034369017675581783406356900576396434156617214828704776784328029264426936283081713690952178516346243108527882403707370437700682443321597567835845318671780772759808931548388089651107527187719648874258532616462493836096779274419852976300374915210956377536268460328144107041982735150361116908767696194534600322895718825537492499580899330025854598845229142277956131252886640516310620652433490456823569176295117340988747166429155037849535329933617379170489379480599519560483687796904626965279423027991034367452403201512156416130360951066635123569615519223291499097025030332357360573035158227642101434318906213140141645234867274408971834807257963400535397243886050845937985706907223234848531668911506282898059639675597544124418498631315219981316412666325455235099832558567659451636345650962035705529690452738493688657580264814978978301530904854670421242718744510437303719513101262974841633495473806427581096332031944758929571261840997202234838894641109905536500501212361733639409991666429581748949388969058806868768125359231461063984733655149698353049627171327310410180601545636472690768362761817529518728452981637214524676341902610140198789658923311092475597148470985826763926488463931860320601337561783806932413044765584639914368391570004429800567225225229745316432030260898459673210009068471359275027078731126929559215656099144395573924160892879836880944652491303550921188648987411875771004451065147808193911742204379140570657861270715465093021906897726261824999406117618894859378694249510093470134195883260180698611323899501697820179425808585117129687355475963526129844705280626532806381832252911489875897683982780161539906984559686486461802482625600264325917023216583345397289959409260894859536885192108771477776858959235262421300673940934337872999980716761936675457808438211589179991474110025501379739988897850621177087622578536092632028895520551091423142045659150939016446273391202523164564155936287788414881148549813331115150139769432929035378263575167951948418458923286872729557034278314140209736095403100304606086307935327623621414518787038274444602323908958589035892704828575709226104799359375626867306645400087725605849025074488059246058552585228358915075286162852921177542564357718511287375883385283929773557207276064857054686042721623922692803567774951721136548921610288102186946743338854099796580342482160176487902466465420484351114733721532250990898931300109890225290767524411091311974811842466824835014505640117920658375442636157803546043051964944340158851072628401630224864360131706878866233794773843338912015790097953317759372865968243034925179686475957815396809770518070518421559192643186689285716801348774504427169590509791707917578761127955050343055867326822152005297835471064156197234495266231819433718789058944569098082148698250309681610941196710511814840799546926969349596445271991070885261326360883600570155786791632101318449425948254207179637954601405986766302672418298306827943782421001245276829182919905393307874891723467448025118304985692766627068350462376378817664850290222562673754524756805082047117295078051161360187335927329823946369263211463578771962582766286755552246677022949174521932354307907534503239140999838685496256042811909886426679036835112621329194913772382486223965851644673492844971197284691225777214063527195384325730770556975557263799101745933644934039143682315921701753853696429587619883263615884421549302597690511847483108904397022858217463161907214336621633370541646957673919665765112398124941681945459770899096852864947053037621172048426981424586863399413025240415837482869365942624246778802670654176829640810543034403727654083976772497060935389873527694353542718392622104794481975990702601176911103387659101481407633453243806098955972394979055688601866512116183096538623572479995437591211502332106211812156373062894681192726928141153016287837835838336971308830031226636911643039559063303017477473253906369253531983504540779161222179791103709952582221108351136990088382808567133903951892430610763704531781985120443081473308225167150514919025800258633759379920957342873969507178794558624311590206710400234735608642890904386480563859318699822377258762837098563698551924896315734197271893358652773067818776273107352946644626243862265799940909350339533552802187961334928005737549061584114121392275671386718906963773575708012090477861658304229460493790005540198565401421843135764696621916428000582678967367387810722371553216130712907263433335605832997370878195798889081063064970420359105973779311397678606070314475860267869737442912403802780891873827652211322623836926063221076721590962665922251474223516874949496435977987539415000187848101659595303046729098161168999694211772399706335631373512217862270305852634947734809955502433148428941564871728143925072078716051751767204063740027830389503839314691125606487315434972535265061564691132446062879607313077606397950717703346545251449798296177762490743804194864437288806465510026353180558647796356885043189252347518051420344694410955748912015274384067693548466155420637156412244288549858742506823609314870036520032289861238674931972755404828744555454943143096076628327406892594265768818387602206172822787393896975102647225340063225547589286032994612245278034874871417446593217174251886922446801742784189439554722160597753163559920396519946699440269027721883160619501097033376144385101167404760114360962055838083419007201036848560185371874758580995501165688210791892641090858948904010097742469432475553675907991155648030663003652150468835327075471987452877982536973623978564867738145456615129015343975714003315934069400928183037534874073182693207784655471147480996604666454580579223809206115075469523833865669831001660961793126713033744792217213908270060485082977312713426499631932109218597692534398486173009776508294195804936797175005823569390008646790924341828256359623007817483413002540663655791919653156521085182174239912507082659504373654125913175787059423104516975562790352741661427367688852504144085796672092304935461034494260183582267469972196151785511109395089941923150514426879260746544761019467308279251468326225141483225807434787541093983887097381936142474514700530994757531675966734845177129320154761758992476893910515830862448997946432946425627178512339020603707499764494653331229084284140326716751877720340572145086311204845704737770439161217167518557086052102192391138388489215197832588497462903045484102934665162816051075091050979919597101668341620746848681947818239712883704934892255252875184993149520424130854212758034348129345484750636405680838453669365286022960055599834517445394400490277065652872809822958578018962750942936737192878110109669027754975091213536059468453574064036852744410354436776992246921185636417783026467458394731027157785529655639710298228083164693563847229085736917116392432583004560685911266291651852203484589619127123202678957359679861189381820105287419240659975919052110741248324768156953433828281297498270125489589350772895981786477791298016663193581159809491387442951504529586621492907842633624021366119145973042525787255798869624579957505763660643125390205883455339689432815198283044016278194965137236146794883952966935924733327415267116701603787044091685053339794850267963069895826444477499231857658313360505880435858720893104998943882254813271320466132496914149655530696071646571900444673916266384954047349601377317304597205543753500939743755754113579208354237587575030005629651720185260059303379344664971310544727819315734816009058670561655464985368897514776769032937078859623260075967117331648437514345675243735900426594739585828848596702846155274233289654728852713249581014798312278063929416463773219845009918675605960616586846062085836285421178141632555994291194582400756684768626665584172104498573408879486708561734818439428100828398757865640582127037635243627509375597230256303069224353457533676084168216434498535756510059603823071786087952729251930875058648916027047032405397358739335186809493083370781539483826231530298880239081924624164135883654169106406084795969743534647410845488937253695008970324237770180700216721796992081538389626533034108793849752564046489936138021016476123745386943907450762013619419121561192575113671883314005216284033330681049368565511608952942399149514228331015452356845200665457873466201258256681588434494872576628294689942999226617828596735805971724364533117552353351669238086802212778209911595565590736281935224821992380124677577265021374863490104042625411854627437051784874946484556615199421301975403408840930255322693079529340274406057379388832894085747445299506879757151831185371235858308377377845396600330282660077565884213074087901549730883177811582371611144509930652935546441580146771731596838819179939064007698845633908897843093426250640456419208616086237342746837771166254695234637006228439800173355592444937203468191631431797214192353809603756535450553345887520590279950095862662596580677069049111360142884678489479309916092795736052564626067894116816640243878778545162656516007353303549326696396348043812509022752865566428163858248061283644833549029353819376639051714048608250090398372250657897129919619791426566268880888772499685903837012426868283571920657695634279302679568365804805817064860579866990705986747770077128306627501424436195130192529856374959894837533689796671884639802026756391478474888221742948011520589133081641669686482638690415031291266464319378975288162697679519601734157178210477683504971809008124300837667188396912168384480399460343109053613234975074329939835156004917744046445988497618227418896140524625735040749318713980917777823377710603255861764179668143208068619315616338486003589658708193868682025943379707009245034501761207011418594768273830672805617419129220978127563847864771434058755353460724402263410759732641354107948872700108779929762872004840390496544972019659442535948676486541030398608698893077656744391060701256529437225123979264276053073611952215299756645077708439817155653654140059592559569816395347928200047117233891319721407226695546613456309281875314300143355671372640845089573042318353777169087127503391679523236177391757512007972848906612796796513747873208607505802868227108918618739189012074403205226091969769559925913942814793537365714263646808904203058328960300060362134648225094185055999615474186592269235670949535279712862724312651720528608374185042619162994924892502484158837878503268040966115326130883582794731922801342907125475070806840993837247274906966071986277903494475408034033842931697479141205924296984563593152518645616260372330331318034186192919232302297896180497732555289353183261321005488524120855661094805696751170539647786644539828802069122205681110355170882822317693959939815321892078910175455443599469353731656522858709574150946598951659360891985396787709483264993828805848125595991204769334152315466565249416671918582476411174490580569513316760229715939725551997765197255580100631801430703434777475373991569023983385215345525576125355607950817197927691979216386841779904967029110004876402493869600761783227080791362753739377897236303804925136949978880727206481920183549042617815209515311816155847329137022207575939288510230762432756599303980426522326922677699518935266422595012827645370417569899518162076266249916085759061575385680591716262654266198769762004621518186547026092837634566698589623754801923883435034999960468910410471034776334765875477371521585749377091530391762107407244285098408896260533851876719756347968597964650547783030016921844232767406752975747915424464618192914836280583073185671168470073170582015477636419478585435932750293029002009100306491460733818744230629482070428283608738817151075812388054947798507634687947367599041704454446089988733499944557672067922160260972493236296719369769792038760057823114620073732503811002713543784068443770291040648114959513508962585539157695006168159183410367304939732693261279025789076566048549042130593284050499348997412598435348496642308658573167839333968410741318830611798877263365101876965007424669704401760270205916964431635807221159092762893951059453780287540301921171203553575095243786457179157999230592315841966214231164696158413136418094807378301317732085918195273711499083060157273838731171791313895425139602742216833105935484378704767345923615966825174589224044355481515206586133465004441145099304492671734786859092322796079686338297978571651517247941403322257906014190563583317990920663665927899427240964655502062695047064812317167594526585551432087363578919329178119000081368546771289019126219449579201247580834619300119757448194399241004421741419046959038629298606448351728877482689589537131145216365679665918224053796207356244849645780104307558048012613822369355939135297263570258373380309702496523700370310850733091534292580781023173219841271626428058464791814298911101166708136581472113113969351639077869050866982958949970797238289003196006253363961108046821907867096835396302153320761230129984266819275135181265968593682964277200446010882328960965682429505705390199901053627303066279087125954856725041276265727297809014636795448846072052361849229482648477861121604569789669666573991477695985284436053868041667220070069810833914690081661880184246414857635664438081324819085732316105185650687560089610072047964412644726699327225581760251832551784955288172491202048509372218893330189374429290974679882632319533750468172184701303236700509324719398536536572469519440232899066224920288255135451592680077340595359521453711478706728134620344963237627010327835508180884388148000789837661293228301060246731870000284033595248771357494315393890560507512228834391266752460857527999475208396269284922512151280795531328601020241190814889987516639895871017687138018228510959010219110951807909216844582410129876149739647033666455597811955633468289383418072509197186630520624768139087462733099269797823086538168835795551844502795185867178251413082601241234862513362522248411730333700908850808115606647704066751860303860053970379767398451587215430465687460832596889502541564332318354557310551710558825336511461352477553180927383075015615553357589959823832172250597736398735717176744374273919239223622005515766943813292682943638894844158706388978373811567840308922848732288657189262073917764181786117774806420124028447246268348187405827187956592839900796234579408043181599895870587036715939234302552028466451628730315471133677040760072361951491719667115741685766992139070351906577311825450989990240273058076428242878174302408468938581409674992164913508210387005394717137498124662346930936776078464121156628412864197482009600122854992304073809373387986950277396768744468914309382264662151832376504257124405326817005445494445056152689581320084919218233513514483061926876656002512776219547186424767712334828657698864327683704654847718002995432251112939948052628394197138898307138263650544907890164641384093987788989745591052833423816472412151871915852048903174081663858360314892907419405004251261818378030910995836006368149590158147833640605497019210658701040152603203497629923304259731757327984833148207438145614078860641488301932747336604813178303628766561931359462853996046694091533033075112980183988291118644599371704487299753519653101391801947264220205001044533823647174113233889785434335181695246322962256901582191785319116209903193782310680423929710425722478653545307468597527250334460780654934020517893213943865695111875347423865224340959264482739271969362184385267038358353996957304711114881023072675815387109857063507771543644305945474268886064397510963671284710020913170325188486067803032756714730109415206107739066706801514578221733099398381837163403866157108753798308666233993553167216427689130689749292767149707410340314545015493551673764695833070673285953205321508558190077025684515184989151960932845624265386418746331675610737536401850026197864941074181572975862789314469309562737027285364020400199765773442551973206534078205618510396503331143072714886820530495221640232915699981179697654200249398250321572319539507884684986126308801318360127894326456501979388910448699805925791392091348492697744772374182360948455896673518542667851801436807969450015112179516910974090949400318774214206816877621726507108035999205477075014131200260619769464173760816697570991167223477806357503913197356361307396116708969842036059072380175221810574733523140009800670813804046142952209728385827408094495270093436765666134800167087225727836422558107482861611654606511757467023508895851667718509664901092592297337630529420832906129415647310522213338653354616773643300503201808993917282059253567229704076076941761394563694838558950491668416889658505742612787710910471889031797450529025979936421840961462523610679938155881199386564898704496304416018814559792801490108820308688984318040577807169013347417169734268464201747965029384174994427254865002889362283377877744595079052771611528751625612851870863499380024389943873489107860481538934944827862834035452348324772266069625058939696778970633801910169278959526906097622699989882682901756270856566907574779057775638428335087736375623505004834818208045563298279952771182136712353061524267844096366717250027990247461010594096845332386450680577152465002600142000759836919016925930881882003286863529230109662367313799647788842412477518156001056164972432460632225724196176926241017746286119428724013561974279308285773143287495701280086293068737924820851732078845540628350364911452842913778078899543427873884168532305029880948623690852376144853565119966246102543779316389146650914866012990112279339133072884797923252667871460730942449169534850804856722622989446189640687124043450109469572565157146022434714762248487300342823133548058627956666454942831821321318145369632642120254620973860906457197858757222315945210250570973338737592666870907983551797069913035456409982543949744477641940485615159323933484408817117952878467194538437403501571832344056725285091876075670873399294181065730917480567846125306533121886284946287331803207228716004025477860396990498680866416184371711068692111476420792553719462632663751247731133102937763401387127839483434370515763407369208770127775267195898569423404855403879267734781639648006488952459518729210973560837042691801487943099849056029972364163272568998193578446558957616512838354338258631572054703640031163842940531761726962614201796517960741359171078455937059246375353750647679863397974381085860037530311874146351183411875289755275371131376584471573871266284860187041036071993953236869977962239881458102302746795542250179660277899434161484752927156475105417418740981347902427729067977261149525026809763288267819947605154787569459051404919561048016802572244674652835154969228595029643094136342207777850805469567765816046465013602580379428739253728205038675033458913833664035606424812513458064651145714356297091352776190898924090290120645627339667928411640681508414858750803854256578149097183866205873898125910648080641047087529478994940283493505938658872267784609954327878915546499446712478763746299243272670074218649885085160310584915352285834375025066193735626459450854961163616830101816127217268697587091568466145644200937769942271890924596100749169627682553134458875294979512991112076412420140958832703156852156361658648266280449898960193858705275009643916775066030175211463925487897708728333925648328921627749765277857475595291087199485322921809103100932360410696831737134841915103119290691113576687574596009819839364523541321676048532327073599177809858034938122508402449128991062710259393437895750496100221956842584639102533172860135302796429591189244924486274908154291601746212291621500545241521156577526104021572205433167049763655715223178327441368774230932736386594207562773634076251271760269955645562030155613990933532862025549781436062899865582103099832694831115396301609815045560114842241182378025075568159344651058959063342321097095632768723305030755480635802573337531936667277327487628031769655068918017202217683640977880268210643214523718292337848433169067717240462728557987244430222964578143536261300386930178276305019790722408765153075964225515044996854119147317257512232259523520278586916002919440686887422487997749437746256672818864780555856457972048551162254276493028024905550298929070219978889145321986132700249638338597242585695087863589980820430317906395222360379243817343440557061737251469764536491452350373417912593180920403005956328111136850549165732014369223658875238069008039885498884666388900963592044811228283568879741346955628936320843303991466421978886429774111849677335509344398232383499830526444871331806220163794004329174326429142712437188205827236619785322843170535288830416072936852471537894608455143399560431322379412052443323891747862028477274499506592753991948949401851642051997158202304831316559584514537385358052973125347727698074645260622739116602656091248156937049825202662029272417988124560947633169375277779552667015528988093307333501754188918817577839278537046767528484963985808025379303902083952162929257946582773273924952644726080399975215003933999131562742423092386409387202129420695074549734962504040767422619055271678740624595605200323155037899708145170520880427484491968046846491551052535197886954915325070386619990271490182268682539475477753940079790147329227083557781688372124714621234176201324316312198796050885034046178240382574936954342906624749339325288311502535182210764775063898973612602919411085346127692660545173574554385538881152746616354773746560687793868581793976710589570475982466105822079841309896076869279195096474350017850778740324742051153463401704768970662682828349351702772202569989512786005845751066613598542217252325532110573565201690769305799928337083692322920800762499011361225702606241013393750516524190488091914720750465268256685016622931965568701890485541231060505540960257453994857077826183718802553955233192676508426282817911263414451396029219959923373188817992202935399207374863724774041000396918001715979390764735832508764790085047710446200477022303389297971186439513298584896990873324934314872434996664083609199206634281117231796548126154112075971803994466160387056635456406356701136042597896846098462654571411734411250710952271926696926527301921695926727320196117280063315124253530890760216005109757852066956353778642211460632194683752162507132443380554475712749907729220289786061719142213903776823360417819396427721059347067109697531143030163567688739704847471368005142178769470608265674985005489678356160573534383789501410948251919641195890978267292702413617404480733591893047334949591994370533933675910802349341229779470330878931005674923188247600561057487974529575440377411943065103850307638273139957819663451486379935540136769238514259038640449536278263187632401050046634019631341584581775897084878272020397272921907379485761217700096821013963715546581171472091806631734240852244983722783879424490377953942141879709489092011856989455315955363789269815691830742875804624552371281477705752448021578589630943076908326411156206520541856405636152827466272568453058550461046004079684076628096902727005589500933613045712255472330112948421929846070269471743546503201007055403883892376094407998019081999885560594771619532576061480562788061826187861760430054877950931978632204726531853955429537243660511965421137056296965757908140170512784230616041298500191254063762158507082573569231290079919815820957464965475635946651900812312423092345786460847323598674308615059631623913360079785495687577135772863734634607429320962670583150513096272073659016302830588737017098036810813117802256360226230462190083078550949672764900137952449036802737067577718700182609294483097730856721502108977675567749105313293420943684720883156147966706017041116719274467781206778460895821641929915536185882846513035101415602418453829718562296575096408486355279156133444464803706070294250359847620649574108420501122357564005830144092571693314462220306535264823972947132982378239642714020294570368561226563321687167597435237536534432961916991540430843006526066795656641691305982655992941405435969176803305393447763647788169209818634665457394711067970127730135852653218793076833129201700499332396924253918906211570166075643594842868421619714374155854206385290468581467386861475747703925449564625704388204347615152794636110449610009254142519600895408540542990394379306251395472089149660485391633623831320985446586048744446583660631298273628824242419899821663642449651255353583638308348672413322041922133034960294624318646172334961465562102241122071783726449919344066715461514315806577597305673107575242324548147204292907616447944607089959652237960932073552338391426079657584161935210004544897511301605019498936016619629467571116098925181059159097526442787266101960914006618768987562786945526904774243317107832915996196157916271532091679078531551453832219362941604416468386488581489484717423290694082754915767956998826527543777678078205961060383790810719579188517553735476934304488021986849692767937285700142886035230215047571681731163702631620180063437829745973275758490828445665977492609373211109664307732831988496170071661271391201983403960431113539098276540740493646357577432984722491071673602588525781920597609924174197916450444541450381433257628551133908454328185864809285480644032698066814938242397817900658763843993574583141081885343983314193438691180056816926396716705255422513793203326320413574665424180715845670281276339320216765449287162536880894356510925513971313856821336931732065282979642680076049500954447056643148958032980694904530619162618423159916158011158452266919847143647593459919727299772876306201003814200950816148472779553251471963869794554299870165020264546741954482644036785326432842644832570636105250479569053118649515297753689224398291109188382268041929096600485741677767698064718555325211931210410831318946282201260945703787768394005852696798527033285566183497391798254911355583035911108500323813414841268727343002481463943324497058324895142176874846570993230197488159585759446499113224945410368860717115326173794953434060989006596266695647275816521438071495571288112920180005204928031416958439913689618764372882964323681547783276513398073026490289178454965309158442090240937107658069689027359364988990933577062967834359573797625225533430729461950687572378042684171320554925500691707961131088894472734871945016384968939487640286207688074285282753263873119207052367341484584348853863192663021738902375371961633332077030212769665997280214860468619963145105919514665392453095765595628790469863935492487827789866660780536569600596803384270190566310697075115152024498030105134412248392404774783840471386831271681615320058340330686830908828392548447478921184984403883365600378856234934725099818832164387553330051920287642952609913908784672590844739054766729974061098951608482631211117985867265762585715524409882539309182072237630922598135920513402269781635479265461515044676260858848499438490649469630515302036276723551522508495840473997238700026629607832670973362561976939985316191714422525302857839731422773321632218296796695106273146525398784002478546119034706871747672576698272579568578095489291028676768986915022481646218168071120684522333342580700332240331088814056570315736262964954594816851083372399530655452122988488790416721971600355008249033045243009321196943516464975385403251342457985187049248379528712554603567053526207917994989906049301261921531707318328569980312493312045456786704265463272352078760814059531898441893629770009562656595921675543103060631407376573340467557840017852891603464644326066939637850890592778706799730320587584502754344929760050432675003452639083602325598547233953185227750500261099317156722022556978206111104302197618009200704594432340005443596732329497447897919841833715982445416176709672721182114025698948604563697552137135033164545603196912006594320032525512865516391273921581314585025135526169814406967244676674693526543244951990621253159043508597906899451782642340195561095249350625435572120406251604435084022566831598389283057694517366992069461786417642803131469184189468345843763406735276028546093156088386843752979972008207436457912956886660672398730243326695376470895121612548218967494241719672596856364587060796579756282119077921839225954281292567363284404047857088830355837446685967270477982962249524005401252442505530853833549980361618368420647584256041366624014800729659508002383241447330965406696758007891148004285309179960747721989290478559955794871098054890842573031845165512567147140278661739941436829234532425776804200879685820966419794844037745179890952281496075715689127939259647042774101270259275912189321697328938496609317853828967750023931996412409007012255629986709266003893744885650502716392984648365102282723389065352381860088610436005789561874872683170898135903811838101340359234831901936424206081084156964180189633567708887668821422101438017598611529501765600227256558321992237499920625714172982158532943594378261119914987299373613652775715341440029705845760939744732317291992118172220817029889752596522039489136956077163410381245547026533686317201597399797736315413934918871588369855742747408480442933066198871201067242893196580146583945574364380357150957439151764830151487634728190268239049381369869048608980201986859542157241363174326021249335520636901935122294312307796602894599492601230457899947509235264645648592104216545809522957692946711782201369483547672330155032693560638619939483900279218919679999355898604031020127876939685511739345155619962162318828124762446912416240954332523126107430207419968014505337193033615413622961903479897251522959857375481798964305998650861638159273075781660443473466773403776568710398137887487339868424386038883757292794322478914946787123248792113135364655778613721421963746792038322547737307048679969018793348489510213849505478072605706457997749968932383680687615311151137653599389138325688785498539582855365858278458237657641245451990648177937625058227012702920377285247633838540226050404612383407650276571480498057296642486749994672708451491243009146155488462101531907547941067233093885639549304423641286905809412453341848425935210333486041324068152051017575407688158248796353567042452056631793585395497800523861206817994981001982689930182397962355422928917188788390720403286820208478797125673079862861519364464410958631606121781754947230078146058537896137224153122048002924199612245663643425030022590863228932175774874802420096102662202219288937440787498186212894548813384342987287487651914115406155052334996246270725311797705725859653882515828177674317624932923023691755761302662265903766617036571928964667368022456038005458822946913116571505466862858992814401179796286853333270505763686421229088418847076452874243427680456165033631368848066998598412212823787756787046979329447929216837405546793450165445215591901945142592155443536904130255208495442809636503827304307703310427714973782205278660436376667737329036904630553501103818556349094163427633806429718676447677917957054768962215830963022026815574759219953960484247792310950234213409520299249150429303383007565868067969670699361261859743557918655253400814095468445100814304757270536176086013361053058892954210810066258815650603220884797323750403238647727055845036603846122180993618440293641134423739042500847593363432670909482573738058416289570528702017408253509405909667211689518524929015129188347962333422362081843313458699227136485111213702080668951467120979276625505614903786216890339089084976951258527611241304043454091252837910693498293052257818280145244976773962742014166302698105697250387990375342816016785013616421560318421741124773218421454273905849000556792575387923136899596854608470371269224507222722678536349398876796783754364876376107987949451943928537022591387673415711690558906273800106596174027302438331256637971736398950189265510210354445878656337998822899892516208346252217840145806894185166787949950543900479171808992573944099228576981842109910469797149582805503451976707390902659693597049291110528086383173167781570465323355639041950068465900404522026254714483154956880126565339318169791250966448424387951890439269492384056146155257628873942776723323521863334061793110518902970913896312384968553010679296251606508070401445016644535891808576245093226389891858285436178451600941657152625040463110865983787555429338769989508450594251265231722082630141678045311942479939406293448764548576553935261397441831367199162477785340261023475785813945604695072873232158612752248971633980063363254622586300407219709461067861270916977781291578147710828392129171016720135770960632305747406825979761899159695287478320084170765631960148391770305725289555586853527246763073061268398422816454480179704659784544896230414791911173626996408058523454741404944761245010520055282673604842258245785965379747358686660997559448980710622540454624048400221768605659677754843357438038148975760816033752753870364065741717172048038188131549197980323441180805881516447908270589275737005217085540675503449684343495552776213850380236849689659168035285632158538256069296056822622395932834065445356806881838460557039531534901334223865035613597343608578355148995304042563598139578501956990896260484146496614848327394372339496973050878581060864153375295646123139169741483796389056189302654253169321344233899050936924999586404721894856287480141200978027734182676152280272659550318414361585095466522189135549263049562606344577899245989211388981509852464064428607198302153781778498370505021319697466213334924920655295238413478074739502931256921583314158264077176971285148724880706649381451369214152204896656089022897292832555643444036096180117505402089853345698326836028818529467171426552255267122364293891236673745725516847620356445381875307885943312362442887082776495674967026467981845312438155469803016424860780428833193109868759376767700184924348312765135696954127584049935847781467827891699397414129450595061091865490889101081539172947804171976908896605720119705510989853138926657012704650567461291293684718544783710658082619151498796742467463597119321130758668340270392072527599922529219393562035295944417972729938540818544576396233217997505165999817041503580761208176275899173299883858176586165383463814689073197103672344025067565207682940288937826792655430082072839185003318428260096075532692538562097408396193724383497241885463307526342266418760022119841295923540505808122172267034955874629093290691014036490941832118126676229379710695085560157890020001457671623729393385781385866025868975045757402177913610110587277339958686826560917085708515274561504432908328842217284502132152337621106387557445941354963836422871650903502818768667423357770293945162510459632803368490998821803590674012833863718125833289024821816023706175901009688883319297932234323736339249670518701542939020956288257254608107817883829984839237652790238110681980962577559490782511535775919813875716080872746107413942775736445588083571837172596583139612148727515258165874229180861317501483543087662069408835873406368108179205708484272630411709733456331509214065612558765466402142991032280491243487707141176323801597179938721793854824619722117288684132706797934137432131954129614617831007118467292799589369322504214783384701478380771998774919173596650569354203560462162662595427562807389803529826943972405610498934430578549505152548248375327067159919105493773038616818116436567375988039729196383029660866001107395782192396082206607806992931746304333140997981088690970269689605903571669224352022831632102843459006337611820141606968284409865676116992939539398274419744716632266468717607936859286589418446557597696966849846351775578034225026764946838243518939933228621190959535022915876016705139088911996095350960239693435882751612834244227313652373726313121263312468112960280245905578422306230452054803151801806308994714163025034598890693037210782171927665969490438650110731209387212754245695454472489255514807553258489039917814725127285027315983503155434712305596816978039524644576510471747200575700694359735331680632996629074870705784101830153112551768378163731987115571364058216825360408489057910074752811442452577627060653128017749562896012053475174596536487059514969234616546067290076937078628369226983833275912938591587323363798693247318303567457831864022513439046846516070851317566450074703866684660888963836807251272280115518175295329512443132258245582078531163367087466041182334524870932788346549901199627366686382403727823630189175913696412006534421549135512966472502689527376709443271474775364663250887143356252877166229220094383689953653471951375588639668789006734982576071998540528303302755515092291015023009824631767630186253846428972050101153606919788576184603409176816407493878709672767415955903458594888305186032403380458523143763473218115961881086722949762318774905007557256760040561865679543474865218443387063215669558712902501874710436740013793115495536381587669328843470704866967077560562560866563307873096557285192230833677853288591875397148281999940286517670195368587655627486223003457305485798848520367815673278304080574461986507708830697181348049076925930312558733464644428957590714357835613453552976216223991498085554488255718708126446100690698694948852359702941875547548756464406246589081648121160759235690726798811761838391740247442828770148843379200489829905816759207366204045818734039410910694300670542601092526354465537523784788859923794349090475398580551379325652162124691072327601118848464297255711654298206458560039408877819854215155894715817401623245633536822084246465738467464693623544561230565461315891426838357868189179418789131970364439981871918483494405393684001329794991405094353667696255194694620491574565751601634057953277478211774730917931329531738594664482893222264712235053768472114046940130454354110591731926204514155114424110225750087298193898600189572385228583621789888279336693965487673869561245717878708458888371191736312465368589098589164847705306155894018287469002604400004074855070394067365133477899210636049912788082601365963595421289855433722965981238273256910557643676114184046684154187440806270275186091603131440044680980109974089873593552408287392894476237692497452649469313728045617796704657816704226869516167704939750496599689852150461857219002657672829104934248917827626562353366706740116217506747099529683568212898839054922216866051075903679871473555841263692735934846859400804501666785297003039405305680138081983094347316564588904533193664774338148666769287718846073871046917894637902606044305826763276102363535745360340636729005783387502764084827333462645775810488668415250147608231798117659652865908060734487994623212681510920804682316660399025461499797162087498541092174926022408978451735793290202895778408738106110597399613048255253347922106662974646029618788793941613084476091563332883195091432119203661313385478400666757990237139133216075207286271157774125634150030739173124596493349573291964467909401088190900762233135746098097534031287736658055205536879125224600651516168643980542940289496683455768347799252285972951644344846783862581512432574731264408487353338809380218761767272430304354421344754770198049542877728071566769058463504269943315368937114771687622735912668983086191062272170798077015218281791301502832638817248707708022775262390297790882084871957432783836303718895716804720088688367664279455960925344441553962038652113304570259464191061103800069589156047489521541279273757570607703533238073838163913985259709219988603268803257943656174563234540050589285166997355441348499671865269027033479455155950252153295298730983716218854649510506215933833553864212998555553800517178375856975655148981480553014565471911260507057977983031656784345519100278353854150496826526640128843448254544544226732068034346992296092203455763339246475090751674847350540556745142093941073602641991554799461143316977568901154439920035984987349090593603011038067309388208878090871756697051161269283889763304330054297437971115082558662203554482017737790867156103013688602070496763651855062667922578641314841076555748397326599666353104495294199553923915554028740410972624703468425406323207977742955192756718802392384013926711206850034450693063303963985426645866624006688766280809689838023844389422955620005165511193974042634058414496020457334600173794016787384794895127121355742230538269951328706756432100616722550836828639806673191948831429838417693091329849343316472122580551112193928806473765496957358480040060672598391707099900356924645466659927148391071204833839596044481344230897810946667209906121319361030129427956308509694997274596577047367348805107044746463507978209457035134617417140415706900563932245217881960313196174116183844730768519417381159660626953168867054415286416483756913101823263424698835508847254185871162189325862530303334950247664003632445340281974389039614160538185443055822515349774032613788804003613180320756855166716072415133175441710930250758220869983594810969214047801598713619542366557842380545327242167053472264913673958427431917410879279340966164305443677182430704874460444567562550518467719347605293772875098055082149829888365241073109840472172915744140009225880485356154004079991651222875607934738032300548148626700090294672377680311594660702873545242537217097310953451896074127229152185499221345883528852003552150284939756559625827388335771714380012151698192532665100409378358370650113867714942887444206065282383977840457632102741977108587866068287940892903270529333484126598313698171820372576065739394826626943768597083590702538043186542578866219832975366032255459548021273465092437316994235958829742611814736524112672208071728842969975080788122138034683644336466868793954852906110520747297954970551139633676186136534193608504642382952071295618177643009645066484492304668573049538187597655632286164125334082923562073754335703671051011499661134863959045004336056802562587353369667346147690542963888413345904694907506692587553442007451737834826046745484126144697813734093914794198578341171303067656096304269343873366929329372732856938434447463540270961751056946931004605416098875153829223110922774229216552153244399705876981439856627528016564586739000589579973277392386590712727598361624852311023698929790504702500709398974083666389188691898966080781246698002231729992601734643994169534997733119208213591590586518040925158433646517207433228895593456974838011647096116533472047778982520767413519587814374609712882499422603087320909641362933493119530828308188278882404016079902163488863121764189357246711051436870392749881558411064628184870605998112870378693805728918418383283015655308980416389534113331491661365101032138499292691820378533255688442437216558523565758496549584322493016800488964828821378304060556221287581674826154196575584158457522616895110162210558588207035583611270846796600323664982098003992095141877849532927684802161406893477814149007852480299187750500712758113876665209116671472051947434767411530104547706324698089544419126246191941510906777219436564321473733059240157117972497768679949954598990767861991456096364189118204403571609217573874692695908076076266848656679391608567956934152620771262754279277066229839551178769832441170041282423444443485537766221362710777999289157198987167434427838261007833511857674455207322086971858784390150897304861564177882333018789175172925004337722572533069807584609165656151303442668120731020986952924867941115311012037923273034535639242014502917078190885227311296768087755171387803732228911195944753788112322655304337334733686370973138447616846224924816838795626598985727162102505456705160335921842243101717767320821869590185167156973671457535271629869330764514609471855309072092450898059592179946032272980293119222240019789639530044947087533748840042777623254103125740138819171753670414110760903606898665904525672506677139602882723853710450656644838480273685914671277738213201017440248780939154425748121351521242049759398786956307469209224195056354716098268599742763043419134102998694680859718439627822888939292874442550621911404310625067830995736582583725605267966179326925985495982846286945977178000675148074866312384276650550156195234533609310491257993257906119969409000270156570600940254125739172843669498260057476362492525456933662128008902600688120785234105071901037489157789320671553990211817676161432598782661459877705085602812104803951234746666290435133546068535764650497601073536836040787393574424856591170387467408489487440620134227425089258468683497284232482978580798771507843346282111337799249944280079760231838735265678468378974971221524183098726909109285450975122350038568679837581093284687712739889092380285503487499978414863243328671211921224207553551478791998609415355437890044683592786132395074243917322851955972269442851386271499701817400470909976240267596644784199989138558662855659224121624712438035314023902841630552666130806211712807376447228100965810610625713444546290176256989711371762765442945156735989998861587814875179111656571896699887232632040048551868038007992998772569677772951809595035396221060507763812420396801201326460409518396282252900136828972412167181448560449807874969745813106566657107860405159651296722152757032051381366109193016050455826906575553409817897430121918953676072362912599054111648229625323398507607282720771164200036284633134340639045494986807396762945172698362179706242378521936489111262357341129521469260068905466671678365840994075477669789620718701069951190780042684156912789031684171340977295825858799768202101630734671647099243710314853991224761098943733736566893143109769979773454880216070388582061226620276697212756059807255214846070990833033337857405049758715609548078613451867561047810431218479452142651597698253369356572389429957541933452682607026101521606081995103511648347662691759021611307340000483932786974947519266130439343427288435685468782422969457651718487797155157882566016393683159656230454863702686484379716420720465135690147146119233497368864663207815916280885909271371998312190315461190921634974915390498467227977856302205632043821295112267565830531652642753676739202339561678420358016330334058009647429492763157860289578245593645158802669214706830780902446177847332068388264893141221389401301961346800065516039357724698573949068060748195711716151522135928191212643770448334970324280529955742298287437602548367510711456993371841666991525994893067668950986889141767113746532348591251905287012056648085537915886322276468551667849192564369935509409836191309804636070799279700643411197842710743061212418278817089649765119294776238742903850656106786746967585894010849987868372960027944828581276957867852387261376912861232124917872181129183151066786206047888355891861330180883609935436860098215613247752224234783388369279413981389367876144040591066866918242057414115705384960092976211371900992183812211096234500563508877228379900642674449303255177468802538564528564883115452480974158520269260861191106615174416758564104832487456896083713015257019461826217633099417997502941375831374345658509007277524876427113278467703137353138275514336015235879555909803159358589872735583559487584962816987225273392595583813128494147175723154242973525055716760632977510293998425026488087182899164296338931991024537819889852790448500381147651867835496599717111303889913743560743585311946593444423505033960882551690168021703984419341216896442458550155465751995377090199729249483976847952239309863259469967369832782330884541592559049762760247256748047531320014434817860655722741135883677164737991541583423475536122779903287594145536851781353688937761083814380005200670582973689028587264123549893430685162587169834014843029998320778823852830087711986000510571602901442601740335736720554988454944758823294391706073313300926174115470625282725198337294773396801811267726175009810803873636610482751090031974639430828622111369571308634129284681769383558490637676054997534157600904883785207267791529182791049152647458804379791242613415695406003351038351268322429638327986252545028141910367771090890868414956537737894110445177351579443693826637797183017554764927865289719668549455567432234057899145082651595221455937469600577636430221311057717399237387708225345578086281549883764880818325406515736633261317892138378860134200041476535856959038389869783369255895775185420442026341430517753226686263800142987017705540508137522122394229222217641472534861938253204070410047352408532236162528443649293949128052188002078403879845676705386091314136136533924021677604231109964383609802595983848510043727478459291181157312701824063856539519243674449321301049056030739565873923274568026174856901772535745684699769825041157615631002583285383988590120957204481570113154274722947356906097258320517777878737490716332429664634065813321888237479671892737756641461025835446713114553863794049198212639726433583711572996253888718197107376865151949459194600676663213770770060290456807735960462507327073746399217886064210825073384986582709325250645399194922275883450310000298124227893342928803452920030770676594719500691875853084776692049310860928785493087621959559972413835162599320409892561259808248112804263364900110633313023342885339533354798313139733313405850826563874983544386613596343902116727329347948844250958152723817967861580632374698668129460488818065936039971334861532827972669329934593567473448392497438709964739824046650928824895964117080829978600478259157989178161241584462875180611289016552494514969831182113896661336265766610719017156987864096864359403054598929558942088650061106479091492532164788101666050920167191402090239291634726293748905505803333484784100761652796941438471579654814312618824607189260675032409448519202970769588232852040658570099713310321850753907393611698056075983374527945235821498137402520821695182395836978532059156135581390587760265512575078556911796619308525410265549205183400167425763146855786513722601567762217875429772825189407647052473953481062267301738247736659021550295612714639364884673190810336762118468302149172054759362589756920053174928945321450751655883451788614358102186751336371426831379881767546697204769447116905002430525649001875784270924302269054765753657178398449083210940796019341370216920532612901376121449160548663479278840456192238880979379204384899231227793502785957951364723802182328294794932280863599819303015918149879812324004329569839573952183864045844480474055481324520440951920743571429643790212947276072051129756082313366270273544719030973884066881135363297582853816560395276165614305700618574513556269989405940321041442774961022254596762465675772508522211869494726286148019357963889658467914670827883352454954007056227992123384173486478836115650742985481224424715557336043096594169079639655908380546923620085023472541190271072938723457625434664777219224599629791953747635853674261175980386518209187469340913828202373362837011835236889725448764525010576697267956466964633278492153530124898695214821673196860403661553109819929628554594282104514563581457826939003394862747271700480763170427400958341373062412595718884709982755953564212167619632698251607619433059115061137799841025734341193660139025485545933843623254478299896234269432842997762859684415743714009334024034171323641385460152539000770713771349220657348269369317922984880978127743239975616135367943248625983352951122689348479949171622716545389506803727941534423829992422243367425785758156421494409733474129212085494894188453684938219053557114523748508517077179839351450071820039109111480757422978346655406481936395368749577025371032629515284712014905273384631790221349410343468093685010487353223656701281673143044015141317026886340947990127113029590446145245142082128448979081681207125446728289816165110896564981863333030880608223435013889866491739023225937020292800398077766728101195814360837683640173585060451726233092936659297324675396815207817848524315331951388069600950444897946300174810465953730627279474465129375145231807151513889429181011506284331777598278167663728750403051508218266771936960636558411141651071089047258615753145798394035992487241471139538844232990344451700410587788943226280821866507311996703475496791285305503632661667450297435744275711399099826160977748863515269855756681665559362236907957594346478810613349757487755864065115133062935729210523906639647718342683979246763080982167708098393460293118378441517954742587230850356263676657191668077173689668236358518911015013106512892639925818252801306746592830564454486380524023939373703169507320015122212118585771489410162244306652139521943480189562096080319567120076064711106257050228842821086050201737934108814305385990312116516300269859329723874742831213391259947213266934511027068221923898342256491588461907171326703893226085769089597433103541438033207439436740600098630339144885263122358551024660562373847554135976889840078989848479509919308169285126958455406179738409245846975582435131037611388370127024030130302948576629780323415626420994706752142137268736750195679780211966992036916519778090177686120328273769055194902704304827341661002944609043555877166269581348571094296074542933377436048873289984455045549763806776155136814025419053714652629059190984861695841853305555997466244936485575560610130566112091306399542755045185323647346561717116542537132395958248334849836119573269618014147709111547104325630992115825625263453254509976011877102031724667223891916090175532387605297379802616410042373279976302767430700547155972649153472167713082631479168922713552590081099900735175087141946560469112734641579950786456344787073776601996108617717133068518068523665981735631019454092103912801366096441798950682746793109068742090238529260394760238140999721145164768751511707007599741599052538603459487177056447260981281766560657347412535912592346044686219169243468345529422334315792919492527501472961403750062774638800951562180990818475706662099723165682156576967885171587883748785606769636921113152399904918808414843749039396352166083789110407078149898925877832238490502901874879712714151462231604763544709001792775226180041823313495324771804422012805539601139129834389982590853793890850348047677561943339330193643503849952697397366317441309202553042129464307180570247618508427293609866857239315266507230387561249372572352421723151667845557959946058977987567025214679987533186357996913149516369485023949260018962527065660924568140138320254082192991600273549195466916110749509742391503371981645243989071439579443499472451339402390519954980794243295256819828364909034077262693526337810478823912706063407416769574651969993166132098265099935903843355426327115105612666866827757487938931709159029265071709545373538892063414046696068800031868764568892714962481923921949267114873110266494393945291632849738669746129773634410022076867620239699490529508815080885009405471870704787432414554128522312826165808415560241385714812040795696887845315943099609986012909451171854741963804734414424187231833557491524147951697373135251808992138765793261630244644589821676495651685231363775951111492345405181342160215441631002588942746219292481005418684572314147749751688845981281441879127790590256732322830784116483319869774035331550452595869708022967992884878194713500169025974129693680675162378402133890487421936125821092175602018992256723180825714088813895819672177021772293242284835282894389936437489974549359651754307641876554180284204468008658655660601102594018356215463202960960825360141847880944620428239980697399313535606018841467027161055756333671164507176756256007447229103186115648849532599369118757415082028888566485593250674963546459375844869606088697804226346060614391495619365135529783656209053695281465882221830053768112732004059585024462145848422948264714999181089213383822563518014820753007480194739545206943632454927774513850791077431113780959275025247156952677233167099227983645770954622710310234273161222714599801719161167115170451965277115684837717569305938056462268471843812075056411455983843459722858638021939172518696039260433614279325020245017325564642437263249660853102979394959773929401021135631673131192010631807786894973720078106999547041762112966000984618144737802425233321427214229383117846392563268946264546792793915086637578232361345569660228443705671944862896782440430584946132146544204846630841221114774072872563659983691946742098487928090483408101126451483620141287830051600730305566943300996288084917318656906761210591936706270356952116859905317055109721358438401258813727301141280335684822885428963206724453107580189534564619062003097899912980943690089003523272186300191318203787845412966794946842211414017718049667895096202252123547609814053746207984232194328903846978694626823714920169617544797122850173793722840007265261410217893150305056069234235631177797870080654910189537612144077343216868819994806762868834242958780338491529758633116710820677302268149801658859524430024878604910058411727255778559188780013939191099285766938476665485905435972621103196171572796446625014051131577047844706803718159055374907887126438097942827052227287532824571933117162122983169984259484954601297099921534277359629807243325906283903041844400180938350887062520773275898293148941439857616158944344608139881619122214377059609970023506366755865674916633139181726182297869398069617224364420437933914842456804037258202102495413943618845470218469412881589551942945603834141400717818591122381281789436666263834991426351394756726136796713050450662276959311874545520130051308871604501450636951545373609428447300860086094094189338211066922663145763904041474688018440432510952743003050611844696127697285400724239745333650718192532229140271028797629758458773306491310336964563533781398744654920987766034146740906724130169962952586549042921001172076581443361199990047908807200648284612500373987484434663640624968855682828654897982533756106115187339609569565304768689250723370793147554007332794305761704311050614898615266010640241789995285277548205395555566681845844213558337577668280126339277516041878976663886730123225669151747766453041375737548912948702456763231624876998780807886924562100066159885599546119360322834080900578925690258088979262604730511169117184005810640581872104136500475015448038699248543359264171048710534064655458697059172862314232647272363296522221724088389867644355165685182894749480115648770608636893790054160928015381891656035003776188813633654946149890875661467986630610891568553459839041798526826217828999610701058069510053245206540170949102499797783330788910981681772535158179645315712020363219693283067305195045373480263072333674342021323749393550866754370234948332873881866682371368981146488728982808445202359718981710094207811118293899777210725479760824182313664457237331378147948751198442358233742142082624807867258286850017420940168748446460209715754308281499312444789460042003123660676063104798288309234689721371448417851281075711950136757046130641584897134453402268211973147030813321506182127206042425991038526229920832680821269388335643936921394204264160339953312444738043166402733306456610917366922864633571946494680982723054106551113921509951665380902108162595597509314970974685688384692737699779936871319657827022474056528595280406298082436507267148262923631945907145120747443563742773185580746950728882036906259902255999591070467428457311932484955565228086161332682007085816932317809342567382685893008541844427688159705389792588608918518974030864631589308809229113727340778511228690948088193925690151097107104803659674478611424190625964518679050710031652210597377506566901439251822983746855818841959555873545971872974823595829620715638929418865488288417675224754844607268397054238781689725163793066548197802662614810857535895333083165611580266025764660762406050495388274839125795560186929303586687941038391869029319142645405169466492674640575421849798185752958541460733923571194354301450818145854088851336070392271091397830411614418491034512028626472251236314677092248254399486941653176721730037063598879099179884469994984778029353443996405657166526584458038882425886917650849795131387412813942422319984620579794556503854537835430638277692827877990427907554717293614271347517806570450938778165244688182548538285653654285252277274151018602383206531434565784686222445060517687050428790134217663400095348997852912135867532178753657116283100584440192123828238891012730561289069875727129321290597528182257178261780585439226225733301694299070567781368525955898832910144058619729414204934449155767008746690961563337208992015315576631239060572447556582242016021909119157342254639952847819090289119758286828067910017517329619135583214433024242128818533917745692822271334608180481384190552922494932709458537387484659057013430106171754387720017055239341833859393965613119617082060060086659131597084166462758530069942344906978867238398645498930356265307052946837201281641683905761604950548678997927937013016321861327876279773343610378090463624517686222902787183689854722027234787725380525719003024999124118376950023100949738441773671967830766322180512586741142806676804602368114063842688336533400552829052404723963512572038282930395690316990715353555634246778062933885537803538520711680992787825564805360418152979741247393817843689441091302802368904122201110970889128155127146459417961457808653297453327072395523742195666705833923147094408168734613608092559976508739299972073732318016182797468804131446849315624609779136672962381168143551251302476403533515072516570413082004315963246537896420654654904897279626492531882432028128344858277274044177046182580095504595446890252525991094919932492164319753589134461510201579958205055782937347553923691469530117349415853022073863582480602874626809999724534929378399944852312775977728670465670941649246253217374413995308127053195126222858671257633136987678163091686808169788565902008220534937005900103272340739637892312174040810523165753078051116005970623512755916249335373841913004223785736722216113305749202779150003501757036197044239031389903010333024166948847999986872014182729075816232078180462101376572365738864224270556767433065524516734411236950297931736368763795642278521382471742445393109941444007133628510508995981447859113768897893605741445408697564429957660162035072956543228096370799868752696701442130885623388455621753007521518340849886948687842331146373253608471187264233184320834700668387878658804874104586623158594922864088699699795139738762886578131019358993308810110183129467981010695660525728526340979772647716992777569347871150195225404254884441084082356856689447450032270074010915051462590118371209495970967330433455322382982591213662281380864156557103093667699367898150926004309865486276457055101801319412945740053700750246349328798188620042864851345663256444571464907574701067676158244750762876267940488390555543402921219420245703257991615358597416155401544463329381526811675572420246603195745099202474893749323379813274518566123907825652289424885926103461113308521384075878568925175106928367778060040761704832416494753190580126892291988308922888704769271051595118920537810479819250717305894356644189414221171495495051400306839550139851658914569158852176458085389209174210864889845694087768908742422626202148647224022690677849788534815541628751087229931224637492569088186130358673217049415197214199441465088393625191843370734259402898526613062378340776297822935227415566774685024915536159788907224191163006634105846091627421491695703425402220086916386897975702815319038052753483372693155287980190868063625743150786365274437987758412952290105268003171538124287986709818753066509137916550229637818692228482112932602882632785051151215180879524612090294308747509818409187778808035279957224818566403785852332863308855884808125114678087211987962539648988192903800587944929094123204804059518781709017931125759460830927584464964450866332948157566423975998877593738562033560489288453239578269001469912309526787479895832582508879148481498994763514069977916190364998876754135433430428211630780257616615007024231536593570479673498604025782229172213136490697433954471612063424080993312541289474022568749364295857091932730672435503096396337192910913799214119712536446527988127510133037158982204560300470176161813036747688568370074188416964155934245659292444085310170548242492886595378659284693350407414392865723093559051900482286458191388834546719160163220093799054340505258218868676814321877889772210345406888177124754187507472010740266418871517662613633719115825263114502801927142106007470059489546354922226931368198271193249998429064161359366459566782278020009842671647558971624767647608442556963430691762938418114906606342081839169402159260270526743344174885048551784718048923305921207716017667588139487460144362418317445275515953762363167766621601640207160424010750222542313962697734507448955994072413854524795337743719709385245365343978753294993789047168916134457261684079039073146235266290770286274449595596052691216190709758600262710926536387590576746287420679558111883898102971316225241081944148057651972316948914592960599717188553890655076176920716063835174545085577470025086606842710759889960269879342574661288000109174747968791947868320283314178000626489819131980694817480589723510694605615483842483435589998621776902386065731318025393979857292545664981622647184612409066937428651645678934944941091147703673587070653566599877626866656400036975326503068713641169492964055668172623238637189343125012472063252270603631940816489976919539131825769562158427765096581692772122619298755807727200604162842357984727297907692202250497044707487767600461498411609643081026344392680656946055145875199188958119338505683664910142512384645246950636847249707951235706075699176030698368850490852869979413249094048451836464501023199539113126231035040028805278306407784646676393412919866802573723856638792067150873891209719050844992579442006966264917059628919084501091599977811659924396873856691727623941619024738094830606818204463343290403201168449851225787212260251857711196455322222698475713114025256926998823716341699947317552911525389251644702192571832544913014332507678925486366530153562400460203156165416175273859750926003595797201428419851739143916060933946347187580459770744544805734620081796139592404691762156225918229595692700375413141608726888527409714707843589120191119396632685264763682526910497634542787249300948371716867820888139291187572247924742165949744370514704037770825732255320204393111307330030693728546814181832474473149246680719419618166423842525456490559668534775612421759407405043362594856163379470285928926822444296508544193340337874401480041005320351123642626737175874200171597593028874446104898048214356851656326202738129322267797455459945878291984498991989976049262375109696131037508444335834709596794039070527086515402464258562647102194517333004911866419143158025548171048581867648225549414185016164307193720134036838268819995279100386318211743379795065248465092087256185683907987468456113195372583251231539558767434741307527118513163030045736362844137138849378675272504751423494407148124252601013671386041467110971428146426562563819716175796435552082484738364186145333684750277223692642788605656796602627123334226057792339099107641867885340860619558908176711685747709905100271260765535404952122804842612277755206858032759200602907959792269322953944435366321898020217596736787800651573293316308148363713080724860036856141572039986300867881471375519576694353922980272289706278278860755325437237872912165272293876593071688299257454330626708857266954978090971905371188275410658131163814927190078409361400295896066430760647617400257174612190387883960110296083336017548736026962297315608696096624370419031052838951024721785390890123176041635649089746884837542619087432421642400035837749258670058253621708417552982696147292966113096011564012278036360914856463213446358873895058720355372556090767379942386200737265682777972208165135281457851049156764447750692528032485463090365162995583314791072667501940939836367784695936904715165427023340919871613378228263979602959724971701016451465069063155528073128736869970130508233160302073350736697271907721286573339339439944131930282540432654180714537975105769447108326466879646091250751734028690577336022943828186767563788454704902315022498693855449855142360447264791826064815743027698172745772146207147868810696425855398478237887695672222673538762106191627254082551688258118135380431395893870416412563959171666920576766313726242431223491282078532709053966974214262243259292058530457884962147540835774681978942663763988508035395517198534660463993935341739416664434466546528553998937378514494664446225587512956980290925651799103781139720505995607159707737192832399827608936837576634168832275793084485590680652303384819220136811307304525622965522917031143997590827630943255435914106979729000451273638872071510453626728828370083489769878293695281149827968721576989586520443395420764324704843798475774827575269115953774415921876535643577532193751224411939772745015270128210639917205919910986610842830902840606605854998297161836904801315333578147186610330973827193697412620393531898444164697812615383345640332544407659176794989136240183633236077010054079732201846848103476609147514354519382219961415674705967206400107225789556470957808922761831154538208331676447590337834698368873199700767990409780390617841011211458327042608472808897167544147523095185524476577050119052635335785236220704083759535021606143493059365259898633507909720654812361970403089450907316909041630801323244034921665164002771874896427840648551108266001164538759037397036453557090287216160279145833638981232022566676384159359880877485456063829824764062261821632887491967978568625444667903217449762866618713786324179433976924956632394190644028104922101022755454204709077731484862697526136595186198920799507461512196420932995861366563944815473791036867067174796850061837905072414711331050562164622858659073450477502355028817874865484763709035280991933012625444159895211993884159483906668887951276093875537528277118776064714728463192063264238999244672736484607246760996541414075379333478785472430541758298239129393078992112010837314161603236965816812553885187015427693215829004179402008736570723592359009989422541457310301731501170015632560912259031747969234114055656638542095994635454894214813968511078349925948077810756433912924217950726334754430792922359855906535250940470056760584138172517302111620769123135741297820703039526441922766373927561787285226078700243514677487256050193314056570937826550217130738525039918760912906603618450522361547662458011504511873146481727980962272342024302612195408172703519783233516661096578559314494720839847349094715918186889409629381044943140941329362133325601131158971529826276062072251096656834482713741701405589440445528125590387624224897122610868388980362398919451993196200862555129001468921455560451026850533876114497692083906589375722826011297525285843729420735519599153353192641918400376954569208427967787391816267974861524426634843641662352121989409122069319301552727533499529249607760580038627260773750638196080152848504592111674686443923543254541941020644102635365002364202113196913741014146803143496434282685292251910342653044212085598432451780021398190195848956283878691831231259782615764343696578273802842000727764736842315201786479453927810335257014381629434487289341150400003272270837622490496420116154272256874226450551024068418389661402691789152222397122789055356970705999743589352480619905860358755749870447917418382151200940117538931414104231684888107641626554324945149363439821337311933241376011718765656765978096331505528407335987709779541188773655766010681486157785136012809164605137648575375318729785588720839509852415743364674305880100207878528980286016440138444593506454708820791247266395080636216464555617599721551460509212880371744993341371338357894988706092176452384174961269035147582953323942662799322146465020202361054565978077070100303951300370938347985624476362518258581480027659715777635067855420159309156389877502360626339068244696010475564633711940894841989427201006260295357942478076706481831551258141245891778260042753148342406456667528573270411921318146788658720733101007898828438040228248891051626262104424852514143145447721955094221812838406117531413149158876323408885315471023051532775383395611590084673413024929364073212329611150302448058480920315291747540525976101489719776356118646843381697637710664839824301599748478185526100378775738202167124307861309004560549489591160601776503744804164262300043862055294036105148981081979187437431727594636786924737080909989521643516907642237169000647189182595265601033332847624284195819044374068296452951427425301365904899139019372789938656255396083280658729886044930858949120080170449781352380135009447627946092161308784645668768883078931483957918824503216698844132020279943053951955187151967765912623067710097694599546649674444862909939476896371329116492899383164385466105797377241980562520856018488382852654101731479128152086627975049292082222783265015901394086483415763421432754540859092007876840778814237834577327750381056987125852370474244472562816156701956626763477801872339029048642390914777635998933242640237978508388057213077777212996413789609997639500112280437202598511483865780993914290080820599373352114607290605105904992847437753061597511044861541141240436118086968347845284361228594146869157595006344021665107057085844035779599802369525298748266662552142605493274508108650437532170663444312414981755325329789640025670853109298789797410165355816295332137303581895754833480740985828574404688274204019978460719547936656235106216076481762482557064275738812296723213805836233572178045440657460819312579063529516900571741094731290066028721737273332216706222597271072244046255381261158722280384752868091920035977174797497293882904663442842897405474890500779584777436541519393850144002802494136721072964490493190175834767251146678406756840877107337650640344936919822876042889517331252108636153536988640820889308271387389731821864094427912858141775787749389859170339401904144112383679844575807947475047355496303272892458686633215983621487281523769062501265476090324178294300033930847206800418876611916901958611499395981996127668745890495172738769998502295424028135122665182232006915402427787638590475403334768813473151026773444954917574299292300994155561187950653055334969513267973785805877162590407056698868351760953927574663239619413090234869698222989656475679110898240966697432952403914870173085749695799940588217225518053212617746706639364106040200390518225631483948085552962431672338568532043727094768376711928110806150655223874278763756174722112335033247711762120970594174961818096072328316021819721751996454634468416950484352032263390046701454489800407958410297893371227778031094960207047021288417023096598836397087764058147551630343616249610222763084608384171851273980606723213879867951296021239044943360834435967459073951909523145146198631223550591316801150283174686897561698587725756808644734411520161049699179410329652048166441217510643516530996236616579053571218155582413776297883059554747129201593010901569088018367706786889532902937825197365421917668955108167261561913672128255173136805577987555847825004526828945365563897225942571270324252319723582946218695344689126708621220278529678746788300544114684068296435101216482765024409121608596231260479288380195908249669686114481308739418255254842114984430338079298513638937594890392730235298589982483743316792339160443968825420796630299820143779363531241483013612710035264679943205058139667971151358027774362543117139371691859730736847430720833577065258608639432251064758126039321819735692631172515444570932556333429300858339269210206528137218703482566974540509819583336711556991595378423805736543625152485635566439601255484394704606927292647714196728181198936979436164770020311647975932323739156126884029244098166339819183057713429652743451492928076894989135596701784396942052197274748137443199913731957200543629695827164740672327063605248181931999055943526989725157355315039692468535826039141756338404428406818961268684014390493566175282054459377215094297901416927759534364110064625541297576933118899710246946704689127532365043069011192452817315846819598707609636046356510946128936436657159025907310493785350559697590123491773810241631481651203722592113133557155289416550709314613965356497450527565525967837346072065841879971802644916041856139758020028140638369919087019782205165739424197479417845025537964975173222420358889442219860924164622299833334835811864770394203410941306631468218334423033844000939494239136809546819134021339978201536285750590135923065314615917903948367628683972893564237528272595704845479285584534970324768419919702232818537631689778015026488740657703655096705616654667753580456973733312873880586637198541057731258258991540518890446140567752940153354808909047151916807407068245642902985752385271405632480207337276230457528992767390534222982714146612203201971429087937273444668447673864537230220556819382263531197726980939477379515065663620055199662671707238546205798198570133650057921150920628277746655112828220648837571180944590946833028921038198973811526934104283463590310316352529318897965909833579864843865059564292872085734225058673463950488916228920678276533905035301691279023148324646544103844631922754415697376942223648188530802023882494775156942779925647021103400477160614415891422250166442974715702605114507341751540765756338143141257376072769525891849448512149361349145218226587939507318992803447497039263074367710910867322244621841420999546752791409511811022469218133272319139583075617468872048185729467219021542272763128948423613995510621730722467152200943587260087821422243255666351545934598968624717626614544247928138538104014164441198978550195295200929049571508023965693333648585012475919276119819571757920838921961570918643968222626960597580757242265569442067207967396636875511804363482019740581128410024546010916243427195155731975540374669538890462114756637580476437196881334012401239109337270069921996843425858778704020320789104796261588487867710103371084963337023143116654670435054635163828376994071859567244788698718485521656772245150831817686331366474279219677543248980003471429426256276496516464921925510431625789808691619365441805504094106161969770998788639741341399707948277398378458767137168405078395047675627942321221234364560586392287527301914155653757123138709909543676055677558988238936915371682594967935749099986948397727630807708493011447205050317323744097139312965946603944074234878209170410631631493574174299225905765446060049118159582567671329397983185995412393506570056811343212842727224478076301893465936813812285334295882391666850826810315544921092427148831330218385326929020920837839117750621595858039205379411431173350166274309956470663034926478321217060107377325779847481024998288727969292504413411119350432385646398363889507697569416958529844891690810531710449796799439225672402295264648862542755168072762534005843262452928818425208111649519735234426844321383986027972139142230036219020753560922439493305902424968485924416103661191242402312085544708427734068125534682205318858210551842585265542064479480763174122990592708160119620004198520571555481487235440662780362404429635271234195818715256385722263235819291796523691819673984640552251617543482390515484739122503154034297771969434816149825123875549821562069167172755830398959708315778106648702539076745786272596563216059131639045050640030853774601531245432633295565425908456059711789911227963016989291550956953078422467201795134129774355749879270271357974351152810717266538351535677752684930147953685514459118044587275598570153731763325054142973103148244345019530410679358285723206545237484534075768797388715128576280233017798251576111128190331456010766184228100999370603310779156489947691009369293017225980372877412772059287428031029474353056910469652474495984298271473701178230026342697578455789114482812117030685105852676268510338737104838278963325775756871569842309217997370948891131702161815609021034671088014934623088839148438040234667999755038819689998880300844616353136293545491077871017567505934280226137313860067337606613605976911114547852556155468862706369564141570653985530383524598650668621673386470603428225236669859969860456371557206167388758090415487463121098678837885508004480976063212069397645693193780839061661539542060052096651139459795539409619667537723797425021224065089060586201979789717556455500478830226717817884968293000618865022914971843219305129743270485331159538410885126510730713267598958234018185913548222313742666778333129713397485033094227115004013445497650587300502572751341437242210906384717703954332390675974194860051261290074460333990916503628338902007461959254163229503400939627695213888804922396415413357506378778330364049025586266713409685865732953723119632257126548897342090208064795335507440851361016686370610801560534980582266180310254764840543772149330766970596636226429342195708490391326702111997610008413240792369009930533691761804019950282196643277680283616710883076102312976815870559464336048226534942485913873558272934947909851374761090520997344617380656818793777059499770798135898102269667402627930224497104034651640878845918459125445326394619928232865450949099151759758891405148269817030894211665180342178626082559686248527319013708532981497390821953222524898011242580233540610771200119398810173520601409506957926511879479612712721018457629010276730555170442028822859218471515926449467188403538929981822520770979723252098856740672768960502221933382044871243227397730988252733227004408980744694127623669090754145926558058161013826660803151763574069938911868597167496584875826692595983743190121066769900956742957510107905746201922652414252044959866070149257328523819709854171771002959830236808713392464076698347594598947082023729435020840099817034308915291508874856665171322991492444696627217542452586573928221094128956015297453428933334771511717957674196963909030928623978611962064185167059854259055218782344148725049214032799236586901664639494834208331442747194027359162207644867854356937269423938125072043415667997763019898092309141633933537233767711777339531686506216945772430691186765140430316091924628377488159790593402045428034953905833480951940170393859462417468244318806524816185271903663794080252344498719128913300244247668551506713080945388068932850660903770529357962105890639860874757887115211747417482015667386889970904081043496691297888849048645097666894170691300610093222499625500049238904313105475025169750056972500696165406436879596353557073300099978899090257634032506048210472130832839697458006020930863098821830601825902330634968126969051835618887774655576667524096454470819765720358442407034612325672755550065820565422678998300370777648900460181011366322848628370572294953428776062128621818348967650638566707787906854601522054963722458251636056063343738225817723053272565660129665285835745487108329105422242766048674482234080559021830729727393829824151669136860265948835023997300458290795631000751850972297400690243887575830867573366811840373372945233199114061164300698193985440774195283925665339019414964429377881824909978964867794941994091121268774279947251140250254137468059841819187652413099574416117831216407540794455003642336538520132835422450874999860591640937171686547768380526765506564423316056500527055278825113604111613629242300298351139644079050303972251286334246956711538440494250687951724285157249802489351695236632178692019449735737066044206216722202017548342776884277484741043887733260185685118005682032951763589691574818567918049251944139994803358133800547796300664145287746931328189808728273972096207624764876050680382005522317512238069442036050217978064924903339743135821762020879275616448278020094803709878053640896520091760616773137336683636185692390095653358750462238525859326225315763033207545202075448721796216251281195053480245227112150582290199056796623801930674904226918860704890836718660188489836802181315704090188919808945760135298995318191413955945046259410834062949435137856425591102769773579261493808160579613781532824311177330335872598684866802554235722795941836854960188796998624464776446333748052978291383540288872578886998931139583439973174824231872249397646569388704694972705744945653051481029178918629163293578919798752212848829155686494800495767035409621811788684504222775305952125330986408480337101909077430218038161997376702723486083358679682866904365498904581636765981172543175095019801049594866775269050526997672169313272725282467295543566654785036691663116022030718667700661941193385132903747093136586420064842292914708115284569193089229512852755562869318209409853136318958175401521607269693369594037673652304838610576766571042548051524124249728813456678805819211305910705730514308529549163667505506879832929041885286003337242077227603427357572235178825737371914350417485039876077675031967501034403993225257234522276971401520209385627206955147236527682470068761770218981518543824874466927241712159800470387198371060792427896311309849848955220227115393869564021598273119524297155620846233858568738585925124008642662778807561322480995331412625526897341938318118329773153776943498820984686553084434069943013383109075162311818118866910353652935598545316401895802272279722848397894506722078841625937852310796296920780525721453111840347703533630008409846219267062710977680886233159646799666022683465648388229332679223158194879578344877289319619539432333357546658579150883617386420542863916729657794345021877185119652586779127605804170138378753589325664375688736838250901392591163852677008755636390486987495563848003258227072940305159385546591755119656330019242764237738807910367388043521162218685662534849197226856907319848928009304035852757940982621216141435804269037315163654751046623449114821237932138146645117350663686030241320083580184039233625575335849015002710259544970424040876704348655518948603242287682462711328927308630881301515028496760893850183789399712974085432492013568953766029267807195661891200275540679911280431275703089481677071996062910983301000584830697798339672664814416035169123420810913235789805674485162753783512492167480488097417004245221452867932378938207645712772733941290673567545802394869871816693272009012583655665376573638548228839089294667401708607427670883188453222914410259610510818580224491637095665597567772896919762001629139361699069005852620343058338060445897043595370796853027356553789114746203661835014132090876318248702218902796554370682151747195802384752832401575642813745838232041029274495726541341860758480243581752369896413164537753543935038906028157359668980802957666613491118824327267739643322019805349387986029614518623454910724992430698659080704377402579523177928354344871119793608373030510728054575425395932262342250881447456340195082153553650723312827089423537102425032010035819063897676561713603936696586422857170242490778806718173411518535810891604175262734511291267052543624876047693462865571137962720165725295162037416401411999605156976452856106069899271964675854757617712357865738994378192993717944967042629939639786226798606834868009361355830259595283791801071884976688308903812795224171388710150637917187785706346777187354877013132523108063904976233669732409386034839399924022135928178141366901577751179506491237548284448525241124218120357930984814850260702865878423826118955572909438195379620827885898265234677074231145483871385442034292151407765268065814371164345999105919065153466366813459160662873074935893327065311228427899725937425341161606075832010100656276923882721771299428795616745196320814636196541496286213978139165823643563739705153872270098176049517054080268685381640026663900256253000493421337506140662027476203971416819864240891592404441827748653494638983672117018736095691927157775678495758209750921721219385553475958834922468932168815298990167704380907059658822535680986140825373330607846697971512499131518247163246459441048611457358080662853631573623847384773805106590170178147855019118546120997533392264064964459962592452676927592637027696332215611635612834003163219558084049915378544056580190119964254348659102507825412426434524853410267632589777325381982004736702392820631963920703115523923334430264641495851709501432172249347281726657977539307720335790950070564426299031683428452347886465608161132123320835209123556753902305535433555470381989138254995746715427654465387946628105193920016917935306853025085244154289780519684453352340431030089920015786454628744922970569762517847262094511695967198363536551753497628274900510821127291060792210133194246176398410699124962363281208380383222998459502503515833516315672843854408418727164145772700999505073293051457314500378809503979613336816910761006371294960943179356631285361556224113944378609269696625837081888362826470050086464043590717914334430909249432438027347955046605609873179197026807601429139182753121480704605835186485225580489026489490591302253400581775568497342218726999070892761326618664520490214541286508661516749574793027231952829900864894691272527493003059592119812248455258308335737345262167401346311302125387422597103863488489626268657404935946797925618250395087906394909824952277353509440906362321048477326289952328945260658163092457257340180532408499805728290563193123359593796990659535925805246189075217402672910032466891132211841794000700682122760906020439627090816049143715469205902324337677765840798480880851344444839602061301413520153609166635076177470762076156815205662499107777425401146785854156547993314966862464584664653137703849535972805959665590494703964767606484346343556992939999939303107470871842787067638810639323632942646328269933839578104938324529700292261216574338129551229105120054905756355319197288537740765836770930075744817944695832402709429435222350074366120231364283287250613822033423825177376377551828308238960230220101729574535118416183648922167064478890829273194011313400415938671238970497477792408678315011882251061210153982015479707066319716390702318903292565525578246941132215485271640367850638823430493586190659966509574216403565039556718798816632967701631943307110271230116504720851049501063713253628023696622199168207330470026587086891214001486682101535609059909743844585504088236295486329266693628630158114960501939963399818890879505869384919389366120105863188749240828963742034270243519712805370417573393313881865565752005968836829463193494899169826639098234888784241927626055842643674169899700939382944161208897642368772232294296719502614878097536594126140895378001240934416064957537822870725187093559910657762076324738273412305368383093071192881226202081732652681680235105273427212723357479230210604318955060917682610156661010217825766641585790921881352033451438347771047356765767088902984820611824711786752740180129455252465591541479768736680218778652025315647493703834953932159523527728599365558510787353113181524833423317829140494650076969551096668829181943372280881296910471652311232833412828252087818508831205074862648220511041665647079207875454507740566696501365175502015926552572950879292618755815045521241629901478358928883821168725673749043781829116658080314082045244712222590736779046174947262329586171511706875554304000856709873713349393462760091574577263264047851495422352935580984584135193351952788854223756199873476512845944037610568025111048108597451955671948363315523353584250810136058264903260406174734237048870577035831914120898431545969497889246379720333551768118210350569098641134966446333203112667882515456279269738850843415966768368247898037076836111217111955801768346467381307138663476802204027960108009728540722660151263698375226767479909900839126440654475406945178797662748577742234021721217791972168522992023645541244497620733831753037514861285594312113271949000371356819339126074898332122487788520714655690774101302933012507360537520147076693213372289856652643455087918260256094274551106689004643337913647367407622407454246084567477447522876068976471991434171338577544341589752287463003574593880318368913206306113272984506719617747757103633913286207369027045757435125909025249247602978059459377524407290140395416455851849406976696354508120639532394426096826166723383781525445722864061256990737164519970835664082625845136091180875040961957098556565069685984988160760452881868037159574674519221786454672020867512941454122642136015276900418733527825124099189605120405909913031589087372527451761957720870383220788580208756482582840926520400162484862723899962536533956159323580133319488920932088498739718510511417181438230870595583042047550245743749688591985050767651570656083644208660702902818640161524424019907781820714699454027713008754666556710286183809909993274920492784188840944708001298356397321429807800180106301476072849943389141777991118148173436640389956369685676605912682909900012200261519312340831706290641467169773947667707037738489547027943211293576373224973375749385317022594532992063742239010524481704035136311461659103972207171625120916850301269287601341484468864038359510396375947619646879423950272209459829041506372083198053661528659426360208280890935815871377076767248253456673524004740022434950003537453795084405293088228159653340152217600417256627170283502233243328901434115524260030015455639628812174458693662836716670729455788718234166328333475269164089114556899101205795155534316355631986014450927036935433045243725876771230653573399369706597831336783803476915666347561944506210982078404260690632685573533613320729720430936320703204727203272152656111797074141233196062833850696001713301735534693223071439878908924561059301321284558863672200099386073546683428241073278992220957095831051979405016310363539587486052014960150663829299908434196551251439465147645803355243349004645087881600595588577492435907158148833962547990683074820066770041430023240684557621859716150199080079175505261269415828806437018099874209690708599727436166294146829975360220418401190888389381944850373242500385195363154001834825989821264665152411302565103400939775471134151057595218408653747056572840504901800541258791588650211592553311452965520670479275881435620982097313537066150019770430271438780080904790389328717259370256651813630646106539397608527797144736022586187344002052275314516572327392927669255871617958211249990591522728843372700549759635719391784311504509083215279145559294221649309252589788042969776513699103143411739931200327773145494041554960001194921178970448351141534879620381294366734887641278453672008147625054709911310418438177695414576283077148834995043668533881381661422970249967308019777834810612284666063252579283213895763032382890528707331195824518812225471611661526922006008922415794385363860625672920804889682436743195389107162384750133175212666534224999758974769490416707168352485824863098852721370066416235498100697252801362078060563556986700610801627322397856025232494505815633894219315081898470558203288745030175030636686008114889350934966505812901309498167657156756318764050576117914491965370766427730364307033600243426702664193406718214251369343068762339813702858211619690448708064445750367283781880168918552699563138047416367554944822238575709439954425303707112441799531655592330257762608167782823388510821254657551304192275822332345582784378247399724786025084598517287895043512532603737829098056975245434936458024881986955116003983504381660465826433346033422152097828300981807807969834311807421100978440524696685770329771800766930791016991384006870056550408991575761222939022296826369325589157526292201807991167481063029360724770950614627279353474206240258720476765208291707096009081779501894046842558881197225482195073510772205708656944539416889145865480509111874049300253809343308462563125894062825040077910507956232127076139014932500256032216357286023531376487408794733123428823874864098955216999963326513048903375331537359065422724655852560622655116214545051871328392831813178079633025078307281873148446504167398008373532579717284900437698727744883942352190203654175631660439375847556237638173241862383591790746329479969989995383943742563752727737757041399674013555837212879299686450483401074648531600679922864763202161021493506717863038308928671392697544001191396971197890366982999072358271156750951392473659460487955519432735846374008957602307015089700447606763902280818275571884768464393699653178932713749663093731602596279710908275658793935226012384876148342894910691989626338768806952533766479139635579146701398156937999067037040058187793747907049517792840324586682144236754778923949833018758283510705711088128379740907263614055147631027723096394069246272236492167900842902248117584133584597881392499586076899047269035399243055266514478467280274607795236961632518388436087684090623035085190591326813098218818991180366590076255967347907789404851666906446355914427150855422359493860406698342576434197448813950665853631301767320085624957213836071894373331903572432797721618334851642641017729516305729291515137192082775347835585035225049148063782848521070225326787286604524639288358269305093597322558749090526260610551094966180591821561260951125175174171602033880392690519044618275930036888808893241805256023584795773983103969724909722053406013996329010524158063672898743008982071340918562737976092733630062134485022992081950620718064044290823170168842915128433992528274264509697469063236427618068595565998252656636775367855687721986074731565903988520203287275975288169864463636815965700732592169553668413952869010450688147735609875215177749569707068853318654079643963652558609894542388099620867225194629964509022815307062895938121739176775061057369865855737566173278253168304414403314614852211819535054895587175490555300308236028810713098155256101822568442251389654782537968276341718335949422080434999276241281055428529971071760155473913246166674389447115249495852523105245355009379482467197957951494877844487487568889055959777410843975123496416395693824442124866843282665552306464936182676209034104103466379094990458088213957610218653386334024974354960107406857779447937826870553699468872739946371931359701786458170328506062562481276358286807453450782954731437270798065839613090653261098226773643513663148188770541172815129229264544250820798800989177233937575893162510387605725601238244185752108930089189109209993670288247836973253168722310540098177709027422425744499768123846429984652425648495858269118916410667649567613535614695237725837112700565338617992821624679789528140287071423013043026324453117155841863701093463517893220503161991314452483234526128773447370176485615674082060292869856593404211721736650190806132972567710203499045549568476330655701558929974617377613549991815877609251961091507542369741953598722068113319404290610146888234015345343135360087866205617683919476871785453989857515207694703658398157437935378420772824128206408098363985308528130298235456921732123968854776776924549019492154962013151656028584850545711309547711270710494209329760037853080483585977517330231013231622596542878252366223969988774329097889274418545898780874494815487431024830650197969719225852148570677727309263660828338727430270242943899997318328797038842070494876278349141975032138085929312775203227129161220580086268419780588135094666191136727955930941916596435060575497057558539134790576684375427105876326687409464823392988357065139084761365189770486626334633458901821389903964903278774977108165486590801604799557763548794864441468125062974501842759717133103385492920503080701102249933723467679518696544046015196756172288713339480696880248154303083673159924986313719661125930419434415435220347904019146837648936498897107452225814338169426859777129238480687175967597429192121198577838190329792624165451092287370303643579005421919474202195633983927582452137005112839365149233456487490345167559303552356167957645997328321445555560420154190895075551723408442749703592582815088844402385342086693536802939689362952723370052282856805969067879717374267362043612282174281309428360489235853412879503667151455212169971357652029033136593770343687437053356096509413221030608126258644938538048448469131646538848789866539709708170949869415281463261328509483437387131416380802471575918631670629268257807113989308489343730007184017615155867120516939175388694559295533429027824070686567279522317607465688293088549040489215428476691561591258220447358779079190132628995395718937473537410122765773322138692139951991026042023567457380407919657659453222975379245628904561271611423062660820637271304525156091202944087265748617752432228580974777629302003836052101804097043402559612002231214082309748709188754202268744036156260530486607299975902244277750386860465322214141226834012069968051976326599382431249243425687027513188422117406803789611423324389274532168851831277686530996078592814095708424634592041681758864082331231773518618116158929322504286368365536832472163364947591073468481933205577111719790162457827949347130113032970429546328213998472677861512828660877565184222629945850192324263699805744643790289367914430291929629623582836355511302252722369913503712014519394092771701759845014859266320917983135648273491074433143787964926503986414097807516794287486621677959243239126049931014530066402084202415468131070125171138283659336141525723736536671280592449999692699956589672065441872015133338382020936541775504339549988417941993615006495460880166699330822409147067497680825620675791303447011262514969797145823512823919773464663986485892790283995441129590979037829714333330758983469193346422728237744336224755285776758838044666078018577781418518656426038490399081643536594615065756413932361422057042686047451932810508526503674915063012459462441591952598608318430397918965073575174183369375581783487504999644173952164148360740824363977338240829520333471663581148082864638601732940218000495061900732550082179676921331777809248353481522406245587749877547080616390033207659069701387096968706160036723485012148599590532834364533088979712312233267171299880398638324945016335236819439570237527177982867449190587000725349686917609361893729103828251092842287294695517375615635477732981496033569624299386930292259755617323834071358062374381226127673109470964712158656887492548957411454424425747666389447411028786907269368138741306369183183043879438650299819455654959582659177532087745944143496165621215184462370688105564065405429720141653373261510193322403051587542967565828957882719539083089332065521885138525191370406306847191480544849252066442064075843500781845602022361177952932569279382741858825156805239916778390880351081478416590094940586845752581965991488686667019109784340462417042939399345582557372009996654766496309973700883954729383572234106146037011822271241177786237614822951432823693279778052839949577191347077416741616667990355922868306108279473052809720718583431604255173081979247748424536842648258362442278519830557272192457275791237994443752837711355536061099917768414719621574772069329760172777779259887511102132795724321313139229822467340378483905902444719239189578311112224075937596672382919628354403818461360796368670718732264093344260555703601795324880954055024995828759291736597343121815276117892542099532715541253478499290662885303582200601443932796577058827507309837975725774080507310881201320687605435607756284096507331093400423237088480109193260170183994222208286466015090506792010356042337818978258887681555339777443746831950679989084741253333646502606078570310739364014428749107874096997410684977326216175701444888050725776453918035472918817439703473037993695375170371216316835511758070860869719855164704142338564049844884257307368368853154566836985543868934617206188044416053981492772818552098674176960158769847038028259415181008250795479019048049294530559281183100708885660603415043348164679766512420038300293413847897121822867377728088242360346273901477912564551099013839982800689573113250762189632400572903737358590190830105783468591941283291148674201266312010912990097418493291541180251484028508379443516171287930642748705158888157735541332320076277304485029733220537683082692328527298066941635383152977559756531441347417565946388777982520310834813948848910576170499863606907967492750095318290332198712614697797571278447354414687023659953811122558439549407087340092600532868622110664013974146743374536263685773413200154529789100760260920512319551241503710583166243777267962638275737710422177368305393653014046471232811989974371352162473464483402496700987683699275839747951737081912351896660696662058572936411646110761522127981347298312456222251668232718133888691227830789843176241899818522737306021902776852346760458298053089497800004717499302105050247578609837099131097346023539210865131169385646063491107761109742628243906853353241648508564321462020333824771788005039855325741703883691667812534489795667526166059035110703193943764146836312204615040653818112372304533970209931520339299002334196363847672212958594112784043911533549440220542958639698820673737115252430805110462650542238102809672803580536435670096757867254997278515140166360672959246795111447603105361482340239727211663754263167591954605231888119973854335995726261935493870070451308769264142279290025500097709281077536860574489750025909697536737935211680607061336061848078875548142508596350535249979505236739961931788369590180919684172527306096178732321564757941673301226987696874965198403854319229852595968340618220363404810815788859215647589338500187757314866857267139316481564964405680551813649741305165041493273163598278510379325708784047203026486571721055297632516606403097450965132321499914182467365105765635391271953806175968836648960780632821550102371507487108003952846527342960273457413420755791689816289043665222083456179484391060425632500392624695542050781585765169514650142469800621628159213238240285350801282126723067132575141183959389291728435556426590301857698233467600739945696554947401972716853129299007502371816611431108489902172550162708974985253617855977252814385159594195838877524458107191140391746982909932631459014898902244396286511532899962545082095723982831183373682140416871851877772886303418611412697188353534423861372817543205872254179326673949220997287079631431358818771898387204262743724405653367071571522566352593805624721465836821061010826250923440628271312194155218124022750914874924526260705796549222879189962595610338479406048855776400118767461954468839181420355950878503749553593141895041802938900023326067375148994773442199808325631877725632009742189213402248965455253322922542293630294417861917691296070404009014474817927454565978955021120740082228436319848792092417316924407314116344162548022713029518847828545504756368960431119373698097122352791949521906928040855443213145172640363650551307482793760884199340727337196097776350681752362875951016625800229217057088812107682394901947145004331775991105635818159878729139059523583366529407025394896368701468601051250281454860367361322888824768645349505563621333513197038403324480459059531913557631699881025627144537935530809060173507870604352673696609964978868520976047772230490299659424441292650847278679909678762137755490348891743765206941673574073433005219913767059889934174276760187646890792926087052465654766584838957740035675069349978439414329686816314691126272850050174417520786289311274769838045598945306813662076984981260839639997645501260847472621841867098118757156461176076228288758404411506365810012542869198883011003346046327711213231969645125710203304239049866397407035425085002801326176825332094881931436025846707984369237844825856685662683954321323493811557528628908765727438274782483386863141650674101824176532408984118845649582535349298453735198148661912219921948351018830111768291260421653818079825293515598735764584005153961249627703378124609699960754792381611099521830755812214372150983450415663693863933933668263046040082612458298543473933064174294840710942903327250508484334104438018406255128414824740341597692555887174187394675508254307281309432330669500046740292427196860562723953170279641751783948833166785418058012664976372548349114627438256058893245061078371086322115629790249539183710576113554800068497939614268053274186266968450628120873009244424903686147332751099139919138271596913079363142624120050657707644296622581799517732735087484574921078522215164053896423268889158481632728264421860071964317590196821401719214428896632681219138269789030237876228452316670039003348286054112152238131903430129005139990224683543511248247388489030357377433590579287727036997012526630297388228346204952033684288415405297123140876031188559614425727303782403554310259862766403352560734213580335893690052689020447719560416703167620871468117032555517530413405697081671495880259102358238778952062002285944927063948312257564622464092299707496421708161878032309677043504238003422935066304016559740318602196693599672371292129447450243337844115707337532395923771538742918848431233416354947349569959852504674345216813633981789528241504292856077947451162225242922370718556746238971648833653371176195123226859777213661319187783965034751963264682225387876168103796081358290689155229121698590790905681748735802003820790504928031766356406801008502258266964470870766372650218406287597369382525854006060165846395989214350437732393926108624089566812258864945798261450848685823376262407793318678497979931692488340863362945618706680311182213649407990854304163941738108956792529634322907640440308256800561662865961231953902068780982347463074540099601194290698204851985120694489519902805623399550574605327044988547499895631478109768013111533618978678981483739981615010712915378588172654424811543065016889347753035775550963749684343615547838919401043167329817814181203441686375048104621779286018586736138783125362809435687398787194807267925677946126382555093230934518876573790536336464071061912478476092067835845729127818923413543466984581266199672736836347324845997798890593587184383136620253444197198700780493429395827244157478778749084219248128056389367396497532266801291545005870617389689012315454287006591078851630394708266714934853558878649895445804253123959932190962693456873926313103269662126820564881210081850789203422873491351378880938615688482878502289797131405409535033532753212670248822121712619217583162303335782430113231252557926537413858357336016697763981834937254589983404531114534037969791694346262289068129585214209585358702130913528923408183068552462593482427446175276949044821676254323124425621703468456034168905747856061818749141538073256054739223792927073407110172754325823472512389596284797079742935130082170442045359978493987557513715851951739238591457749285913850689097458726068501908983244610483779294870700495731335166635511490878656166340110662708080785373296855250309601610251914748730547724318527163480279979596730741699259413219675465889100136184466114357782331105296184457951452711636140803387878444382270470065434709519166536283542232889833506472727997120179251586008791680874638785302698923403358346041505095636832312590764139551313136517241573748934080198723049444205478238984119378889679249796124912311522952876962132243083817832515217411621822996164230422829528172769634803811511564484281852372210865746772633693350237906856260972902681562830896482269675060130773265393955910128957573494113437618545586318941294611947469819924208688703882482356621912596769561989184873320762520730260024631945637697256608730725514495371171281875127922284923476211066406331464813564956800378296111845158183639017073582180287983161182046811861205662152483813886128925913201614081553964447661660376620713668795680138675221558169937060204538643573533765313414131529416298799265423701590012406056715958417484372228482812408879608904771377132055407836762166421625882346641907557918951684591159900792151175601378575068377398993102789009454818825988884832495309608018946845693901216987075494773841514410599012422175856957249295985610752827724455356196216089254663240767804901374873720287649518210926130897936402562210848201033797489235246935270161909694014133434042228938058095717606262946873218420572064307048568337893044579626573551387781657987640221931945476009775074717141007018750897695077245777644778174963754323056467734667437464274589198888046731744157222729522395014093248053390064928947475715079817070863638639063514116975312603589530080844841737441207157816188181901336952501225497473279855638216116692209412275002382639750093852506477557670258893964608470777950708501735166798153622113261209183225024625109210378801667987771646376219320275906981176889214599349804007431545076369612239414806374475305955450982150924495203257092768780937628048737532220199064104993919340355325212817629569438086236101552212852683259870541951091835468934345754454557126015715534858062509382415820219984758939306887712986946217015549056696467582654602021172493448291827204101752836100660905650217663792635339978319469228710146575644432659019586988442914279741462157803530799372020993842575632065576813014491494896467127920005798921180391918326578092699411829037455828205032040973538194546904971635197042892079201753912438144795926393269289432128155225405122591414117257936587572210396290809985989123187534716876191843032392634323105651027938614133867836314511995377923956192570268655413738244561910612881555755192717729693481194326965127662304961144272458097191420074600333744966096160013800159588148046639059467528111162896883069756000689148096987157705462560832182233111257584182356622519002070557707969185333668599323685767695626899197224653460649822411099540588238448758650597189134815335067705806886529529335859397432775095950806846855152778545353420763510700323548712990290351471445621655315051337912918304673652760300995051258093821599010874833613144448927454063885003749784537503538918740603090727257774924042184969480352628806539483652776425866512702920358033786238151729765009871944229863431122703429058952370126568226664175844368016462984167213697350775326655904733784313802642007642251368311612554463092127066406418100705292814051053064511319395867730123711349030621246173998547130349723551595035371147820827829872822197949746368341701724017413369115836469960045344191775775613519468837469060825042847942670801514439309758644682690704500985651744833352554567260638174693460796738430623186888049312144131845917950704447960908486488243137180234201873414153928388241607187546489838643674018263964020723705531826688068038512977746073240740468857815310209765190829364562700981260617582019103417289424887477948550921438008303270297274449968614700088620633312057695905174113343107124090064765749693618000999407980436798774129153933730726116460055657867498864330306517206070180003970842289468468555985403396545666509710203706061696568903616701189552117018426063365856786618267921957354074886623838892348800502921229512131194158107002418314013874651983350348773442515400779466763967008083992667160441132373789072972845807995287893388125861779186492869376600507646177809586228860781935586382829129250771052259761808480970632794988514781125725926233267261786298517605675449232110838549397320844276076943774515816623564853440140652196133355352982835991360116752846770964157123222106709169699269755593352593078483139624682008892015973165624809734631619843250200597587623139615865963725585026581454347001449547656128301192392644499392372172539972773314004160781732601325121911882207951751133600117128629762777885335904851458986919992379827181039623106544397279668756190697318490749982896843428958499960973746871074742729561971110299730796449135363625785824782477138357746764146662630168062382491134900175527021288579977734198835656644749587339563712344826751312777238313849552641278555455467680975480926673788778012095601916918109454560283794468442223060643682754697106795798581180873701802058939332175936098413364964110813560565839392080220919437050680454322414173333697932046448539504414039886662479779860330911363105286869121375793832517101836565304565503562749804120963007909857881751905956555726241519087405065786964188660764875704011214863613087502795581166807203322109238819019896711608016717066016668000881156854448842138734778972636340064450444932027422484568504634202500071449651345272162039605662722969550372447761860160015609879153651878174189361878784441489854090452732890633139730488324295924806312790355786480242859571440685008761354036514344433663433182032737219908581974170238521432082036681075836155412272908185295410242523021906599703926018951648897526379680543227354745837097876416592725506021846803622195087636705067964255825247183267308388119742283240589205838904571512458884464668238118499804808701591911664722108636869366800571832078404754496977358365776553074724612085250417860606606894892538033145863425846222790335782272860216505165769949805536970112878349539586461711015260519673855466358011471116492905260723079259926488486365709997881375462009480980468084701232415245082911093669940402328067941088879360355054796498041699453207594241303888350746606774222508146168265160707679105118156027062245216997669811108115676944183413506940720348612603157225420657809540908801144300440213775815908908408588577747160151849443543277461593838089151116766975725983299350852089302946580408215864187226073880746380011140002165540266739971817876067419435906389356943892822238625559142776820424747433160904668776048074577197312030950858519875661541190425997207865908815792660706735069585042441337424342258018103271107529477577031077688525095076847918507799980169429790141462697093160289125150190753496048528865867877436704579669887374367383238608781768996060084812260556414476754923939036783116732528326026322561535732756862694652027987339613513209075175759990881863846004274748341213923079374787587969899901400049703417071088712631274539943537011095233704769945097629009681352834565891817279080740511896408249059155390217775083427318713036811139216308614749584657879748188420445442140341119572046517551693519266847684937784283861245474943900865903439549510510027199214406383998380068505784874946469783085295602545231989445606823722822356339520024911885179447192421030788991362103417901355226283302763328352947964040028355252699792894564680582151898600216898989091689063749233542308480018280009964877894408870399885510931661602055907073928344717259722262322617315585695183300008340931972582303098461979611421967281910442303718205977616520338677403639243963531317934707939342597059845455114892272732983125832725547592698795169910658327163690936920243269306142354073682621585499806203632738410142880629134906976093410802164050097824580874621033723515533624731230087971951690323315039576859053188888007460701866581728752249847983534070371188122703043230249296696225550548528579453812667878145960518488798074516255767876414867414075501199897961323653474172964663634796282801107296749475353754210125742116056231727361151278799121072689455164904797078648187966531038962767680103891422298714511414340723014818566282600159045300374210173352643686179338848988339223665737768532671506011206947134331428491946160989502068459619933833847913476590264315885449993862632823912093717638973196710857102152824297793502797088792630615328551094458841315132736487403157356892935678326074014895415348717377701755781612501902817298287141945234558990559499482370554762771864469478938658305820776937458200575638885215436867659015866546179471789652002318337751162270926942191828255425810074074105463595808043856690194992553160262934154552003805850647633649943021682471423515802181286985339340572556689756255294972916430133832792951377880816986596114776101899188487249215234487180148639428343978518275905816328588725231856591504542421661731224254814821854349058602511594719715853297740036154882650608844572480680638247523557825546666913819312033502164984268106074228220835669272638585741689076036947326464751571094917577052505391935290511196957612209439334406086831555698008932431768803978548679051613037262871519583117976967770736567522979732125777596257021025057882115624050118197917844359958527566604257934194965479301140324091901303722441072170021209212724389517325900674510354849312864625111860855643694440607535495977103723992588794658655979016776474211097698213913685733015927938731917903509305134178708376668763500609739126532281558186838288929752637875905813287620450014772716797040262864541853113870403852911598290242917913202784826834567189966247392242040121724035486861191955670473972447896965527872201230893969257397434577256602149378896926923862023369374237070477966014816301972142527787841170412133545498633525628189447854132438095858183680540993854378078262549867037659586676490730080597634361674774805704472626346181299097562942961269123023814379053188741034021441221612425195638982204047750382545481271072755711812480416911438142677492698776490039288444210174087024177658893545351902338595868320301441549950087816931164381770023668122326313934549924701734591748131039481229590445557135163355671028626472064152629338169370630692764258184904065123875141647301761530224836510642904974560857607063203138538900819942911593113511109472704160848324848758488531157517392630642890756489936457770662271521934783235670526616187642415817816084815111126277539821128853729126674426912490973491200648796017402753979193288644568346532896790413708471291671497539469364031763926768628350467065095639063471058506910669529982499793702207090617541445566603367135606354849101706073446833602605832559810946682852874158469538169066566354128119890352744548886600110995844812266608510826047195126655781625647787928554196486977251363197413200776326692807618282305846973502277550260700650208198667828901019513716230639298054044014791916317359857725815508947875739003033039330115782923573627165989181112895599585397718389407393154111457798397274895216650597709119635360092335055899412914517091933980258709367199959501141279062764766883102366120321341332037915564477064489000301070041833126363122459144163218908112016758372756044500123320759753580400643313562024359859492825563201204788522234819493008841754351200692512777565003859714677566326903562666945763992714247482487326668578404318670391980061415783623443065154745734306425472395685653259864613617764957658640563108398541450029780637594756910037778209124150335035274840427487602215409078115213630262511275184906100865973134561928306083931037035121661965185993791899012813879639560928984783820139255574156455240708374121248784748653445191893506431439399900896650332454206938977597188054816780487830117444184399047135620531191196066726693585881453726608805642423332188199117052376035797699167095860430504323340833775917978460029704696716499114671971504635187226436109216969168263446749344396568368455136295933288132000366824081338811676072146412145146762595887027026682328624959936055666056761184327881186951640263700678271525865061545352456732827507256197442544079073447793058587932400600136370516103441700493457082718809700331322885712956034728946380768815641041340985052799584758212289069740449422009130137346050402616536688763186367037059054849367798943820970219900117448226589292877887759277380182861594052873089425269882672538069644085465375672544880456749813862235105163369209683182122565858428309209099943067431710671406111571240537572290074930559309377515551889398378507200941721428778035892360549639740169335139083843439547629128155511793780938514664437753127915625755774309716403388228598521693860272657011989386792596178730247922474701166857662241332243527646714450365155781790537493652292862796880724707984596683075363804478432436463097085731959020443734175923835288241065979343362060201426069804713815752154181047457051503164212104149125190568172120134079966659793372672618228542252193708787330396804994676133907984296448862503327538878395018919363455514785231360485712102614420674201190134199453601310394981301955771786440307840749760545435614027775180324939306419444961432412741247176573340432903430784375677860048823202953041736092801292832687280617358566980204951444234630135600224915311837997554569003172465006757165273947667902571366724934399294132908326750606437463795399144805890786140706551752962970942241718137399356892760159669423324759749409856321103412629662782219181754039688522605899091972717772781143693012645494003023420373406856728181157957797987412723019352883044974248514936220835082856295187326960002372001320429604600363766171610077496686232341807277312759482443492464820841925097993470681183949939800446721860443303136622045328373841751145817109478753796700473697933211452340816146238422941327189278426891502322388390090617561154227872371238176717007728725049651193225400004465505546264436251580371100661304072716652503600033085839130416713523899942267054117220128907899738797315795387048802902023554843355948672602450107619299913949259394359462567222300156047366264185774017272400641287484795641545713153678500565060022988767814628720533361424946306325086627268692166472308923010220507885769681679969571591104230408686679434164151983412668988051040874113433077342447693706087451422705134862066203985101470324610990892857659947017240971182172161467270585411279195781011240192003529834522260194203331539645570000019711099701028764069077482689438219137596366474783448483994134348688317087871968378892338276554427709704520392850519777120712694219119145939845565927972227286139102593956593833870283534888089230563279919980218174590218129421697261930472559521180535199380064281837428607726505897115220754436987974170937999702715109228721794684159098303770521941660313735137837730538019721420690305851010445545251441817337343641553450766952321628879403855035003920465813301441359378203816501629033874964786172360674859176565165572428509133816787598539098414414026916349026242625504231169096799809547552459131602842093366272009282058452067967120908073572069341996148245684664079088987966461588542491232287900762417467797710935142995172431535446618663426370755409129907038715493430134635047997246047874253125863354465241993577368630549552546312739056869519770797236080990440005981717899745360829939290713367994090780827494103793830324490301541173565688404861397168736535624592939071601808265708583983046343616071864456634290748524896152495505111429799993206481346355856646967180258496776890742406122905268972118434568101234277066424929686088992627209729658165212846686418047959304727341529714831612035313921960159345250944757310918382014046448421062276511979768783350868725185342893404196186907146656373977814269529298566712490148352597460326469370206809056572005841487496752086298049850956116389228608069678503568049345755464357088543829938825647149632115923243791103040398020382217628524638855230941791767636669443089934217162102799480745548577243666112550137807360824701884032091603707145442512183414805891044582179579862067065365218159776705149976926771305107601761386147557936398525686986650489173891217974422266527090984273390381564685399739276281646648002166265060800986373536778284117260686346465321771152671564555218365049541552390685082236242973037933258644257288437330521874516441889078197516701998983986963109025900968717207931513172762267707323076763842909809156274660118579261846089743649693096412216625280626609414348320412984842879849436022056792609376715007598876088090111362359836633748830956275557073462747404756887067487359075841405725338628333825643924158779705443369948724179491072228895191767734022619518952489313722548914136652934189486130122837843245087771340684008553425981069454024383253624981824020022194833628058131677455087657320538208988206691785535251436372772943169089712062197428734588959912029871429146074264009280593813171387795129166843042954835217600842409208401280061750782142204559287077834318339762952143339051072283499646148056589586640599171298382261862049474064928623285668868436807068888668090609780983366016975369267618087905737298198705789033226286780476380505377156190816390930043278579407234234014600321717814299853762133271392660523420213319604103833962313268255684001585291134964624973268613708444053860189978301786660482500566798578655865830546497742932561384897029182775880654103521635844682927334843165446793389632073652805746556936494846069667394303537290102771405395382052281212801959826092936665737566949456694362291565440565118445132749799754716591309010730944265258048356595527713468289918621503106430223262430958183622630534693083565235434406773717456041937400847429218493870419556525383018481451200440835011697960256673689383955309219999661732969119882467040567576228955263361902576164164072385278646521128419716077091667081550956935498808368684674595794531394867432277430349163654420431832615215447154103197840646902935886657306281571530620442358174163003490852396314853831575468876979076549458560394495023925199864179614807219544344500296875724625891388485317594717200809164683636628752515069540929728144728434716508987218990285393847977782075650791430726808546704317895456809777636386465951993002168789325293155427019276829597162284752691091102322053698990588937401510255664004619219211900228190779978995753423444023537139517477605678318139185527684642126818044244796076226378702062705565282918753018016206912754165113656909461737534979521435738424320433729564868648187349136287940599117264418568873218583056267678553577744522665916142026091257444302239031753697836503870624255296632695337861574771340305945338561922260240371525704807937080346691208095258506174944737878141851753222970128013568928471499257728763797692756771011456591416228351936252667384607270265131041894764551510954175580467018640114814943803346249004349126143983100877748367606547736792422356418676350657098688021354797091364167265736447833256518399605729974341137404587464465703568464360207987591109127502010433559934106878843152177539603582905852868012088210818418732961108010970229809611629138653424447853293748445167513325627883864444204787501884873095932270695402862150370154141391738616773166237299793960931165010773063510252776318797997159983571576737654348519088071987613896807183258130361785058564709599819242383183201833389939137022374009849296738263930474009967584493799853941016788456221277471616403892271567635621194267012244254931238371549857038058315896008804786101456585584098236555443318574267202687445299437985833972230201743260078383899655354246351174603836857581605709130864840347177432620915294293663790950395097613637874499761684754089050480517393064731810050458494080389919268478271239008045637301837562267531124412527239214603341809363303457440294733912974268438205933065771455935159747831748586062260252355439425204061995951457848967412876759237777583878267503684966899208014552471329714843296914818000865077917018769862732792558151942594525195541638203106954508831882069618944435723214575248898664165938070067313138511830567879172129688602466455958107194199201736713223217130702866103589695863434732443974067800217501949803944134100576323981648733258897247037732086670005952109763160787614344061487352639567509816473543603767007702386368568982321768452253941808337377425372024998341731691174044507173296936170249806790888663250090405404095978315975764532446559906898394462915789754331579152933907242726881584322567008088852481444716849679321984846704567895250362865032177375899765408498084708485921523074323943849245818285373096064273736106658896182503351343675129755862952681914600012725096681511700639855225704430551931235737838209413068948561037657732719690196410053486100386134917467967721355978365450033098072020986594376850085441975767580393728633213425849506996348051784618342915464536243179530096225991364082988781611903080946835113285950805131840737036767395816071454492543704779264552168336401996305126576863559143128586140980429819876906878227390217834357051798236507784361864820319716115294117071200881777965797278839306600500954835248149142227250812509133398328207023185835837191674531099604140060679981660463812806155570696865166477829169586920291991079389633546202923517373619685393339177426889558408668611650378564467388158269973301628661209687435595599574598848581546127085961813156232051379742852502315504479137037038124505001121652949606298832487004460142331204054298205128521230987578885010872050348317699751632961153964729707960577627092459919518868532278577738918373108433616563808477159955554850563614103421810515493742331879224811356294466348736351662854388480206469944048382948843261421318422582298863143519674823348898964460987784876844217903760067864630866375180265779645561031010260877312366867078492916539753356586184190840692760156368760921306585722335101446976650642431432103289237696152878105541433902785974507447934262978447078253771532295550949768137928082429554358033557209016899485047312134654652081570359921395718401071236237810267448590412823958598822677260789489854679499388159330844692542784737381160730146950272391206603412672134008862586918359604343749399104193504542261106172420527485815708891756182325798928964431382038300933340904660952251835514766981961076157055446019861777395229585102535603354507887572906530022466096092763840901066761399982628831625050442202573556949838171481058514656645533231461645504463905030850475177985746669300518852980858717828729183141027524107617867074621926947969322038554691334093815677590665555756197103847315308414627332459506356136583357532404882907510079146346007779423373971389960133067223119698606716909134597846129956099443804355733999525246935218620978717235496869639555488314288868027170683723759466012760856205757984496329297950757340336933459277117775335757875749228641137767780929169243115431261056414204069423043440152895146620453459988143068110857482272397119631445361615035123129955539923932920956324950690446683306375906349808494167079673992726649806591362971297550383472858454024082653370362689535906402532926462536295392940436783752539826397908132822582515544829731505706643723325194331074196879949235699146237826255954009979156228400068750429653522184958484252005579420210220865881417115969678825898390090753191356868788610511705919870430178289701409727961805631596017105375176622008907094016215003291433164386911387465632692236797234025728051898263827484149547008341591917518615578526032729405851495125574125406965149433460261357824908695815684404938586174195507572125644541591091830929342042463728508013478187723169063903519359015030480148840627035937157218089399012189088688709710740504934525588945115793229119013751414374495331361487408172562037744234142651835744268596757619050551277734015760875629943031090071890413325500083300979078947953005665454261016334789131458333166047203127672432675650043738528330441589663038189641080778960433038458919561490042816132819121539370324481417991354650164136185154722466229994380788285204138845492492481859546588517593496014942851893098538527779546099048070231032570003614663006945868445047113202584464809639217611586311809316225299775042865432271467590979149382539166928726310818278852859334448161136914555538258522210912872156383224359920334092000749288279709905007497886276050848943346160133571342057562198223518430736123773896406797188764302297193948528633305302200899495663628507098991109832034185566542662145241749573918856551959969854603092480936203782443156284176696437078855533093474132487564855370533021114488995212395559058215541928742246874881541786044760193284505694021811447927063188869261598785924002893588084572316784133158252287242189461731060524031149929241371752883072898899165613187441721210137373171397492115492349666987388256451285669909255066457869451083709483470311367583456507622984503353164050682752000185700626720459070346576398779022759638805742581415723292956689695366952654082959656814040796250855305348899033365035513326292396465882113061292927359812967142215042330123868752129490907144542599201297228885540484235214070330533222101059208877463569223450723751809950151881698658533279012420830358872244932790988331081485923638803707486591184401307180839356087416293569788113332566853279738712052695709435360341684216691442084936316402139380785449490909732112318208492509661858431557205308224170401163287034243909118032045310045545927604683650395011794515551038319932988597796591459906336556545337166625834860453182793015320354826353816946469636055052889205942704586441145511736071556075827883826167787280084286866134703991604011557511309439329237305075174631021338481572827965432069727823958151844522759930381715904020835041652468553594149253727134725071009288513687066459957596771309278962560634817479462090895948855789260931750969622894659868194587214741625379818804049968129742292043111315766890531137052423446509792522232486551138935633487187076012783869901460014650753800517759522688461817746598686301487723216416880102793212688451573587482610790657007951195420342791698912144345989574901285276530044089334772789144178926593144904199906037283671087023242656562873422811578150776229849579423280227475444885838493529115212377106763021844146096110698551974565471860170571955576083075323100232113238523696147325601680160286655754789617092203525139272789294890914624035372027860628029147419866102169297189199864996982729501649362865678403103226763880550636452152380482254153170162353657413941221361798297756352728826469254448225494772098749299323004555526441718477714678344193082964432643459164715234167111528973685448279317357393052227345763230161382525868895595647676162312431896756377015358366235956040070097946388701886228145705061104759435082049699127615798147019353183028413578255135591864138494356004455246000413519932691148163433691134656738972922213719325820763666674304394267921169099667885236564982143260273573973321525818830053642472282364160816411987296684788806087908185306843975181146516751083141277129338657119353184042877010720094272975068020300423564986276257270026946890544620119546215094167651603537562207057879464904196503277101211519543540360144677862037062155078468018345816810566053216831464870738738660241886148146775755156655658143934514166296133369861124556179383377510948850168802414488931127218988487300160153962880848572594059641162679089625700125396342183831459365468401175116088518360186654572238786294238485668914087858527687133266505631654944166247743923600682622836813419569364850440714887525147100406331630456555684210353486083391545629731435218761256779890418314936732843366137317388555187185809101184950769860079666741840582777057030200198262726423530132421225883716651460249252539666923158441961951703327725562716604292232591172752626501259201188053877399027874952248036510691999747041086798442711374641947686879072358859485658126039669633076425304577020126667870257486410261152657236467737044621739326076092455012397207665819231272387635032563760355900462526213291100004547318363253816179610430567537717789775200664746378598838589673363518054541415540239903352147751855419014808225141905229103942486706639626139393466222625667961967118046111990915933713024264596913685672717669578312018772944210272019745580355377589640046865791552077526901817024199067087776634617322193509348538512707104355293507354026320909817195952993730762196493358514143392878728387220188613807241575719225665042528367081766810991634264155012365847173492543522198594679694320625791514548371575466631425302606500267345848688056181671578325969471459591321138970367942689057417892438470385280138498268077346925275446385588872126146880918703571336728494279545174089884710518462790677883397046679139124980419703332228338736383779540088674755445745781769476829223183416398054420739293172778454026979695110650633864804128309732119133435555537502628867417238912938609338970991336147674766176535122054647933147543330574648991621897733418482372343833665344990325279982271471707274257938987431439761596340557673091224880181717323073893185953033564002888517579041095614715574775602722632173359992030505205922091056548900944545008564004665135689856808722336589576746635529819061392520825887747355449649158541880687137708041340466415709819332007389108988289256738037327874564755869062670725632662410321624883888602465314088804105624589514293785812485055666698528396928573052790742705412495833840175163716324868528485350415525825967316425595817017310842042597416670020924609610559809949197619587524284317018137440689205351564511099454770899891224491965119535170878855910074522110419907068772816392450500604037245792924441562013053216622016448178640637765082657942370047072740603871186286238630197865129175150936662877370924401590675327496735214346534373628915674827326289103628816134321080532747776679895334980713040097627125597024517404958427575629157961373975202330002520380747968550074208218153972092583418796428640686239946154565372874633733356212788920528437115589883221249694457411875488614771843817023062449157997958562518443538854507845700705170547820014842401549034001388917942688518891169619240997235590472930573148768865231893853538141029393955456768028698228585691603799348193335395395868094971118446704204050337627638882275924355779887033322712006745218014346449824138060462933090968390168765191894185526282033309897474355696079561488767034749809664839326854044108227430228737297061831895495581573886795017423227754811587747497011559476585320354854170251820658593685248288559720248594811135850198575480206116052026007741143380343479948713285779897318766111702687097426393179642068105760869616716378080657721663191255124429429499679852369038296351807520867542020142770619716780929277977441752784707493829556938043193043579345592752850218116709980575103871708153573985719285523195565180262191061477364812999237092518467641605600540457760187391994537609845224608152970374075625052478739704698013674607093015809092541059368738968140823037528115113497908727980531076961244059246284491136164781078197384507857413098950491898146943963469940278001696482181473198461806998254613768511819523179821630583837409197202146392810780026279495315678683754038944400418914097136118113651668101670917513207008048116035717164256605006486622184411097126689255216089919277235800531535453224194071626184488966490883838330716292796000148109052332556446971572680877388683140328364699914740946039153839140114095562472919747504351241188272387879026842003714032373228600201251988205678117143703349772715809340020893306648696273116923636957104973293400051092279724835828288780741414271062255038846656134906186785510404112509112191617786065672259175828303536745028094019256051424577252843256418574460550435574952769004907575211913158354991693859700042173196286758595712418054122377882058726100681165372442234363102441993247155675056497680394190873585575647546459920543432778459636084343160216220238196826301768508055381757672676428331741040981777795208136727940780444350660163432042073341895591774729966747211644759079096495702845967710880391060655862892815760437167649877161489318234472966979913203079497254992807998346221943932057031238681262115475937574831458882387478768885009495996631780139873264961792052480962079276742672775547492121877163573799271689969692413359728826878553341975093467889414536449923864322126403909403997877816774094667552058630892422673940963207562634430661681579083938290326364389688994332837235148155111191270886260144796735281114501340164812188579802454140367869707995675754972915313515497960026239940358101352026403041561232211810467104176673327023497870820279386909809882608407124082058328636326534654563096465534281028810966067450528858692358256399973129152781033242569844674364077428169553413468822169046169218736860922793871019571819173295581897858466023537913119309998249205449831566287092381575508749825266507994870599583041792415247277040848617367751291690896385770970290809024934165570854108841190376246276724853735430640702213572689369464450248467583311168292158186416668633662120853276274436339111134040084241328178868739396020040213765162530875041398900676542578818258023054628348188659665983638076677124893681468977631725832640361230868585947071390694016320268452392078309633447130253213215943690198099733716238428626594811759040011710958741715373154543596966355931298700979436984618811123465056800410251666468975579524661769049250002724275973163128847572421478548213490710798278237364310549295815490145723981664960307878546579701607138316094782877930512181979184747767905980037729713616631562998775118260899268873365239001630787496669438754301199015790023720531328976004144290195171179957673917201681880129140857363964485977893897818107044498071206947002969910325940691804907512356138892442437024161658419780326994283528229187028844433088297153113857994080627376339365929157134250740468077268459630806146147816764651058476499257476071339168550508342685180809605235627606687448571986893125480396160805939307203675445770938826590883794141447637791939494988770307258515584265882038925606004886784794291967338926680651358950809831768302980449699121769659540009624557636974314990381791604523988166721367296162600216535627496913164926546139335793094861768823330365368348143031329546828117387447191056206565048350553166503103677972911978389070401778163398075711880980586877248547126323270241104267377156343841761161164868780679667162312286959152478933556225063731073518169053119249338091009740462849750477926987336179112646081695017832730218728485235221370000935152838075514077688931862140964378626570755619288206679274799929322757434416149477565462893396016742533850199239650025884892337549214909762292361237699897020724648291830414218949823772138848682290189002805583771058169294468970204722184008126155343838858062502702110871993274610695362950678088637283590440967386123336721976807520220144143736361478465260800411433053464057130011202156281898880348757733028992217864337965214535062025699734768900178385734531945129842888302927248306405701181187189046624387353121504984326706928715148400030704182465632251249562332475182285757648710310183938914400800629525952084704941548398221016418135933567098467849710061196244057880289766857315754905144129339146158534603326720157013254347272624051637594632175022218255338019146305317257326485598103703772806407894617554972597869391207778787905694632238734248798784221797547227979135224795530878866525570744322088223162065858793660106465913976742264010839211203992155219609456503079882367815457804744916501110988078045638242621784400014710880662627801004247705960527927440028745204378211921758809090973264688054694808358698078757366703330226148909713925194500650649043825346111038185294937974532539076224650789079837098655349266231275694729986111880939112197000699742026658910553631632711637153318391625197274576464711221080737851028305549115731589346912187060892593088310885444052845977422892961697489135282006700667499309897654132980174245626258699189850013440618044585281314592590222184063312489209098620326245947549709510654545269839714757968382370877269621262179345253658361362304744630586113122801414399599161471989923609026925926984618918285313592635777336411735802849945980446595291306141589928659240163884102942836192474148317764853459769052516489124982321971841205707351378957498083436247585923343171655897559347412518223108087599361519353022211779136699694582599598491634599065181976598710583117204885928058265174829961423188183002368406786445656040209325840347276809724518490300373473516928814553630744875653884034014457799597433952266413304435660210037598661819498650441724458407188998450779524523392851428988062544132864446561337860436454117662391409050834513819707599860684432837950187437811050517114756559247840517491123583272989115368994678090815948234836607784324773152005455797059305717603279996992936681400081567208681838139063833230574646597045667242238066578208245124007582287466119585653190823546831467865522159102958467574096906431216753792688430230069633190269750407790178106755693702011118727766364664897811949992994918852219115622986915411241639980426664295306500462024229842097611917252345347017545035944519665710878419909523526850492986165335121139615965796441134060621277568867800747035719501270093144786145927348308724782113465375042199181641355110372148439055843021941733084105693700521571613893862931380736174051801179362579075776544605823091558752374701054838972188858297860695581597097455270649180773174795681293461417521178343463939652048119862330078535010648540633656805788989630476541929694868734610034048696341454309592997711705174838863690389822341275008682055865339868874294711294394040258055921527370069851015026999522259464532218656320700015830028381146063236289904955365757403612123825319198112318175288480024563727209394542499283926688428329289881117519051602926392533273282018653044989875248531450365312699332292744438498588751100045436196134037079238170961587305445815740620038936899967615216313982982238752116362555254117317904786208522586874682743364699098975993956595868228136059884872600786880726286696585697427722934689807649136861907763755754806112849467189372248134757838109556438366226803738543461542781939797068361562617696400423534824645757862701900212200965673056559952912615970084950246991833687944577104949633603385987096360581068781427040342289937323073572003342395276097510513639043552659274104968717475153319148175950973724819088668457726070625691488830115954564055397810148011068031703353980184610049402141520132718635075143030388366171030260682598627210427190953185231413403728693979207078243640875184299273998252151967563970406622296077181538698424508218792373880220327292309550313176339164024736308969160864890358414726114206831207193672721031589196460562204360920655245775491343592028222181190871919893973016833685212610721515208260028649262098524811642068030701533440387637888070809967680077163364497785385155489366441270386819385421460992425325197900760862319732163482369488072839336860775762625612275994228941005441621536532422644933817677000582388037092320455910085550637789539577397361180329216899811803284042483622928269193613712866329102811849112238918748612834969875364988856141829418336770001245796397432996145927279778346582223374967777543477843695097288743217407400473294324827980015641263695406686795460099333424228703121183026316901163086766786888546359822311372986218524358407365849756509541570398054673746433558333666590092608362175126544292894010084361077569847044378254483642086094945089310859995823504946566552334483022746465048477248123571101365604866892620844149493622693055682985131894589309222453878779377723877035620889177514295122982370788219660636427826967956671699560115421932167392821044345984613638184071569154425075602532972214456831514046397827774596513388102077950104789695195738012581653893072546339499925190500214655302644066998332962739395910811320520942766502432202173370764063473181192113251630149842725662384218706883691030074922655414426095062846814707838295459631982624627502429000911275869525239926042046431734537433692931618093594793871460289237580878658922658171311180487611810428275226556522988671168141383711897540581936677954993037560561868108742317312222033292157324018028363685725645373867098398787884872312717376866206309334387860830028093690308604199391464891224184545416634067401151052271262123302482343496141872455116694923141825911833012580240807272948336180924074199980675985463261230970169395265412709197050997119337396736109750586871979244419156873861731234556004069219402841185415339985060757619352996783520578755480022849615158390990796417749672744465313792716912974634779789778920729460267650079013225525663310405441971274840701032247761077251189560890591203983700476240649652614755952321568718871688723117151224032565832673233142378896518953074929865663504298044006710867333094824237528856954898891619679316248712017215899702330657462564333957889658094045064539409493896736630110387400896528986533561546769006095170527036974530766485884045264129895965933659451581995608526577959151987395120063019620041516108497064804996324702096906315227791486059533252715277556428224214783450290501121212776695716486831323243042938015810909135581930293948200096459559825648631444972124993982509883109576933738486420666244644071030063749189091262357970032389066321643088634694735722155668913060036765327881612770585846718386790659872557482877738832672506802848394866019423915898084290713648346391504832258945582675315440001761246221665459197797337945372713396756689227774957458733950985230714193789894957975319149023132237004315962586905979989364258722860044056799505635355360430779268025068308568177547106061533541456819588742676064880580837836730370812933959997746075863470766161807968443191091096311650073904442504857488850443360730764565562549777011333418948439083964941488840015863583643872356876742007474417781308617942138025766682649332821325180301866827032783955744827200855162083385750835807713212049320786252887854761335673862039315043748263096714078998262567480359120112937569199673734151710636309584156943401922449819313005109845437977244109330826992936472614710198513299651401929805448436217579580700662193767109675762064397362128124286625176670415158941594180984162672801784099373920403411702828748068562079569476273414099849272078021603801213031494714170558317771453142465736397760965375318009438522408226044662151340900342109673729943432801669644809534739519733230076781971253768229348663665415016098687509679186580795816316920395185287440656521985502206849113417503146781501640531665609748262646535322794657788797887668149602329854192376276332230848122906901720564402780110658552634972923043473445344260073628495469098343185740417151810527441421008225681079055379257293013021326637935851076979353409357795456599632301853659062932917266890975128921692236387358525536533496982449239330053202479120333264182191645506667707571059053876969933615655820453081051771518910933680516926426295514338683097451914580930406228775461182188196965642588441381561523373702357546109831294294142690555242766904272498065407579273971433985532077535075571221189312225890788876417728767663596887825469187577687898639161029552716731844113145587580130970845435509267967960931993875952275943254451308614224688512875368116391038375912318745405877247349626249808729164288748669937358732907623330605075508616500147071888482803097482494786694090954223760340197468385299175558258334839053608260947008642978052183044434070543655057877253348599620662474627528605010680804952162634819062439986887437384816499157489941137378885727864145736352854121185880983167053539166435645966556677750563688633339092942190298423413970038445134541874041092643774166878290872481007212100892272296229716404557133342230881551598225702218779774846410196180002325265682153282210037110865180862422602204766553600553841443032910294905251727510025527891357502523110635029715681555528235452272145936814319145644572865946606019848046481521690401056600794325468980770985662053319275942645463778320835595218182144828921128427355138516120411092570592667625505873097511331376329933726355552898454712468807399708402632012634000736852112553218011925290542362592517354211190090828516702259099249657637533206553692406907467121238659501071138442276290816162814780506376672067997442737171636762175652771295008494203376462577606251864473871247363327142951392497538432874409449832727628102192808292016191474492025397256042344496810324374617702863324139434157953658878349748101644504107988589227973212562186801843131228944729987441901245361654990712115598648655917638571116267966242604342572161213554715192239768273783761672189346391046998810882363232174050545745855602468442487391525870753859981600528102244880564296442427093054293995931186519812026031442828970385324130609339095653011355814184884073017188656966520889405356761282227575746406806351287079159946341492869599885698587497139295762819393880402763243349959487392882327290696778448141428315071152652065330953151377803039808878544548193007859969587859888617788117471933710094058906712287913307139620703432335082092521289162402090304166418511963576504196055546307560094332203852233423027414183827869241628463038538935844276006397794867066331102516406290890334600817095714094352017419644676250784574320496826710057192008839994154017861163895824420111898181684296151604183331697376964308262247959005537102980804863753891000213815043224471863695515700474880541059503393355694888280505974670190219303797877171702225820929021218191877109385455257616626199268229859830484534816529892365270094673730232600266875716414038585033932667853857499552020728448829948368230842746559529849104863685819995720633755020843126599654184932752788346916716681302198758722648782459946932181041878111955600237892317401085145382498355582913198398440477250023150544914724576217515935825564305307873761822410375499568330477884756257789084043260095783574979960282643884856634012081615725023797542552391635726109915094330587259196712697301440097063300647179435439105494312261815545254478908108712768115594281655814126462988052775191838621861612174962168271270364424075218449355352718095053711478133925813212376952667216186130524604323089543513161958283362361027068159844960803180373485762047749228179642913463645690483235940868222171700099232742416575607710276076416490876296225377598659413330835973677640856715181361623030709423038095483828321865186286876889502235567631824998972109882413755102197170575153362910271273146090460604766418669371562116118028710825356047003921841985550213887074058277684584850185478487546349053646472271741384583493683717182397097386845852249742819096829340458960409380735768264046325471052242694038831051534296312143900621997877156102054832014512230155596307826815382340808300308918120299249015145848205822147458978734006300738908181667423486363113429689494986567080469042875761138741050422987846640261386487520184268425349004790791907289312247340662155252883587141746519412009586249571526985114122957912944585927514700084793037335407604994648383637387680711779514144775146600807573347879210948794624509324161974313519659666838243375653114505006463000315269941950733666563375720513016666042731087793634798030495178982214156285312390474357961464996105809088893808931909852446748486654841795982186319896468092369464554388607890436491198914157717229317205306147721647700238726438330963241670381935840606521856842583922763392510959259762763811122482071674810120267414649298199360597194980537610880417346272943320763450278303010356423812443793752791347545861408102190164264506615902847504051543893788240655040673985987179371347438027139624469604143979248776291683503286625738932515421525685394653497993074538032950139482639328469332638627647391241943359447847910445421304255465880011913258109725314822078044606503102724965410073634817805910878279294699403040714504641492997671195552244481299332187013254380770183294726670752861323242594053783712077781911802899747351727204963922854137923288515627844112337235778245949751967527978785473639228405012369845797487268532470398093465744988679943730166691252997021190830150091170892842243064194169191851245643976352951964185490192099106759199795893068299217247910045929684107960595354884013472882883746925347714895818515617131247525732404851098846714670062353741279273169577689848008033861057599361949903019778372533046995092602561622991746304173721746790890079265770534402541996143220076107962366694736395232271799585425979223105992728162058321643989338155901321734527293348250035120961688131008117423045119842699073820125205327162233562271098440199295801071329784347302053714945669204474425767645954463580496216100744246831714644175682739374168034462730398544331738794671904826592077347438151785874694724531765648185428902831744061866740837915114382893755586747035078783892016577725262175134071825280753197366698453753350532312071753940783846739478619698075441981771864757272518619066466418823923765728455804629988363802343372974644635746367465166681206575661007265714716371915510707723938001177969572751648550517514799400224932417563491007922971686106723310946063308916378536896848060982329197874715619926526990007096255356373573475639023779374862605203602402962980493549451457601116212686086365393845881710254817440228941596530766360170305095798374893489367200572623350889114735638739341696139807842483679315267951618465446983421788778132159608088109289848075793947325109955142516291275236628571367566234134563918795481976252898886444650795118579081380098770993719935644107110234042023931819192995692109118754740171603977643621631052986028281441362813022058586017847934105433688116501008632990148112624409942464647160956477589406416352854509673236460087309541315321331414675405076556542556355731751864378064398883100394057226030867475694112874371237305179366028041412043711777649875534024615227218181489554600686979287607392674437985457321171093926969199173331334226231247622476271779941067401726532890612586503301328182912252198379362175148824467351895009396418559294381839256438870519053916155111040991554692894338750387738056996479832844104793483446264673882968594589436542398944359712597589143464000352761225770191275674893280269824639123088596204877854383779199351277261257521970714445214231926012589347932768292365050376644282694016345876252641357468030147475014902951852770813721624316721865092352099627386461678556155177796760123443633897587274103660084779121182438261063163856698589337700176116417995387394140772591700597578944070676270060584533336856452938992347096561870083602572603925082087595371111143145723156098217094827661615935516133807645927397642791533154872111297094573184099290146276834150703617839206327967610987250864165063291320226424796364015009494986248906248536661259133495690298787408148594634106544274987480123204745640911050565426662216727865663459543452253021281953756160639700534232727408434147286259515679256427338951364701222428105203566769909571521429455529681522893366012964138899264872331764056839132316814366146886747907004997840217054950118663567760853916650336770931673279947110286383721141186610311647571072079132975535852786821416129359085767998135974885051337356319102415254324249707964337872386852777978508807762549697668370764448974802740044873414668566740136446038273855695659828072118554602060304655217337817304414762206740893755168886997697078491032630782921686046686191721766334897953322381118603480794671166415376525069995229769281630361728529530822520183776464612304063046875026457949541572673653009083848316702359873168756047488446664980956494402906850160944143394470741938624417826946197111653165617390668011789798513650879337378636864865025843907245872331240538701321197598236829639761786325697767192265172396727079216772108747952741212734489490723794634665561984839123437861362716176997267125807082084922645084203972491968508048589416672151000152110435084387816351198825353944103167415227821484296864699077289041928200064996761115627572762481572873946099412199765190521737464895465562212592653566279130280715013425592055885415070174363900815102661938699632641196735657048937939968629441429589576661435286945727371102209906276022628848863624245295333670671832196257845982410180763976581407139225614559814382124680320978485885028606902843869900582366722996342358464446173368284749521065788972727725667525762544053285158909395621100291382987381331277990490968904414170128935196487262211734361236130261664976193377477299968588909357221284793159454526948550420559388298189994401156204801189032653394526154469280749812143967332907433063658177557638212976826044359678216017038168033750788485027334098688002725927647719599867103455418472037691974986119714526838656040855146236680613874195196580479484020717302181995130964680139879909767352544031221979823017788622641234922760237065177398535046423452479571580613942580860553731708886660779666467512621135861323301120770761549736714391327212098050794998861777356481793400379219343021654260723423952817246345117100718377008632949445498517232028306712874278697365838422868247804251808266980894743152460261042205943949138030812999587717202423492881265989686425732794224150865366407807743966918113386802117861660309161880685960515777731713176489265233923794802702770535517006085548283356889043828375188957662397954792894678646537898394064729947162132454354064644679966840882742915374668877969835309526137409370805800439535921797821887419677122501973260813749252463846958663650206814082260506764610467829411994965499488302181430641991054535159143860494655430073653857472269378110546588870118095319792891528827673715359953108729945077340318810936498002290351491481362068905338198745292114164882422281979334780008908021674257162092739500253309994267644260032463399337961885562350284460024573181656582336124820656740024597548659718985117290212426846629243479798075701204327878919411012878306250691060485686514021283586562452802499964662520669577153514146399089797364087766145406869182469627625158436188475079614161855620655874405092237959819582750863767577958878302780217018547946943591236321045860402594822883370164403367659496004702801253845080063700354585456723262089606473554457232799646514736070802870413099566473425595822083249946527074873880464399008441508190462629568428669271879570360677506646802942590228594340343499510037885086503288767659774285444256933112722839693759713966460724274765337914183400186893992640994003017881797912125819346071703825015911492212907205705630190697809798792871867136925033363944261830359488003914175569861365145233935027970538250594937348453709662675071904366848310904662881038666894189382846575127209980910154792009384399792727557797387163542806739426944546570010053584266782460234544797278822369254213928499754496949755931276058882071452904202963688328472706805640127496658905444214479004679787887336557227149890130636066080758082002745531684339074131106521799337013105070742850389742893020486178010790374693504819345015120731111542871209779214721727550425897666736718246784899893564398261920477482303242631390733245468200635730660592490701817059533525798347490995131630867558882218335423498524627403997817220869676732659303869494992139162450586137809858260556797240652785765923782689409112378348032949202524714961225274972784226276827089814643605936420148700236330538320528900670331009112430801399510583923894974953469547404929219152906414633491321580434170219059667037272350782518140442154900961569524502429021199333613760489317588636407854656427812870153977890005000005402666723416519163841170659894814692296586613670649502097005441873381934302256872124428582291187327253394004928784949992424240772384033252700298319117014144934336824480243843486518698674280855054196402222935111060517700102722612799807603771706029110643308309897196026506692362352772835064590528292328514128899348776852067491562759255310903113731647147043133673620671238259633418990624409211284340702035306513160715170199051647152931868260778192998717023454020128517570850400261869254535205283810252556682113204330030684014948955639650965078427969434402083940315338484430065680563112021602783124888749644882345054577485176654220838579448522120665686861183469335381481309847000098168132760153846003945278244706657700639742738416393676578789037628085328781445884743073049223632518354292366351148193012984324079916617460684275908056200865361034645077254931477822617727932178253728556340387567853149503466516165092023180695145731031655565356111446821671943178874764885805002092324908241171759582317470652930248003437639917956348387800431846049570304545643987657926482913464415840598773258066928612486205476913092874202288725932614038938129466800929163574035596594759330883828525603078111366904755588149428657467413748728709346778509404369340060619838407480408382374318761701797766710824208148846965078143477737764999027288764001931667766184063835633510471612995248943933038513579886885859261485597945267136630625431103462584893693829036041922352330798446033825683316375563240750190500734448102422799043029277649037274144073563440806247625312342743763709276462916288565447507803320992582954179823857509660512756465093628724427957581138962405124103077269554992486570658777368697539634621932254273968541573289168736146304524009710958423406206739867076318126002637901687910923631507254592426569436279527043250551308721000405888829222146224824751325398752122310335446113685304878048025532686451187862787710829831412034029282549229146428149219781928611432811319998065906373292860803715287026732051605391905413009113353062168199663457197698249943267042349019950523160274518095956064488780885376946753301447119450369411705359341963679321902908311954357990736250493180172762529378468607676982056163809303285526116011508162885249319495160858126753505525500459790651638986622062000731748961035360779141137415546060376972164473125127109212954655688089344873110261351714745988089359305663103916510226280700697778897713689232002882607370208418215453381468472014210591157037384631008434851814500873264806179054823880725218477609531070753728444810387692621170808941083914968244128311988613805919079826918292791653145721250285768189749502116027651882804888843114473546178073340731697123248567335262252255769654374265881116423873927306854904541470444440966329630501507409870842243778737371957120966812792950085665304387341320113176679304279571707156610621219101072366622915514372406033067038520766290380204787209062590594351199253857490227204304658655605400511163024470935492033259685229751947658887061372935711611562915366531628384472790255039457621197144153044216356973714554625253889877911048304966304572933966116930385066688852223741890529306383260789737538292628181510221423069157182369430870403740847583994294429410081582328389204654417101784736068403895773514922729683387418244706868063315927020995223144939001028549377453286651340229511105634381382534618008476632675064086262475559917677286786333280579122319778476870812199802081349784631261591858153126412227876869741043157371461875426896715382308898215425440808818255549560072847546363535874571556053701462158764772166221845173010975436763660493597503216055632682388359431485622979173825980380897726472139875463473542132684728341014954426436481319741259513768256474892051844068477944865954489477886027385252394702361760425296618738584577362761938864720055124580103509940248973664436679511447118810187612707756408665706711834930683636120014837396414153340117755144556044686729263702046970774268993182003978307332157820029886294058454005318065584255517702473467455741013273166450630627281836738279330230299916564038846929290473254303437340432959791965674840918312713102229413686011264343879684233033227491696819959880153346862325225316145422800350626452263685872114096534862006880954191219661993758890424387358516813080274632781667316264115399250642976014228878202397737772918436646880463762323727052993009761131305530102925144717289197241258507213154741522616782006287568087575832521747619555905013908983396426513524368279986719936927517196042635952004776337048533014951541145418890623527930544234074547217615222799393193700595845950237323629591945086003935280109481236872716755031916331305362895116937734254527206395553335760426409073883384127101201117901560234625016299844544610482116467423302656223216708353674692526743029038382384903108202936893247051324006303329150582474428099490479030841997060758335511485593092589339421616957578317006692074078255614674050225414127513053757636167939579403666844581947901440052791072630087907306694621632652765650525368715093444722161381061591672108108666851167574455884486743932541430516441153784398828490924089202659202434014262312182162243449951711256326969435228416275441438918721737951359095064488742468721346310817550690866574117145956453786882428047676410901950951895515939195135561891034210952917415371146911022751230114909465442523281325304899703898360698304978068971138251838147978133083097412086150422287863514322936592184336175635293505923081762253924838543940290296207610781175710817266849152161098522059729855936707258932497361807773552956344730725864529136891419910479758922794388901198454153925159167594285420708384700797090810021863361738761331842817847679896957813761379499095677620924569406195305334816365723817305357627788705034867565183308682636839963288631465819559257506507657500528769652588652398479681379218134971508053855040060643960388691302709060268427190286413131128855757782184834269751360352477927448850839177398108715089960417454530166951078530849102000697933981612763582946671119525510016599354370786538431137159069860877803470557963198808940076534951268572425070339597664379724722359075023914082733920167220059815595096209881454753161588465087304371092225973298520791468475997958643909292349828386784687899983630043136839024535420095631176292879191646491541138779189474348481465747392484510737317432925445739742176788120706148978397478494240870342001684424028086017099344766190358113897636951682350239756682907921372541134591690241422871253450692417902716015821710814368590840650498485698835507021653591720369344683677069095780959984519219247555552457697849262474360863466790900321268316911849478110164017158657685798869270956773548245458921906346167761010111956587953755094477033930936433323215019552069207422130119198088867221990961776157773645744846949982248992652773285740319153194177062863835872458464202031179038841583953622711559580516111616662682837957313729292906644075787056621965486894403823472214627224387698115800595322031233275253677021608823045124275868021989740110246613781784642732331716288186325286553942301910409006491378930280734523150688275788929216987381583833274577881373614448814505755167601429056989725042569164896542525120243591319791742916626824303867467514331797762731412306573222518219144591919885621280697876656008660250753167625117856388688939379770110100170382914770764532753202594295612495397776488216159877334284444201596607938588740251300192829972597727023974494845879466523912322479908447941328521450242884329084160505338758518604241627023431787979210158497313626609437968977733678813277270141505932698077888531140371991743392740695007841708823955649807378082835045109263454833412619823458526559162727307368950923551372734627016941543815809994119285903296279148889060012253520497792399069779004888619030913078803021268440296962867228558548173046929779306767884526048316458596271707662605183976009621692436860436650998013540027778293844525300132601020540905677981509945791854353520912990898229395083930756997907756237393622222726212773652712212054189307583101236961714991328235397633668424194424027895550269047871313462223645146875037311863364407030057616987617139988770925427348390398136018715275815255404462377531032818078951205699243699944321565319910150274787658643140103784965905983735897542962681851146181100002764046928546576132717907475498683302348350496801751860094609223860676690721559125323122142958255739242970219226999589706140117760570640076118820659466633830350413514839962866068894113136915715585674804034373504581060789964020922175717265233385336524337652398363888112260316685855604063106299318299893514153676211580875048118719322864730506629917347711749154027467545789942295398480332505860330002481272808707672606806198428126828948602063346018479574243587942620330553375171562464143691088569852878270448503341019134507040880374443061532288953227855523285466448863009115055198405554354828297416130001982729661761929462313705121641576741972087541708313970595570191242144701521932011185409557557548143300230275053667669780598083924487854399103644585508009511978087227392701203464962874409609168767750831608947440250295177469975754497111698014886052049555290387667617214169902341490120817990214994529744351593693525734406942640278665519031915503735941992817261760939181299689811719214510864757615968818364860267505558470064861227745781734762646436381204878846469677351460935219868146967457290861424589132451783374085682442967065887182312344854598339353716603752954903918573474444048131177078192350693948817450593408880449207158065595357037412229630027257100872264426461931804315505307973503195150775681529583782996530540843958968488391218999452494746146541966970079152001065913310822326299686195847206526511103702122252260964470000381313966070639936215503388348458800951023323411700705139360748651646402808397323968394024919654463680963249152241444633102697290008394835749166628905941458594846891445158338992401075992887806869040267127511127790523923724094923562352687141242920368131860183136130260786125383617146532800107842865026691163291312936077834443113944967954616892637568295641670905405404166566799771612202841727604968280616285670627472747841772579220619194826335570114797827064039248746851686923853479341210934116808145322099450703904231666784117985017003247828391198905310630338671325566997785064649205064609050686940375611977370663186819560175267222439123323450724131413019653888895959565358616116982259878221306366353499229239782057012612071855744995575825888830720867098184124296302691942363464425300678166825919654857242152279703432328982056958432308629918956484962010144461245144848107917624134085255340251942025063556666931975752743828037504742978004440663532753460174951494079808033277227324004805449237301648522834796700973243819195940017159941671046996159587581159175363568446403522866473870742072558628760939867992943769201712250015774213890069923524682360813994404572133422724966334402962348035965125674005888952544295932107617462048308776186852572691480933495684312868638345203619098991328922666428794549256466834813132668375188526555498699000438485615902447772317362055606598121343531111149038278987694127720705740815044661636179281868592301460740059163603250094339796830753871799612418794665422920670099849964286418847340577769973642746251461095112345203903712265620381398431733959433809594022619655842925634798125536595644321116373178592253675359914841821575495693786593668922149512504651247591445971379900620049622723691534084128712654671002236421009200452791848457618196959557252669389817365296772691617363837441980443766425048974805626424438992274931254448477245367908766347398552152619526085522614341099436416952809740666463033461126941153527100219587637100968159283465197270486127386553336306880653128402652704316403464610592347196949982937620449907232650282378325691636269231475695293153736391351642877903168050769321712846164279644932741235705892524311362999445095170037492459159946413475798647036215445612629786490609862201010965903692436039299971481396329592816984072859756157616737979012511859617803143520851383927573240739029310012221226318726252403287486950960043741473701476185109387775879540528541688098192964937832843090959145655560899173721533605526816126232905894184064070862947851529326313057582167832915972474273226731461780129715671959591717098313585323024883591522770447564884135992704244781774425275335900193291241491553118562420390152423472344100172216209789186548292703623086943877810589925278819752776606500897282067000803305095562246276528078652127355980361599310619366759955635755228775714368800577368063023318562942767604769189119471302138892323919932964426700493781055025569459922810106849920716702548616678845816099224284990821190653509192827015534477928679379376530125150595456672230921865608231632449660869513930004501579505267479197275880581097755250974678662242268804325943889486039231686066464279781799704513538642373433181954637184082576194744789238899352601713503891125789461496847135088348030860828830226811639671827024888215399198686491851004351186582241470298065046871826704236627184196859575127147876345948838242639605797460987138867518333618529809082727793165674775019907710445890035974317545233236380885015602901437203693817476203454545396833046704282679305941237113497226159393903112852477550272403494030949491147034807803398465227387311948273394056190020295407589952309348949260122859951715760057034621872999702087120411397557304422421281624130026382446065498784506369643161939038899899870237110972771570221348081576430261002343939368373773021922350365415691623799530799138820474119621941789234612894929007818073658601466370700588109586614735746457251167139161268127467840992079553463983582316850731562524767982959917049404136036235174441898387232961772739191679522582134738407571901607625067335321492407870444834761844788081999614595455154789019535012820511060478067027403117517950942453008711584218317802839203185148743822499859375051135959248090021895970411554089917504807887810757598036815837346726044790838750241877901588040869021535265409760672554150141183544005783742029547449585091683114808863014173270771939580431517240897174037506014976803866902374928408311598812989071486998640660217890644804544706937899995006441838589433194020282793624010578011602292701095571017034623970483106699970273418682013370966473940486212296116282134114514700644653877794438003195699585561707435122393621249301787827687714010355827046282126787046596322662534329117406561254557964926158011991760516988800503740059343201206417389091823261309745134556245960303951545498723002146181401505157059037066316687645633085110739015757570171325423731892709597276772366954250341860051058140606913096107452627193895799254985469183104976151124759551765864542097754698203156137131256491605481173794491536365080816774200795042277000037510725196507305976812961903676921655431749614934059102199144463045417095840024781236863787386433842577745393899077869257284365924053772520372385589815513432816272256635941017330518870762609555973545590685273018003728340676400109701442667604239991665433374176435722744087249589981874138887401666998852467881663053622088882088919191009240411635426765261197956193533561061886509068715907200602639412236174645291728826067081008963965372447870220068899589968957042653580700626022115013306883454087497979521485106110245104447325248739029736041260544620512098933405672587695455535214296332950604256755697302112065590982847050015816607892876762170481923474370911805909120687514224541173449903275898021199241946218457447628128277329547840805288650688898285714439718844025844601058769448649578803711446252006504945327767347267224902297240599796060864956781380840906680748610333931340353056403448651623990487555248448222441230100597778429655607702681993966652023198020849318062946153377155132614499790538126661639250748209550565669479861335587762151922721322006975460645576835743462860613849296958032257228240390233345119508396180783923172064681726452768584027391758691260379303454231098204968038122114779564892333105710984325916483011384927128582707980680585542410287256848202899176062915571749686697572832868328782731935129906638133761905174973517821259811742214986797851748661505330964876022733809450907023253563814331081291323490557402653661075853335207366643677658539636656045121183781882124432988528548863840401004842546697844898761196666838011020085810346072390786049512528392709379776951958629800017564629686014144742277740542758188397206371506471852779592222847107686662346459223282434052052897502036400874161713973973908097821818460732949825805023298868320730894963125650782621682533769655258272006930902901906987568744368805551902806280992837765725664304764251751615913599958543680676698080687364655449076689567605137374848426243078085533184840326744378443179445233552770529610068591930843204020913108659277455377179078531318509594623007436572349436335170174499622271641883516773457701193926662835816002793540566901722028407265899809611060216026647419313044218847133374901901503503704317105328956950313844650167554000481450072425241278624171772391641029193439417844032991884363501891299955855414933343945955700218526456929887688925501687030867210384042801948588369707580196393195393484132787421746646881126413059050030410199122294627979450902631505946279996200253806092370231533722603045626291923145369511360332760660085419226831603401974760235042023973298196878260588573346476419515010432819662279819719505635439708818515383049700028903345121869685217398201958979835438002510229618005008117366093829827138408708011355468495402715823825483332904634441444479472733180035902261444843650054799354427406314220488142037195627611261511793784487370244312790769275738099685026735266926196116687620895121734211902416423197856125940513981703824831361822972041665473506796408503468937265304700697970917166318338321710215497175011556894257812447841714727600414313966207602172551253747297129820874670166343298907036586668196759024327963880643382401268462654048315257312928020480159375968554793482888237249998997727915306096011009577756859663909012175013947904664692583307822727425465217255769102529261023105673314730207664320589562808594617491958078924891345689039646838769830540344523831317563025360539366387739569154365487972907146110155383376385277801574596556854593278770101997036028258784501101748493479503205690588298010810322648401513966647828195098758969864080711102721963621107176099933459212665452264691456838377703153446421078955184510886223907960739291393250506022264648229707763050914940434188386047494988834300429710739716058733684035203099317835822172592586401665674025995866224337148106063868828761467814242936467955475398513975070442062357105424384830823040824511570075108982792209537856896778929324749900957451860579228007943272464350580245126261165009562303200706463239063391515329114079845111352466688529858655674525150727256279976227687739358889322479577779719895728810798286992245436013790259067207426683401445776520791881799994817670824112794889133561552594841189450522932959693069453889980449082037369447115316110829591239288404897055771013913831637335878583713751194690318438906235264002837712616262684890037739052032578403347977196492454914084639275635298022605154358481363925587143639056649808368060242708282601874696584560556288852776263975165822739838617954258204776136449324261633267883211912365501704239246705317295189529794054960696629203791331879782168063784725631167296700103739098872376436283880857672616344504411107913253676738582016685806314079503230307172753666932471245523923691534937056402374910601369451344301763587555851644506792978145749226124170590254677849363697588584446042809590467820113038230848655803593982067493268468317212902562457697421483111060511853685925377745535239829374182203688444697474477133203273877277305807987516446995211224943906108416868036387433309537236446907694941124064617282319921747185360410293653494520000948277065458832558735007206691603255142563621390759932259156806588094549532393864985839066932365300370645971714620332443607615779935345527231346945555744286535513686401555544898183907543348514611104167212157316646679350632548008214144347651183256212111678170783910178192010037242324211046232902360531745853220864722115343620662710025924402031259242891015591062100241436800529250509361467591740826067622485532244581584139097657921219592010726160352517839541123515993686234850742182502932836967544182286393690804362321638917392383647881255779883887078786720583474411300063149080922904000798557731802904805019066501619240208642323267002607166077121994722491105252655096524739034996214275211218531456746608592922220145352672734532074437904337851909416017812367304227084169285813488250403002045080768930006047698419801476331111924421632121593300961734058320830076454248822946677434848950224508090381518838552015793238517382853142039483438099572701132981856436999243703963356381483560103314541729465314988309957248829913940421724447579952666085164733804300391936454219792889044014497659562504082479431928378534539906817174758395345253965133808399040423411122244593076264948782465318045515684120446559046049290519231548244249490613607896715889246760112482494465334892424362403235193272842295907021617922309136225057079408177210004557791429556758868867934056919959991118092232130206708387037880218432673567427105538561699205600123050658413456387205561121284210886893513312915761096229594683939090833468708494550105132838927252612328118646389170264429568602528484730136086771285337552871411964604892497993461055637657002243006344185547995406868719129127943419194887245152619349630693920695842700490694602852993975363384914846704554575685121582277635807924242992134277686618995656828855198867158206066088062174940361076401372977404405490067104570157921539212191347493198762105524387978626304887318366537756951349805394742981782721879766433453115026206612788238716221915259680728163510143103807056022812242915485872251090975003472440282472480000692420040678061750250182384305271926116141612057869452766405235906446615893862428762709399027407635339348578123016007808780521263800805666763678891506260219806415436370344142897367989912760372514983659334777469972871255165053909549349050402228934323171860617230349063808291000483208568106477359372249652259009046538884963740693095754467351986467124748305915404825343282407639043430759174870820206028764844556726177774634173376483315711373744981104944074031994426962956658810393866117972695967918184569010424720418504239203441518416749656832566176423258885291272883431613317227845802555123848435387198318679910219086420976865540178473859841624804261611243715752619219738050730267144514355910912668306299955113745105121724401270020386456512398095663546520609404516539389865212329983846262595384041171368920620258662308015057212989178524589022213966033293919812865242784738027951548779641658461040763565112681922997192522472602005737919615982995701803888599784040724051722918855082501471147193392032965243071097280888813998417257425328026062919166034372168975313767114635727725886501732274848702529067427497073100609477644391445446061928636924021459235683067790548595836894687504581486745947575146941758197205062297583472805797408789352555713313721339786485287509601882947873695917865518563123719565546422915535748529804662919947153229314597970840970548565885128800129623213436048966168848300928157637664842471980162976897387976613064144840914659778820520670851507057925891690439984458691679508668304148162325578677167546715181490142951375116016161943090360299352517616630246378627296958914441284516933767090336399389630209423201181622443021098773073436221681341697041100964569851636657890837932138181862603610462555084659360045577346657048856792449631138979126138804922528917839985019426842026279191790539554593878049565654301229353160455003302245174194871071097886597950330162671983979810214928416546742726001068281621195152284099002624179208103276359110695141650173134178495989219099814228531039262942380316104987573340053630691330756099112285116931967122875264608295080020477145523180730831163655042664533120940006271004424925906742567629103036124893521033456662313893041694737468971758393239704407870678305581516854360447772340863830568194078989670254907693738928079080588130877367473355889432534611626011936133613392847604966063248146360860372163013330411530971946542722219010374085192919677327724619665794420857242649217332005655072691754925131206659064712020033539796093596297404735751821835566968108760146130539515150498819585839645404506037147737166631402171533806095123299739863763953593680592920333540761312538008378175181506311716016025681846555342353607840421916556714164169647539455601489815310394512609519809103344957305181755916556452452336564376220326062519174047352119921853204333435572347401128636710493749842158375880553188490216750860733328482673883300690522064814239675324562321715790242893505725367443240420532567660797696285203647474712849265269023394318526935814084384664067309099244484662171474738782632510875483319451568800318857116811783871741801365289982692