0
1
mirror of https://git.sb/baoshuo/OI-codes.git synced 2024-12-02 22:16:27 +00:00
OI-codes/S2OJ/1625/data/ggf10.in

2 lines
977 KiB (Stored with Git LFS)
Plaintext

4581888629205038000020361782626994363217313509700176749949680099799813310548499748895507097268162771205255693308998229453671708836040267191383945655566416259235894687147273435768681309047979907523447401208969044646880904681191696973521437039204093703127474402008817146349220606925366120983536177371226880328134488091171397176443688285185719223278609019149639528490008182198075771210186184684483547763963422865507096940985358336536963873235815249890974634393152949742990976966662024755257214582697016684395001587320837509705511180773129059580895677356239423414547274536625365765167306879563429829685765747643293104071399918012798696341211893394972845088543492941920331286695759614573706787704768344489222036864942353082217471595033457306171662986468270499177639858133715858172242081480828802387648380199280828317279138158655294328225469750973615953363399593486396933128337778037255819199865755573057797967450895481613072803770559546624617198421041333654239149766942319231457558184411106446712524504078911284944065653926733895128469867188756147142286094063544813662940780127309345276662461540474073465877020572213655545328131703944303785648336398890861362596096183449647034085913809160069659146779645164638821980105213340271664565030753424995646981988504696499669360259999236334664383390064684913858731868665800674701220742799621111628422327695268070235205223740396373510103919202635970957973538784245917874683390429552583149813700018020291703727389183262491643507165053994886911908389864956564516021359466076675399598779814638470988613471632942957998065901905577932602785086858027930328597142339453299061940538268933396224014236062783879337016412351304623413475845352328199921130473985261759347064821973621513597044240129587374243026800022257656253779183136392862412370867328571950070166327980401303634310065023206044773582248327258830018772782171618504554123492014070012659775479233859954572776719686138110470954921659267336852687137706592561403375232019181553206729242971511391795825688830874585784782066790084564376693159435101922468357124457824951144187753131334172541210681727717968255014532571419915103268947941569100799441752838407592852133963136975604051636400804633358457585431505227385645340736201634049395924941542269264041236699364743816386991508638700109134984411170011145427826087830283367342231313477903242952885031864194711662764423369445999534475098944187898797805178583603743546685104367954660606555517323089106365852330946449862579037967289228601628994862280353719553532831153607730095860992146421553410432802118047367064403617686892713295597811314632570816973143983551116773764747708856144299843866601905981243030190576353737425002284248689631236366676273362067913052557775163709518052212372781613150371021930018658192457066159045306512767306796839775295649874599214335463513943533969662462859161125357639581503392366492091271558305280213972976948150416413100341695666329067287625036811974017899148147983180166290567814369956997710544712853301127958975935121181046048524168426410440421802157663172925983275478852575048036601063924933932039638426411112687921462832769281510260672832657353311052259273693790947759209330736847901644340770207826822672425224296130380516305909369146513542648328795905372023905616327093102259657791638734040460131622693912135014948015894206762017958405199217480126988957234477398323825344385373892153524652514718857949119671694099214324373073129655621726403206559345567930558271375226236292785431666942023025113794285193452339253138099183428213545674786360077055429584895484341972498743734155774801208923680385434091137841909514808374215833652150295093747803879279002356269291403740817905421963864888616446169704970432448898326486467549241708362388921201673487787934566761593586668519669840452743948645869829608840771491092784591947754592193392841454391246179223659219872637257727780507002190357284172803719655098537611609905717769345676709722814972285889158496557630786051176387440542126511938074576810764988956959900186058472861980488958949602189658091099931731900888809212753177702299979066781450713602516939519753539355795265661496492183598021994390025758444821429678900415658737886176059910804578546670330145613308686849398679763656903383364283616693791864428155649806886433657781832041718854944404902284583247994740316836481626315443143112923747500915249420206260648340632383178502982971657866071838289983198030307184821130579170958673444435159715445476407828310543937180093417844079395611441232268261828963253211042702495572491820495860333525762249440925756836768957909325905133995376889918954348445561245853822063306515671492846203056183833154711735406463792668416688586970792952771506873672671495501398959053276087280271270892410372225605936723886754238128279602380983769468433974732086671001862733230965110312973007971430576886176386839006935163603019394409664072839305842769422875132619103483615232106621744148819126324657867113805931133544971374629415028855703128942549009651714520541167740287202963212462937522339082413963292448903910633346915139627480990110264185374857071009783365304525641102886440610951302147699415484322019343541674070281212819134427344827679171857307353237167201678697679500070894860498948463912204238618077813689444815405506280870854370281591566214014652579577634926728349328882879051795686018414365195176496308988321841158003163328710614498824118459146765610445435478774878507610831824160903486989143365179792361914800189671129122218880958788849939126696698531107742684446611838873848350596587968313046811588938099066995570122051994374604040711006425830430023383379585415862935391768222993799133313079497126846455609674949466407200401077939471378304160474311557973828550884381921301882306217091138163550287420316633374927820504843200581194432984166330487085821797779095930114450936260455288380352345561394251932154994693397611645391048066787621624440039202768443905781923374460190546161739934345940865422552539520271095135203952326359153404266882539022068653954866743441149337396578315146274987488862627930713305957920552445417087029982053307826026146611142079512410396881698717628728170400048505176124939890296606679465357464421505215321720675481753678731985096541108540336789132589621051534510780960300570561395580883897487958233392988686863608437906321837115688543814550855752995664169406128620454136796409473943782157025786431681038264031098110853707977952630046066084246963573178271483126113562752549418643887966993746127831725762366926452437708070795314499156060694689464454048284448317889600664717854401236078913913827896851883626169046021171000900910820522191395468593702863261572804816749415561038442837506369134740730096719273286292583842846886952584723766028189555182008365116335349432546869844574315080777899764585435724273585554756660765508047008054578458074563539395562809977753833354056159072612621952676480889649058519334729718784328963599989668214552642073768293654493002361649802028948103682496831369245756597841802738040186216748678097643907287785697144208040837548192593320881137635512272768081296875275008664384151803705342235542859238647984905792203708016511640975255637519308763517494500795357084410225193675047666023063230817173878221910537134082076087978878380533531207940277251058060384232643195004304824426029211761739240018993096660900746210555429033283510082374250749922359838804542590859174435837211089413918442042687381515239188873027099497321680108007890485292212084885214994856789348339256249089133357212952427593553767309916308919738873057191612221983790445641144652369598478324959301917413221334756545696238671392296654722400787055633061427747988373758580088472954810296845392032607542028699398787977996381858846907357254722879828773563051164652568009109524232925116231192699553776078605240205758103776881777296283340999865831303725533377394583604932490938077013972637047961637585523215141039264719818477416172038934300412056365746533520842357440569864436392692058210868425721811687085364444980134733124806706010602643968403822567997048661647651433675990036076941038972356772947846693638496986833924400354243335445822537777195806703065928014671500537362547930309790871454532833588486667132940016701538130851741093234300879284519734314420629160069444938177683172301039752332235562956711495571931940848272907832734192915521904468888604381139079403869607233691743414100901482657147615979780546790389669548337661391163866344960864900131878438840688957481221423534191455103081402723821164151797751632634081138603358230175111904823780354398134077861169574243391700445139585971500289220337542951717282282113830886700765370948980320304275414469146746288040071719418258441155748933048137274978121237781260077250704809996472579405122581302272872168245821030916618515324874891657208810984908662558649697030267426906789391390994652650082010977907756897175910836193857782651510321716913848073055842753061815136365572111705828992821294778270638141713717905553090993825242842109986911559806400556221221623535558231793888388816308088480168053690112292968243992896009481872557757544980857777792108584899132209858704085106522763585750983890661712135651250223898976771073774319173413558398012771670106813416969620260199797765514658819922375269157142118292266151086748771989292958091303203529644094162232051132627506776083993371200694090717790667539132823182322731442953782561481756342122397300884167496060322919685167151670153599267155936139203152881193068344309199812524879478801653584890090655014427525636857060359255692839587632121208533248496107757530548482467577165868116786440257905189428569981110070319431474093712310717022623234278612415464426391969830126045575904455979270932882378469014262301332574751302105667979531954822798662976734631430760496143658950078044416166844728425978231990162713825379317899593531397255409210987161526098427145628914093717410497466620587044516371593097549779932045243430339737316253620959677624853673576847041488945675421920513317283045262797210921219904142139195952671510538201389723216751138250394989492575570827069423118809279692041679524347501121832846073486595096614217163775595317803353528481476197864123387479054691601573628739330848850823088829803850727907138637506985859772686458843299044129856732864155147148252233649662878269989767178704399681711832905047044220518016884228951052690138033793612849440546574075710906835261566648417311598694965551056406359974160119924914383338524136546094340957721805580382035757914344808857082170975581871081722389610838008680765863664862378243135888180283033672702321223706515823889606217597332086224143029888018772005829750659226579718695698578615223436480877881426855645596886470757681932323722690435006497922742608400812161396648196290354746226475532311516400312561846085410830861651209202392468745773648786939688008486110294382734860113174063413214027069559817302032285305380288229306833785300161785866874894450864006214673716306977704672193337142068055003318106835992141777211189340652839026758651338670598939497716094169896247172221997348060734770097544619017011392532222964197441211758001394457115262342707696932518699190903648170897210362669410204441818120075538027260741394233474030699047046014207119147894882999368309511019256702475941554740976150823193345244003202287714146369764802912445083844788369685048531311038713338601052934875169168842318579136593918600284245176876197561533357693935084992598843001025498513607545766515638162941353431102803095352698600578959527529299970215387591688232945971346522163902449732174137207253772800718819191803811629081786923839182356642872480950317062836289017419177441188355458981804463342873182567235287098285461199328866768228366347463468197939383781368293547609577821556767536007889838781375609205311219447587060651055245262196214699978854359874565296550607057233803649559493174339083289204047618949420453927861639961700310085843731131272599254276840259115183252163891393991045709855116641696390029166642681708308133066645009915272735841548682829353485788134716853940646191341549926797750933759010724484610049161820125316119723450797519566400246512875069912222912973082752384085272647180015148552695432600848420600779499402199172495424729206245554418350209623810036052285160613801609305701210608671735995836427608045566436414471855164561278676528646617197483325983721098412008920521317638455081607029067841950059692025752760808826761362248172587488948864934224425178066452431069716287452345224840760747896631144457357234568371904993861478270522456970975091008166016062801780093094672384366492974286578504222984243498226249100337980511519081113135269865617958273580503408229421791675336747173228236648572110357029631088370314822308144979011404386589634209321001786458992302963102840804298467072663508537231887480056482050034406729857048285017947054693192620276165364742137737641514000722735748903685646729619039129967830013150178862125495292568152719484105535420455581031334646569871046923495976457947359869538052317461465373294919836952922184505084540322269705125492070285140690380031961592302853909193836166025679703205933453047054078554747673215747723077429504948011577271275359091052999938871519839581038170803967569913422546968183652284635234341758322798413726167624231545585604835526744100620087775633574678171071755428826363587824016458797974195499414639502090648783497315751017837446654024896624307269135891191766932902571473735041573128145833650890014876051076706039148947860806699525576705806657012219771462474583525676729635992825991087103130153256025801434638101460415630650757374885560279496790081056941512232861053736914664092318996769435116401166613096473674689114067825381446739500469604579179493266229732738148307491621133283021656877734532546159239307726934803417006700462974883894368905033188101862365965332993151886892046045579880001131652867317096510221417981288311088102186364707562342226457176860539723806081210800033832977483527891201559308383903851784915737736752010532087463768367153405982703670885528771849198050044454762177268335099272857015253737926279825461383046580751617286309789156975899980197949982089525940466799396644208975303743199018582225192590888839427497738275788570700256494141464702964642493420496962423702918440615535534535629892531988805118988582042117660660967305169156344145946310436975556323364035185288585371696728859002871971303607517110981026537803267815836897230019240719989403535533638560705777750936248259301169480505902877672292878772694310068904781354336183804548485365912529830624164212538052809026566302001155152023777483023004347435529756193651543199276694431232194305814629855589020866398402980835916258005838268210883861355941237647410067178549829543378173035383415482862531334959168471617425628500733200702614607605997438486519222579073168804459445714339780792582706859790106748238659886363425677965882622930997858888500485869673010474845985054537164322534120629394971139455305438049489475959088658227405057079648023507089901289631840119271173996095016342983052679062165649764206626972675882567812051129087863039971467942689842643971947796037856711946679778721944468227853551968531448215679666518662161098274294182406702453687585568192717005000404999720613178980919606980880647847392202381135051404854194280427246487160901017882218064483682089710452253622728663980327278561195495283966347025949371847773658140581360556041149397362120173028472320755234048547757103366907682623104177902988897398561338474883145614378607138268476088515108802267646900167003538498629529299177119298623539056948213615673751169328194704357581604421529765148916318818718853476025281281744331428939628021095139027367037104780703867905206052870017080727528741410606587469415358951406284854231607024580520324702748238289284506091906207617990130382840543445471652316971885578367108168251139935611844506292873156175169740916956616615315234129624183166367210473402413871659093519873839654793801490372452664425925020109972726060146991176660474737054809876367003999366104882474559197857951315332477409400860704898981881122045585513830989041186383368775579812465189810230912934006000456729448816741970069972324329237729034189896245940497018986781080645143677137122897463792747019932145076901390361861439380444411074073618790566184494342656264743283735466010879522999802917456527280289400004758011006657525297133571311639766632703404460624288424549830811611988809775218514951992933008828502067736134445877050458239233076734302677701261281978510923879848037761494970061976254546959028177628931553512149959685414312777213240822311891677485013918418713151303036447112919768700796247854357988649553796976248139664444472592029916106236776961278358226376723506476434677290776157678915631701871421009369675217212796092706500938550661356668913045678750025807232804015474058266071814781103800725278258580545018744380625047161613942991405771535039922598026073460262534912992492386810125111661280885922299013040460109240576500564083945176275532991588416416064464646234284097504127945578008288492388121340948280211960280523513342998224195460808097265483709361531890412511414053801310791710358957812563965626892699865700509559307486802948777845607592241905732686832952311690143419482290651709536173122264189596749700994103072301667407015645687214860256985093963017525665732529530707699846239271366982582630894706492628974889722498692831701274075562704380116501864055757860257744261120941767931532261107166584600507928258280667103666493095580773792397365515012565329318987063843392820000893349824336595376817742915629546236717626569823324547027050031611601210191273628884193320422758188619260405853250659789916809282682068812024246918858689637310328840241711271236891223792837736380342507462204584386013102721228320890397886781621923428912050302653899986329763362395237981069537513475608946823714088060157518392751206437863400255108676093702062237030276074619851832247343621276836587797526108229255509607103604376427685342841150483625761924262169359627771781497359629440533303998313297242018495777157878447680480469687615479582654634544186951462362058472604502216805473554369344893058726639291828234414876841290648674079875525901633955639728406923355563304642220710842289204770949771286431880898811457627063827400491772764444578282121552216063539229247028953730533889730186021259177987253937056622838457142224513512888233102590422020153275770513300976657235188513375459827415652845010260791535512365753098884758295514531191112907081201299350526266228452566395897055942296017145488172994339800182176052491602584882274981692017063057181594446498212122471880969567377812845019227022660760897030446053668117866088735787541006604068307883904241534178015196397268281896940584490493105691238832400989634470185886849857490425833387786461852018118123432035704707127488675988125340911377602466088472026416778744877719306935740120462043316512477456804504955290064123745959213473897735865548919547881765498674400230271767268194604770805282599633558156293802691181729594899749560157485502915682021460548019112650980179905684770643284413748766659060760699427264533551569491839386166415490624351794503611306492675358859744089020831699450209423904626469285868124969252200862642843454803089544689583886685302451133116795684622275759187723179565504658935530538149795893865373063083126145919477736579112891319083741010842947498675197997906538201964877932094956181638365390640104997254910230449370027827870217858488322703455309481987182185212111975859701089714345706491731479864144432154910455554928004228158868521077291871426289290997843379017193625219316509792312872256910228186366741098805187631351051630400740642347206971836781799101784869769223903948906199937043593904040265172687430687492038464192900406756997413344484902247436870867726511399322424725111221159923863258572017934484482832931786147014849858926359577439911022362306508358526879064546071020957147238976270196631423590469449904063657424767577602045882224871515385206810049968529244947409535688101161872732270240374951131897017808638997690210302504709854653830458597291525192954063896742130404505522713619009661287646227662344567497767915539021906124580367862417575588708066044174856630862836229255630132747933050253965480281036526558021165199123966777984749631189772479200448624111699606311918257021460282189522985450348561826688888567341842229706990730703607942666778760832135763235175540936926055284109195756117027896814907511577421540796283749217745108838728988414858114934243903782754122340278734142298793697858065084621297865383585535347373713013663367199377305266808545283243210549939668218258180050916487124117859270968582924062213547480227212084997655923044646288125469710996326841272212559026401013622249033462538402346055754582278871451964093726905664382096042206640773891942884114323503637968847500519176617420804365629639672431126274785248315269333967990492762941805383542840180241206140238789537543954773507604802903856516568538624088296271176165448224989212780415803184343002962173862489568489946248470070753151444312423993436440977801347311423828858359350136264000370639608160423421220215983437707397683232735507562603572919908030714559135167110748196174036166080767485629555422094746533037505739564202116045023501136644103275323006027863633432919066345535124441719675509427954295035421778970738838575492710612833532081618434816373798690559791700445324964449616197142571076853408294520253283544320391139183344906118180542486432057343842222266068788323818213789258854129729531699540028075596601218463048732697885695297684826226800781970577910339398200659330946142367488559522510756326000774550451536938311105947459187029860867112600460045753680099935786711349090497811610869695132129418028009967407178861816412723055469571463926632466951385357597397050872271018009984305493590913627308604412674693361178851237828616115938373660087630233279254718337872086486310274923713313584180490513894312683839052086963828832200658332934270146543086715396190356877181969739843179977994329501683047553127818515343857816962291577530457342830895081567125418546195535647005537327863882876401120163865695302059689286647260508275922669529549398135693109971908799607674140240657004796822779373355761885772455047993668170091852473415486457271181024985149575187267120114545194181466993091581250331581999714661816879037307678721793246931124530640893714937660500301680654598298681469178977515215882725022632130009256990749572192187512515273893396028415890923163204279356192197108154847360827127900344032048420129282792270290493249364197312140894938593083909390312074720889140493264267450125813205779114291711270185615075578184311036221497033775522663440033670361271160704226088600189621033021890600720533492886027323679950432069166221653127158076740125392785332770279023311844705338982147844587787414815582939103680243851524457071012517222527664378234855140469387942237046133532817873251067011380731974405834293284185972340116386893935604084408365190836519629356803185284058531506485005825586288649506751882530898968298869233142214068919826940810326071273998572299381289240638419875818364402170368719011374949643194327482756966891581633643858555403275939564256547988698584982424282324203267162048612923939146412527987312425877541207465999111479464570408674368582639752196974681819636727589739847878974929343311143621455848557465215853661034414863215714803453969961613300344301720522948348304276087387205266859359519714249092056674453360846956466464855669579925306284738901302978019820565879797626716918237033257029329937469811138092377193411246585215223990878854348869055518064397585823313239874591416182491852773202122069860774076898475882264207160929971068273006801424049843267012834074677987755018569433718064339484061025624910786142190005037333827050544503597233474680714565062851202053795969914310997951755151290722357096710180393895209740175209459753388446420873773674798490680814327483936446994766134293340757797162797470618662135595358909793535039431946438153061573256360892247828236804334970893529011982131772434683867402415723580075486592975344355661154863660257046654714220816845915842946072652583892040396728478021652229185703870897194527778430075309997451056298978193937526797052758603778490918857456805236640906986324447035735387017773459659029253473102079027384286229996919836703973724285053542969746427871029385450484208038778099062910210115973736290378269011344897209936772533627101655728359825664626047078624868864186546960491449595184849355383510471084659175419790755415487444411590570620397906958609100074432731164561964112348144725221302103403191678920379291430348280201429951988658970479695458334165053686924105173320780419817106255478824051725856261317739581305497813513843567991672320202656778285658598949178054573863678307652168344428476058189387014279341379032444168220368092947089855508964314452350776174636292218898473231541696633832151986992281760675951276491779456845985876858369045180160209124382341581037980064796220867609931419390576421836682416212584402079630195882388994948016608733645355516088450854856267674762561317459531040316952851016120235335877865769750673434624616707496494703258092602845797964191484152880639813870692601610500448293571213055133831104075203083431700309191750244804983062262119018678541142031591162454452273419984754227696189411755839270813497191655375994858286404193390174900409477799717034987212896964964824458569698085242540726146120453143004090935987231981591976173109396237638905666384075588895065415520731428641106889462789935042227388375508452835146398619395315436058779838900937128567292605620100524302932504314007189833844086369154484287096391204539672092756518325373199382659521927335992010149550068269943247106413202371949831981552659553794168344140240841099180548283755780128939427152821716475493779954977712414691234256676565951930219516760417847744838523305254603479762743682722388823840440728554621737618969295808459992020662460092664074761586142753910886178391185057904028107511521061842141647034413696804213061424515750937600214572341683604795752344018251519035636602656466175293286940445152452349100500256032452798462831150532888238290428326433030267010301842717886852499862082345387998180596773682939605009413504857278450448418874135454324679485836177628823130972939797218677317507575092693468469809653356224497704439723983106263038814303262624380126729872633445875310993083886921583165431010706323455262954849307731433953010522587450145823250301590248637202798693831809429653759977990973855449656725811936712178583724991971951715782340072523817101747025614591294412484179866847155592554958715797012223413630206906541971419222071662274651664573990310302885268694030182171817210189928071228343065364144942347421854985385465759303001847184373821064556342581412393943161618088877335289520600320978213638346446158022890249962235455543039213590273181046775815274311185036610546431178571969250618567732662481591453749101513790787085167639511664444368010264560617230018982612470172888957894819893310486263259970148538196523418560211170595565982843759796107742564189780383966601407734922144500489011745948790915155412958808899339616967487527155773887169120306108946925465296654436275106944279199637280109539608199260068286960262238209353193499536241874634788637994712621529040131176936369775559301029594901708798937444344537993691253482059274512467758117164233204085901632756777602224639581690307296570737304891565530368194531815189058286296742051209698898084536544069671278935243803267967373627380064621269746618066908049808133984507951844762638999848933196191953131715383063872335086856191989151354487901588353626098338631142826725681556153290019994700525673557381831030658796130678724368591221688763369744875472206028597108691628495905311275369315221141685787077326592534152282405448022701579794365142483752576406341180569073149834058621254997368899862492985675282497557297159230368785873634916750015472669775793338606811709176095864814274690704157179792041296942833896684349423972924510742472299212587914054792673129176855437651100208446789228265848508771407336628685983276047672113739786381849711832614721894900862857838228459390882214849563489716958396624251276765777194450597493956428561252360979627338122928898922275302021645221603319561651678764482647847170431800140155946056373986252796055480766521620616278965383699946242546623123905174196168330148943964401528031348105981442204468173415808722286842937349399328393147502048383343002672799573511904396110721973461783333781324027291454680998475339719875897906020654079571969358075579756584990596666093203425073760605617522534216650272378832711916958757373371098528503401052504897702834124678892796984668465781241708052329397585518501722139805875521621707290543400695164428184184892206436983140336077079108699216956133940192696221482401762752975953362938538427091596371968313330199153317307275563016572119768666016700780051653799482472488214878345516432994791693964400974403084467873771029058673424541950631135645834243969620250280248968331699710986423523695942133292132889634485592769088497002566908146386882568779011986511044831038376702486275738323629462160835116679887804693095929469850190917587576774673232735061040240838904370936074543887558998138617193033804657489422562801707344184631521009178137697412384430656912150267778093312951331414602182517304044160342639564992412756280747654622107400155148300594668667675587719523687181227802958100497260307814679598370538002801578750944508864328238968246108070944161901001150690642620946737952824876331553805495859131709561534576659389381215788036947308544856793152734877251475649930255846099743901828633057087429179882063426580416572715231685459253479590955329405167138892766115693848589683974201448794143416835101302711755368708004912402005262216353553276269541835239152072989116753400176217787121237065092998250128285702544893169585798598955454456182605584631639332741280328851862014777252634696620648076524477994781344435706501328451520690542932972736488634441023145715762821176241255735173221344976602003449402379622694988643005006806743175799162404248925432209393251434819292392396278765019854956855567420670018104620413588285813817039090736039717020016820990702327876163489756268323358153626980245466072306080211326880166029339237215218312072889281255547788047578297782357673454249609954246642916495359832902591491809514504319445062360599582257331916528243314269141970566550869614775499797468386543419089686326523046900925177134589813517454630942420645401545380397405017921543849160855242225626892839508823219023577982263447798367068736721326244815974839294517742362971612539962569664770500690609478329084875424116996351514039778219912103308781348223551639643215328242453002110608447925359510126078068185703726213247103055794570510872107158871387243795902634094797663108979183976926360566430561353034597537470979682770339950994068940077951648101592629590076357543921414096679332007783376462795327349312583083229989499317376344458086879616325515104951257989959687170599329813917113262502797866099637574943762414102078681900042192606536712487136624811904072121480079352197194619229122261611285874906092388909752538300557323745660694267554565841083061602497354598505733049134442887910616886406407416482595907242960274602069776126672017997881211166372035707674946666111113722835536959904445328002450592750367258048567268120014907059058500172395783703274838515952466896773208490401790983401379349145415955799568463079844930335434838790828596129533725053180509861669132531519097571556021626002766702610643283060284758265894075551549708081045970212591039682893854884066036442629900734669467148585173186607031510913069814984545071945717899232748609577352340475737770422335007964632458230160361922959040581170609471975031606685058485022377300571934039246150657007094016390483270451650956702540220359786663612454593149295523691617879519318357365227489680668264347972178899316441694626831318595171365847818396173403843403115540952976870406367295085504327108506195685046160692159671998055697925386317714568131781232826492432786361481003104214127129998274320992320289601182795386557842521045198748000499651905786916092151386247088342231338973624498213753884201528244296359511413361886295660253907255155201077145977048974179807936860601169645630065049480790035570775701924227058916325986703967894075930905317228472035557640475163991048205654045038610162020760562792649192642702255110307408487511814239630613246011531691961688859327083591996908144998725616153728024329469785270818679741609064487799764060853520162969951864439933598428095443373733695087577460256907054427347598099118629308204666493389234968055077833036133109227625628151239240191819450493716929495272403427390976751187775827190016292013386583194641574370755110402921302246627422104076650938931127450785628767066772308573887813724210572032696800193559474922909716593445557073670682067925969343787917090118949507944660763286726088239778132774521816491292094976961503351375566301154626879123554438406146635527664010737048085857187796462531346353242548315908692303543609290742074639277573882780990644166486612548110383696711490274649769065088909975555903157221135998761536723699815523466042480825240875846525725324321078845760949575363246646111833842316222642562151774679674988569185249726641557000830809723108361148752591439518896394034480591243286118161040418706270977780375724826273014812019141980128585952646251628094185672412493864340242917034654327270620021485348841774855499749991265522584876886162623501371283566507403377697715361248544093992378791113807139485176669091408275822887679458293873991279732599280629099201773594963416515572933599914512762902062068643991570304968618518505434008931505192503076682666075942243864932705749308065563513699294853265337555772209117627780341079190389240271062059178180003799866600048155656918871883560102206117771941697128596537190895493731472856036978168061759219207479568622931346805962239269635659744016810526971382567469120322745741558791743547938926540567330983600044629017235344907668835790837912050716230067853174906762241725796208028406618971049229274686814837188271346153086595706801516949907586360382635948668527036203106124162439840004376350821093467899944881787932697492063107465294555412809108200569649756701654918992773391059060613711728093164523768420753339257804835224817614230283126449717786217536460768858508393304096662680250880393231504929515911048872439386031579453819319545197814445363363102916082769850039859773568034232359798021960685415111185852691503183447567448851353273176662053204594872667015844887095828730738714095010799781003271140650691786992655385023173608312572640996774255324617573291888215743506234091563878390416980214203195204627570115267667501833875036209918960680356285296277021684514122283753771352946835313581091640224024098094898217161407304251002493277128031880264158010372507291638864826679472679668188253771955410969758719488198120307102035697772301162346524184053794111484392035928652139490911514728237090341264634542473933233715444335405780416465601168381795778042315590051944931948811301639520228290557003842746376017512519920677500438524709205880675245752845084005941206751181137399361242279642496819101642149925508183680334743796228597485719039237562623439379299752659218374744968081897997313511717325842984635289354557585410927379197329549089588658236126319684040898595836402278317586979256996029156647275372775146185381265328161170857112135429630322765920813528518518616678596017827565571142224448070796921271033414179449535620052616145458866195036559762504682327689399567858040582602018276782003751648576760843690363715723347362566984766395461005266563640108612512141356605825204620255812076197817947535280927337297036205650395746875468458685717147273722784257073016831256779490720274487334561150469100632683687912392976755090458203847940087274242505734682447082079847125776056409214381552802528305306349839193318521116847244643945983182234797568657169625335614164996101000356678992574941800397860391073989625162038755081439187713715785030994531245886792447424528865462596829995371953999992863034241861342992420023224557269726776343007237823957741915150492160864454160354819060839630649101569869423127207903791951766004574362782881155894296013450392535379483595552750630473473694213094441450956553085066219666853792488838271210780774010815035349707130954286725369218995755259214379872970950689465658521363009131832629748481111784145250640929664799560854820046853354761318027681064750391633732016318675501018509744213366180629985787350242415374996089509044469035071896663454708924646626629462192322768534851229555620577506148921850018823385035365767228100503893447060129272392187271697444766005246715603338030106084799836949238127348848718337118061145692237504569196526842284090012384935633293928010291708838121933497565160521367374294568527570260121471028649228137768003940033985369377613445255633365211274841342041955656050534384653610332438005949226084997971615478013589849568079712342653959075644989790081053061767926865141091071474271646954659604289053065401747754780413440776225695904712195663744471586082785423361669455916374406303579578779735242371620684797200925323592729661701904105687339439580859629417349381231100961610816876835532939808728402790951303390920054144870025128814527419390635326533399734288110467975568750074177425204261319996866862545108555644172203303819616741482353898697571043153678638972809465058970098160262753710136401554070927468784842897240137364158788667433535856148840123174160468075087494579121241193764520652701938100771235110906588585404872630567693299396083046048935170333299195373890624102537791650164215691450450259155744889855184986027472732624812595135850864505822003405622471349706631763941221760502336198603042728219930888116709744509135953190196593179935590642816245114577931425494889168452154575911728087196308847615859111380345424438352036579456755489442015824136185044206645072979784299532875618998596933902605626566665506148473531510588008242106058006326207359965094935870269728255948545071828126584331529227236918667252065355926993754025824337532053088031028686618330461904305186886386733538649717603282696568825620752717158225839583656219724596422132148921536674919503190027370596347989161437285108466645844110916559769766946364493893507536721916454071892674068035510000081949533770486916646742755016722717876151801720175214775420452476795376155535065315524623334101998600404141707457091189439303239741359022582308298071179615216759565445152286700858438283048375025722376531628147047344426314771877779898336015943644348313394035237942571749081451367088798005893042356027705222959117116091640327154850696027070688171374234069663555137579687407620612887399359903715349963853148832809231957346065341978241393577801637107392671272124798201849976112146947591230082750639588162789397431848058630078541227084489023163871823042254625088254455224893622016102885826057081498372727835912254965731164072571273455996190201357907627972103033204328644948313648739134886229197770041694337651988120786835001467901637053420701616533595343427466735078114646293176182022140242754746762193883879261191589113852188102437993626626209229631094885271981520069027216613061313092652672626350047046867193293244773138038344303095754003252080593880291712508157587409488389112888322707217457664157398588618282661988537781530891677928976487672020007960018645758863905658283298693020891230431707037275427256132241001801017657956028245315282112630826241297219659585727588120156785295977318765176940623303516891581656217932273054952223682043958814470192256761222395387332011682743816914186192494909215282840023439833908986006251896229181100032098518827319682746272376182767137528089779628434675203021049023850181380582525821540615538057905320493431514831517301231102540649564367162402827473585571087663915374531457206633679318169167243365605994740786789307986914624628964647330207183677370043271987099766466437387951440058879486434596769881569038259426913051681554581437403030455524368148471971384566125389315384053367507326170290188093069136824441281936834801051161109418713624002229577942019850863955094333634249156360960909459521693335775900365698431426629406816084424056171052372895875417989531694055661972450042924125915175589631460551102498321880632838605487355316382370654135779793148649760282132075675144623297371551269672826169046106801739881445231983238413972767550193427393144588448048351272253445063770766690682093349806692758992696747155658459839649754902501353014354877202380861260619649638502974364043018699430722873145900737690811644113440585514371696777543820083590195843787459472267531365260032866630597633653784838425469679546003455129185901956611446379855890214085152682555793993553615574074234361514428863333733199563392421409323123904318054705564224346630515268437923591461860208361414019797475967535189827185980545793957332024636187136912770417838144837625619838912541615889285553612542924504857361321386960768367196450885776061331773039658403434024404236781871658382917897851716159305192091894643435103269146783782819683582026249902407674499143362915587420998175335416487631109563881032681478325961272577133442125307829669785165023100332138191319340408348961300641420417943391221941323245862241158906717843579254534224549787998217509568224134459410076540566055093138110936434103942544328246364192887085220991522192039570590785916256314766287209012192005205557998072067271904975745174266774376555744110155832083978780972787323160478660871522959234331429314867444659538380489538098471502206042871873152008048856666026421744967849242861301139050226493852940220802385076867266018877916988424054208342656220703978625575453957295721817093093838480284454203019573702566545570482078787858021352131849020142873739837818471960062273878574418499185110606208121625776012267977470166835517303209491752278184880828722550402806673573468771084553786522432782762582716591316718870781210932249897068703303162170606600447766158773889783812699324663161118787467279258702581796953547833952053761282074939998434616859113563612991074171669435512913186228469786672024863077879889228677870305683187954414338751068646587461182189245677655827080973080515298917819999759847635251619771967300213207922526508765392945382198668030060197682863964627737061826451481813044918467352977417715074202807161265293625338426569143115823571266772026893976205063919057236870537945681476973748936942828519240278713242732892684065382970176471392793440934682878171247112262927475327610338196679258553137435602185170144810169995894220449730791295746463775588677148270954535189391498318025190883176704983363859453307576647758546834759368948166073546516964294740421415016592045525728903240558252502481585620163880888180503329850279952993692204084776501360397722959464339773728392125257703613854011539760373077117459811623599406286623213933496563317800845420075276626789557598233283934668857947584360102399935819585125334074098042091602519741133812903632741351697832708672468513826266492859447357347917991388317184650958136965063705275173046030424412340466505306201516695109583054477149998130079579647369795564172833777387834728444094175031118766017256621021312203780441781955284878175407784714730851714975220065161978550200502488075585735668548248716775356790409036428500478246958874015432472445845577006773361939859222626386060626882414668702138447828715812765829475656879010421599289390540014695453192000051743847724401716071848286142207900255152385731723222623623858689058796969726024603877802580609739887192400719671761178284805110504384808406980755194838366673744707539812257703824541947873738886715413239714236647089558196214358374450040562804728865477382894450669668085508604984341834924196836640012872665783849541195445755944353843575896705104741298183580860965110281324546004812085093511005684247019145535833967067161625115818588720053944594178173674766249537162456618692704160690355842863262802570742899375678376164138012204361924429347067944357221335413553444083185204812253705683406954097630660182110271496298315254521118995538591546584083434211839217782221884696588507206241278884144979206861900300429838142304719287482735011510004802858684069387880307218489894280338438278040872489632114717418947018782323330146395097278643454865485293619345410841822300707172440619070043982105733914471239385598110834050225973855207644533772016324688943483111046830548253158986884123775903346672209824492308964607871032396335904562459785487796668098628637389004298550779950456148348766145770917020228895587329185793259708221453708215224586778865357036100289296600960675511497256894665800296517889195706373659977099556698927073194363258652523478864625137992451845496322176203770392822112495938013070161625696829571218341039106111085640392103238773917178427944736759796031576970332755469055135903295079094774641551448740016646767674542034182074267225899107814882356272748942148789088715252045765346199293253576830714107761446552285416120153144201093444790369065747014444247287483674717154431362293386066064243824134069451120454376671582845668507282859128343026262579158707417519687527009530816251058142188914686222075127682960629413300702929370246380272108053169004552819808254301151881187607890708209783242640250990690775669041742267717750825969656712080663121296250987288040820413570765212463552333391706145675649687764674580168927895542212524516966454182725224479291409036933081475876451555449850120929024545797676844921184254210780023849052528378046200268664539034864043635097626884493228926602033869557580941695724126051710345179748588787348280790614865628750648180263464503888914480152360154488464429686088150602842197947959486318162880777068637722975674345508253073416212921920202326572712884059557735545597439529095529320006235878650079242989743126844118134444285063651420126662909888285222220870620727085278410377587844504298783589032752338321145897839522696954650118850692518918741370660500979419686962523192817547981745286413090152965519259477378569640447908042496183877866085030560128470565810186539183804253882408287439959072711177521795560145117983198347843057093196166807098691388787897966660866537141302850971581911332715188189670222804067144506300037006350661776095943196166780674414619395227893766978505629891148312319112868161935433594639578523762538056582612024488984838802865528842997686387355557722368754875716892137173253544254009136443548993134801998314541541980966735495179886999367763960722247650136643535598189401678988107304023705909750023957768980130147408479600644271401438529852881460802314641509322382050585665151982323186788771393444607014273667447397479158169727615121632305076187378811379535276652147524927835093799190203934346252646014201003630724937929217931775689701660129058465922082408324277107855997754160578372546348819470718748739299746233928489185310715233683087973038455527128429267250030913741984371126555578463911005918384333217906784778861449991671450642369396000762119082620671651222428843140467505496026253956459558728636432764292396375010711023741745287030943078958605201350929798063268095170667081415913213537858900933684742696043151614561027277231730960244016565718233985607050634779083003133906677655371426940159286769525873534403472038750450283911294499944279326089136465479059377141687006120140608455299263731869530081096144858131583903564176171761381777163247706235561924120242417006957348310708497371445251304745344329071861854232938534903549824839121306574199740938216471894422997462827789306549692306668434549971429205187933610321150576431469804673166322585838266337757252359860416917555942663915074550336955520981735696202799242626165634037145359964757205535475224604711001816585498534172328577486151648334691649593188918763671738360320335293638368038596446807889631684337779536784153657850408001274621280538292680611834703010416561337358493616458299458436641939429618856998099461970546196805889715462201329075336892938506017334797060148194634911090345103642510690256173350748142276962035702793047758251028240707840422435700025714101451075014708193934168984967723664078587972663783062891406237082555875742397549747379078788940880651287826683699567939039306554588196188973833739398727594482459549461070101955882154446216014109756944287169034983435788964009735947456727231007691174190906144334594510798627617591489777215682751159520406921444521254013266710023329092130555028247377970261584137020626195903974562538867582822221303087395602929335346196266158987550781125551216860745266636431654835971841898302240913871405999428859593882476078137410262124090867703839137554470374417868924464636524962741219903578465666334138104200528510652349137065102676774580774948471955518629632937243053932780863481273946447532386289070213590822937999488385817963562833789549300813140702333199606877802039254199513134451347118084652358848049424914438523732903382303148088188581284038782060926870027380035229180453065059406939737511212727147822809837826904703846952105769118268787165197494065277821414508097360160931211339660161061245799277821843848926552708305474411587188105988172878893492230798299395541288468487501019536198748269877720302797980260085716214579184118507273004905198948690164810381891750167047214230131237879058404497473110717615326663015867954528821952195358987375265647860105700586207825883234089756114673813702469117474580463219307222857458449700191308468832407389606541271296763153711281762052029252050793094812340522017728538099752444315452647628589425376971038408004323702976832997140203471878422286337457849519572540356696370391721546064875673725073540032777985015101143024553521261680234406034417628024042329122855455187416679718350560870028494488972248289354042656106761594200917519719364998694576248793885840194973217797008785404351916776955148722414444904244880145959537090270944865038958390885613060644489461870283206433207101087010636501376498986819716744531040366258618686855602380695921363506287494889291300730593353530878901674002714418840777604558819735000331951258133157109839303837935947034894162754791205763566919165414758765825743400492982094004040279596129875946609425057774761402825986489574739106079779010239183843529600784353697130171255294817157637137519106181412708523405787177712846304557684165087753095222133334038941999934851101067961338149004308615567754010923167456961882160557749582523234818669116398262204669436331303709819134415534166597500049862723589772489479528566964437513323583702994113699297025429755327999049730577691890693717664261706670081137406391964191785380036913826942937163240296131501222406381538479381544994761121123896953877429199393251522193433833151828009739571751576811754307544731251284615730226509130271043428527718761716408609573166229077473705921755654283266369775292404977082977379465822861606704390009345170911874575790503185616096419263907915392837582416343571714362196830879143716821055162645946077911902625176814196111305731002386879779539533039614644005907706013015961033243278974730798001388698743472109166657577295794342434342339934364609336731725434451946030128164367532108848893784332590947358702046972605405939925761724426702187219013551957866961063157396996082551501477474119469783183241625269031664010211987425083419232760938134553865693136837563295784343315101042466920920811701391184987155462039889411975462064514257201388752049117913657795339328136111093165833702200803913709099233558953831199085382066637599362871854992793621379999870122194960593591561678701673450873791963180441401788153206913954831350559027062845047453247257170848349198693405316088178686673829667443656563034368617329294834599078499516975859850594767323585531271931555117076311894368771266580746513328973671005007551660884456038301438671430650561840589349674936577655311565758355423028259325717918238874027851693732815121222637227909425817006235348197760317077138619544250292961526362383576650128711242624398384073988643533516278309628502232516399473514681768574916277736203417991944719479546761176556970978969896838340765303702622575846026251143295797209580737148142174619207835286273274330515610717671698957920830637566662998830097009491066664940041281539242547265548246573772369895502354466040051324602274486069495760747397436245456320336915099459015673366505916231306023959066384350571558771370668333665602061730763812768756731310384399268355684151789120707679086953764193896334391437041782405806567784972619625103988673096882912966108328409898898730454341774553585917910066744357905478462384385490497695992827802650924579914724292882183051331156971215703969404328463014970519204784004131392246528268676973497638958200623119670078591131741560228620200875528833053059714005812538449803060138465619229784860833809085507578763754743413713915667485297726402722310173115400583655573844542077192022005726080734821123219131872238652976624826252323100171506765668885676210170336975072605654256017755486188385270617528050096880086266785322850467392883726535433055254469253493526399658441575931482752182781081581073342219324713332134960013099197499613757282913061837818919312644685447246259713870979244728057630982239826471312169957725308845980078053853521947384719467358088478159043533479212061552538487099914702503730995989888135613386939356049193568654577365553850720798047164887792119035441914304830010344929670052744215926806725436300379577202208344131320156617830748502267821470729441316937514850768560403155174299856145864888731096680517808041251975873406639690732210259479029871347699741131486363471596085089503588541275836923686609982161212099862548324585436297240995527104535727396588695980846349790132358240532677974030147035164428703842168245383997246661997303318149490126977444230166227002368396235959953061236661194797614826321926652318491967105715815977387089506364384339490436401723047100481001088935861337279759541209617385759593042654640001863899389563018239455767286376656444921222711130518033518330239050757432395716981392030940201749988070150748489843494574856450776131696032715953956719846334922499281231595863491943620107836432199978355666812572904241062139926894630443869788157702013907767137408470292929141660653616969299896423260216186584406647471904665882876684146857250924018509782070022485115456429459466078138095998773251161959352103309187617221415550232121929193841001678068312767860612404892679762940690759715444811097369272686572884391862321442225871380338966228960470510462251734034200632523168961897944417262629751261859002366336908838738595907615986616579395736542784919077107468875298975152914799046800105503486143814027290108820464624284972270087344929299268313492728107349015027969109073505495454320122718217035634059928665616597520091708098909113966251557652042645176512473770324315920436351568422851348260138873160149467279509092090984615144850393319564217943786286575053213146240628531486374529638324543870486294318416816450086882883057549451164765207249989172538569202192060874823648855063515938265945990472016342568335161495604415736702068361483676412870688439679117106409063708710129163999602869154491161653992463442287846889289567162736403852506644808384993331325923275317259279939981985930475905828296359576601502586655256217540857780529056851569068731470802406528658550134998793165363821387809352861827855498696597819476158698659670185603888922692991160905040272774675714352762847246736295710391925458562493476846394120567694576605840458644131465103455028794861499163687719934450274068131597121770443433804984774877447540949058750602727327882513504304755707119256250460168946692198923051523562126417529566948023578673985600825600728699011206507464778915250973262571193209801127627114040107768569170358210693283012941182791296702605499699535967984571101998856819814370496951709467099111571373539758268164452809491976672079788075849190310156748201998406645440143546575585008448371734989929906099592893838414977784573239168395374517641658945725667424712750557761537968837852536632147253145373646737080875012720369123727653602506676962419145502063327726514972064578101625861123252280126302351615856456097462819515497044707479424496235742877700590572403587461281027275990383523492505001944278096987180083633108476940517254547115681507870842228594900051687783593933189835251775988302566681135032924314461186691836455367814937632244806683036586669228429005947678451781462148883725581951723263959742364096921019857728504307544848351468034756748066720905538224339650580229326431315577583297075550001096820788685896114980588823587313310756115929612938974941895086359069266605881038626636502174421202170750022794802952771624268594392719904672795701315491183522716385141016028835613191641096010091564491912224998967268719119903629180322152014158062427950114950866567459590133779202590272976611039737005893578458567393204363090000511028307982435389749945807165135771709971552400492951528941368171158791264519897465714195760809774829124704104064202119853660248216659206782517298680792731912888704016024587769104443619456429492543584536022742150470455308755660539695283818100896132719776069951543091374643989390685713408981122536922048916783143751905435178289341543616948777081094224256102557236715428655784858042339569390465405705352955274430830881571263271994693865170713859910347067677550324747719381945419699807671487482722063408318919709903149395913164514907749019743024349612401640075852295563217591497614027774881560743719422003140647460463799547485496111405187754666881362891783205895475045307113310137487623013445396993620255806414423557276752182212521939799411978099073040054488336321916293066827838801485284025393832775648331025873070807038327091940608704230952224036345369626922259531091508704280791345901679076999312658771118221288732066148657607843978477900002004812499588712496211523220681547662666073681404688247868351195897023041095706912110909332162703493834756731372888017047191015939208053305917469444593661105211653553392615049866080926829899036314573861813757933968322432955635351912306121633251874068474797809362690239713522596520848591143676927722408817039763993438183574841949034890615256893487907415616212279876043750482766905348695179881178114478372546442993960950267990937962847066709034446709833811018057601074527408857839052894051386246470125008870621147802052993118993933306178052324384659801788009189192153905562455724912046990578912656733060041834869552061072861883646314960034850312117715518624099280391031747375006096232628990448082652060855841010118912760875140422429313738781708441037194736270120149664211950856931810940943181746047063178008356824722350137879645897065368513000064500262151790116070976683667122692218597464175824585324759873037941600940450239677741584849022288008903739021188949612315080797348251349225257770042228903496500104380537659696046956082625051156769148990240761161776533431254460426387119605856066397398037185350410173163365950868624702239310574987266358290101348734107363999191147332000630925406215893872738643433618369178555181073344766703711246895543870508072892318105768388057548632174355076273212877914431434626367475123378659806409040158707947253988876133862274145464253872308743799334356299535931353113967687121791821806813196755170952087369874901629431018137073724387550646468902294027363442605442759928958168033999296704123221105403370670849702831502534183389668056518192479908707241907741720810068846012297341379370098439185118857977164138660162101744383195912019486256813197090118282128213352840871287863467266323548642431890165611860787667661378200468479453285307749858840147484385698481413016399594068746342035270914734618230090498990641023547993939849153490237956873125491718573236915275445055601426024668316137091661090169270799733729546565696692110223230286313771787207158165153762855164112049193019450295110864887281931667773550933628977581581519323300891524612627074694972822058594048111365286479365292769223285671268598237220373325417137885522554638480110136192601363516806175340204318609100013654317968270379757004732636057366605470301002251834961084503778668466834492153384927672365153060567872742361851355026911786740493935397957715091489723233101824911387372602918529086929188105797568531185007338199975595089833129689175935260064798451142447656505927367873250445393615368646202350991191552271977280385791678537682450376822283421188552492501785595206154171508264278945767321055242391982635890301116146534037566040916845742174062810526812455893352260831542943639334886224541142229638846438101257387247421973783088754636314736424006846269124761025277841196043411845009256732074651448948599517463678779422639072406227832045850949163792688567664074553019193771674892960752554033242504554631789839822604909983387496667798905869274360810543975483324432742250424936283954390298621579902451148661824594258142084607256849884476354856739109054122189028079184498870554522649964372715754585335714590332309240282404100962399531952330683896798338853661968628127557721400324431214857223176154185731921605619122505466880847398246860593789922083362595051355773173813511652561667680324997369308252707858820068279988549854632308551036151435636965222155863220418922710887229499041683631648904063346045750472484195799944367760843359719676325304397960730074584764723972155167605300343516293656118120459462857815918840857638458641365991765252548670899995779612072092765265678449038602777001950731436900298171722241426411793169859411307116638092872386573935410204656816107363944819684433660809870052032438288728287367136691633135954668738092777402829912614955192305539026624370023279836515144785050435691324086844520636301656100351073435186565456597163131418273282350666661978580283349776281754405195857534638458375686732407499964161843324533912863710818127561268822530241370371675903712529022134951830311556480519934250630623512729126788823655701682607128094535280350926234978206003097876273032246446690687059154819704076974774520010370439343845270514720254811000150950113636049251986057868983174777536606056139368760087873445564853329574996176532390199450822480473705574336687658172548421265764831146832648116833508777455828929921855687200124895319998769397183622678976513072890409040967204488044254793524628382771641931085808421055657333976920290721388860001134229705273788649745486317804242535468797622050445114947105420986810886768117795298336890148440473314981680391967479284579115093300449385649130450463080078716802938545003456014171364196161271362116946213870767850692961639166277072884378741478059150590843665114199234099641529695868045514633315146888525482646294507734434297747400386902731714233261586616895136195298875379275483324564414569800560362831798620602842903265543669496947846607037507594386828605803196824197809822759523886118496998467915239630346494396871462525915582577377100680259366818400956083757887784677190649572240353720966579483390125432097050192333636969186247769638475467312994703570518259515321261856057068163572928715557335434553407912416998557451920354044822382925360268739982858393951613753436994028299396620622451399107118398901419895758744764264517919155105416759049958744744937195497061187445718200381533051548086794257974752987396306089973508822507909338457399439872076075870093506626018243224763573378496891067220004597191793972394903439604245996789757246633377492612633415062429287923882232903009597152942837224678512655290332845658143832308189567422849711963743666400369057841865491133691281449273734639439679033122807161372540653270878388793555816192401666262666989240340086185774285753435466675189243991441860725529176740289172389718500250217453977558376231438289404376138216809021941777244345501768714909658708631788163824944299941766424807583778264536698525279402281312649522663292287347408148680721247033815881915286446756342580828641256354306433333879066683828440754286901119262699477833334753960603368410254769316132136625055412529122261390738980655431675317186935733053690721513405829270514441277550737026725265101521761787973366518854485082928730728030926029082188323660821210437376976266409340729215386374302743731583356726627586491134360394705657305358999060812673799039037297950002693596252855108554034696927206392356566277805586686457742654022137116606943614500990865844035488048518418813910495528698509103276333376664609082336791605104042457091431300714757893679259926297748372307378799730956365350793885840446880813279236672046542170795972061832606054424660479167806953146317699687577739944858296139182915511442584629585548334267444213174806696887214590541228271659258084073727590899457843943078937771046821160450443211171699121342316178222943850649401459530433019892073406446491905220587915590989351787617969710897839716615489134094825635428769386234211457148016482295813284073734488815502950523118983865212746997489258745933877052838320968238136040700318457004410487450936953701977175241317255353900442016068851755598762623738812237106278603443847708854331268896376286622478575122249900926599883826748852997230406254392078171354123276572868758061881527147745526487205672052903035502184105441065144427366504600693851911198795665573657464336608614748150047597612907216186053195173674703326797422915843213946077850617257763396996487357411023420767002435319009086359585357345042894554331362907959312722204313540630753717110817969378092866851121720820052549910743122278144655760245874335789329371336155099911767159834778463923340240784778651608779458616430801665765922047406864620350716776070409641537592250938805591957796841215184709431335901515248407648712577082082738689502831629498526914336679506433020600546884694782623436612589323415790250679819522073353614445669823148257457005216112978325603056449752447979191891524259365540879007117427509004632836896845843216887462686079870518339772178630720531241393162273019794792957883330452896017144687057722214991535105699923801469819412005636624794485651912559236309700684597510941122297322856544119962715682201340163182887534448953857626432446718221840019583313553484845137694481115070163064265781678628453158244454269392177099681871518788616221743145509556274609750704152776200923461336364198981697782102945726551735369598132348271707340334662738769801043708208287442592160035816379169474188015408415266427615611103622273758485746392951940446551391604419141175417031982860231350552440324977304114813765601472248799154300104106015222284036737057801052943007897350512613248899506742085782713299335315052708953960166049911314938320394224100716890497085734945315642799665217979828107877976783395895859023214150235690432991303338102199965930287043332104699343529935012190723393645021766973025057222364216337253632971432453762905226668451132904957634097787123433681293896893293113386514742518754502544627230526405540935671214349752493718187139235441453821567386316264040815362224371788709346629280239888619899274648197912325512129121548414439667284122516025588675903850261358854858486157162108076687126897143524928475894096293784695966629603539214729577011903042905581189997969823807621859771230797843242492149626199041239066975782245361072714513384694347347936615378379241557648132309417958044179424630990484147067819891819877097883507440926416917691814774057163615676255101711083963439914549072906983020584172085043004079550227659866909508387145118304192141185793414888202904308243571262356313314062299383300693631788787767393829636164186650976976875937882128673846397559902662908866416731830309098719647437782453181067938384659199556541235712073095172611893902202952066071251297115323076219046797364674014615261740438270827494467566214398774434490087143237818157300982249531515582454221957596353799082211854027785663221762621791921032203416831109711774721623978901349201838357197843255949200575223413456747841881609378341160237094193492372150840408536127421691183323433910674522581608385593313776429036057885822620301182884157924004556254440778915741698456862443539214329189608613379483358760748053783313693671760900834865883606362290277843024759927833803713182660358527752073193189197320539075133570745060584315578919520047271510869744807286055069401316457714115513520883102198250889809475406618621771745339703699403781508039883705328884000878578741105710964186447254915172177662735022646469545249731381817649467835759094234789705936057847970984864758734422040552859442864829417607243688469441408221049884442607955527847931518952561000984417730792374257277496440473031235814526630004711056673166781373520472936872325601579037851426210836138340970217336326441373497266286610634913161109731480565186415187393976853000482020270849385069290908487928112697896124406262738158705483867740336246588234802209225113170845388655141477637179537909107812191525551335228038310944046052995982935025043147807498312969698386094641706887076346562975012015405210433702085597882305631109078510230487315524554532439781017234063346554284417227543939237676411601190963773386115211625724090516469197232080918511756576349644011258306513672233689373412793197944540307756082913975259945189397288454856666936022295694392156700486287804438598284437153942279900186122116668919997005139409699311746420136212761616164171230245855339389039187797276497727771795948206935036966905976112772401006695614126731286218100995458751653395800041534495527311866728124982855846259866973202457145989382016958529538957032615628031365270436093407903761109514081041639316009328350678400808818659557541088699594230133556200139729023695917881551475868296347660444205980748624467994966922376367680435578687765644110204202370128372777594597299920867646709239019276955215754330771608855609274405959121387694618215676354520061372622817016207061290891428005833417061153043969121291240027703221501955647452674115718456918052555261319520639666537978175038136674358176708516873128573482410034407010278309617602391591028554814163544365500027068075812763694881179832737095116307519491904213504127032706009930062481058007345579534623826027990021901007416116788150980610242466552325417607896095673262665910047311694001130728974703447134282923377705123321989913462227411950655206630149847745840646246580244769558673701412987857052813127714449527627854519587204885343909630409969218103712814641057119709528042732021672186859299452439932533648285100626036355516082030309252786851648073115462141866320015264830322146831160853220696038961503857810148997111530019862409984042792185935052772206526878937564846482635750528738970725637832359805850813270426035651825740118131540704913011465477048908067641036940029285596479074651726984019017530858319449118691042976895358399765867327433443055035496215028866643844563770484789816465948274219435656855523581050438407989686394251294799044126031053241394614753381225506221226046617879336866957988079319195064228478049718076132569136809641270244336156617907913975199921609345502084261251777289379003801694164131660717154653263936631461590070100702671605345042289849947237371933830199898116863609754633654082445324422351699530143650649826664840529429160084982334226232773817481545688093086130170131644460239165619342055052746101847453200054970812296897916522934030373625615319591719712019745045240509835147020563985201407305683637896666858416390429732739127466023302126762809924681100374937596606622895608172910402983316767752451452717001467080745851336348026521060040661215702126450686835313128654255352833219978328810003497057375351761083970048424592913169924091265160694492539653947107576787103907932981674005853877606239367419567595278453403673065224782992899346832091972698222173853808159995079084051731137256247600958873428033481602665994092327508732683613553866887339089690307631590879038741493519187648316713531588715106475449319174250996386551511737092292014028381975505743571577254271170418195103986431019673936050166596689375514618388863615801626576510779926969603107013315909299020046029611259306466486350232728629333198964661781141180530245243775730335920646242881522719451300996648427727023085847778130976578480434061403034753103540960241483411633205897348547709860604055749276735504709301559392272419852627861467299000844646466029499968411410894378915529583091456451901293418740852728979164189299680965730121029952491271328515565045198189460110459228906548808429051136575700272826299387688963180961929790502835762647628605381360808302202511311833029607944489448932354224070367573163351455051062209693815430211874191261887572595410246191522500093142634113120000788146367814384133565275064918430004466987545493819876776191472116003068706008241605758619683785949069304384715151921483045313026350510351570932598714397576287555373049258592476194751139673524223799034209427382405437479422566686756008856622601926192068710562382582728425562191534044499181966011276318419172863617004161930558702926104585358960426330463744241269632592564902566694441397508824565909695875079410662234248719032851474861368901883112443973363934579181404755037238550342144914756138324576622718731658747583350613853029225160097224715722733372900481474728830854793252750408980060251632044826340802921454849275766186197407697497510629195937690067432293298158321188485550063382468586666670690099323421258297260506204684039279360081199136386519470781980039223345598237894920495675178977928908705382326516230314668544473959933896513309701134659131854259981441915700078931971594850929236188620131752038725531049558872505589102732267838864863320289047805433722113586090121864151285212927213051487208001272227573449561662290014731311987551889968568750619613091915217443648194512677272419149330747262795177988565992832391940734749486595440795097757494788824286744383242910016695206146546600363032039217862228722616582394263587063191081960759478921048101042000104128483874526642118048240235035102952503827832162201860037477542213881385596970638801385247719552947107451883797918951659391760683350007863709511042367591199817815712799879987617587725107629202047662850123333961855493233953003659199075432343670093088206815756232815144484580898187601485096735690310691098031294828887626113371365818843213694857908402273097487926302049982935880071928469764365993449599359583654170216549589693741750999458091061378134146505182910791792007755700636021921133533499204774481445003133206078870719182133601825679242519592257198028499725304831676035432087310689506198620927629656683380478888191974055019996256731634505860928270581139708982706815854159764695414975024570921232208147921230154254213858951008004502115200095136265435944462426996115725348077875332064273128652403467282941581468765985665929500440284697414589504332806727433910633754637495434899498419120002866614951150910225433201028490610307549358270933979592831536074532478595262459523349647753237104672577729842851475339224929889314275401060079785197343986412208682074457131426088478619807542306737532022402795902579910627327921911535364327949267012107978557400798243644945838962935029340152598017058031541247773104953741083617798520941823476450127202335290732505048881516504626607692219863867658036146793550309039348496325018548321073594335681442127282746681301618802089868954375506837501172848774573217188475905073310648431873144268778316865240201195131736728700362241298045808343527428722166178145021872820878611368535248425926515573437464443279283109455291731628703743461754148915595896814835343665360457514545236737471308781639983143943441225832486543447635870116030860931052919127186171094456584991832419181002688814416368379045757884778513508309440662296582809532291751031579458620835153964650823810549456180298469409581131709135241218683559749649934654951464025148671425590359267306783579997230715897194221085012784370095099963367130928054132660637312704408902390280432070917522348494841931826661263253405790528847161884475738940194364515346748023317851496744697830967708317682020740047778072225994958928716827580708265332965569194373889664103944305518857359068042464319118435255434722174026646446777978268447029658892864775549360104293276238863880010378855580011819431118564939891665528217974918896003095963488201368879043789477955642958687732610158144487848792328132054399403207066196944903295964535955576093787468204377007003339321698883683314876374190190578220653994783308033099629096234332224179813159405741102370402399376403999723267628851935815414173481825737125333304989263275693027793481313771310511124894254425656742381177174631360295819243664009492247373326183176532096070770884256012243108221177107870049587962577559783690053027499401427254357027783249644303645533960706467130404893131112566050909408425816271651261788513467766012904153377485192080977842633011723681061174768105426191107423804729180761300633802865804318566416621643869698734076831352539140411953898101297629485618636990188410588494271885412266623674927741469191196980895612370704197676672798665640567659433207329682392653396267459317861911465221572444832005188170447723284575649083882992301426197315542586180975242375459029414864590158389284047280198549167433252174841005091797780945946578208816004259462926721855285495250537248666420059869117348479824911096260432756387843312366087648438205990704792560622704407067728230161834913505653007515499060193215611883591994189940298767460090284444503985513398682757296991491382709561422632130947908683171841838591903254631786937492232029270035684468247155501300959747091982821502482870071800460168899748856202795335404040265915537291050741820460400314389355836503168536993475115028511303126673930389138088192753840623687963359428802282845647507956258568053858241700747742463220831246188297654935487893422174561921594394648869176713872163974926370239141990950786823147347647384018372799926021074017573613005192332605782415654281265883769728241294968617004142181818244482923822537544235285547401450065445553916182114307409230259053403055361527719694232191775887200755314671888515107414196718680836834869353851324806162862292745076146939923719449581635687282318605899833518707683505684877831980616090831310025665909652218656799932450510758505475555719856121196132762404519578510670344174168232672074962279648845899862533349579011559260732223931725156834245078417047691243022194438044378304383623124813046953940042170326060626057270371181291994340008784266269331172160510779967373378274407586504303710584203966899493593059697034507517571369869217953284034897171248499002252245605265513697283945003638403047301492436054139555123653524199744196734209447949767990840264042396388234444523277578674478127745192889573653198482969993378838465159667903007232214138804995004692268807182802795449583206539448495867851576727272980570780254643008806391144898988147301755718327420419982103253360831774642322168083083103069472953977879972254145591516004377725510272954365436080308118039333318165490310474266427286794748544408301427464811763725132378145887665135122152287616447191249117905361535062062114820756206833197071553171120064839828842437531691755907579195631322989678074223176039255236654367448477616406850194776503067818616868792766284403148376026616377212303269574744178930493064770060461701550863949615289835282063806685745591401639006330348187312749394300461115047491189687854276486008963455935599229089447076682307648892341659417811366155099527588287047948673090584215798386963438803283897469526344157274103645161974669687986784548468638248755910213908794351969805794138780317134185403767657096499428500915876753998313735349720732237489910502282830254829229433610232214797745476908195531822041119657244576756520939925359784545064539541763512899761805540420411603080315904269766201580766684272231841020156001639544521254804021104187251055594350308013223302833138543768478314785619443821763713786099326443851611269404047751390329904361051614251803730943919494851299299254381491065498141253694197279717232228549621283841595612425881393274203297933097775132299814495897198516294562648051375560251983707235098979153063546237250444615265552007849709393726309239088327874679461516272377168237920349921935871991206332047177958801629786399053892541699010993728283752340497348342767162917256204157223174842156927625065926694904804945602680171576592503182803053327429532961572654557903455841163219218036972689718066902044603706323118259321908963348553272224020062609524818248411361976121559752719667509991698563257619815393764855320447530884732022536270499282767075052290306515135044371297894617754957439936681054582703154470805065431079019704567649810328856359354616367855786689845287369173480470542199538951364150681888430223584031335218588319659007106810648181013226738818975046448820436343846459035005312369599800635204426275467224799857712119092285714038364598071822750772321852454094027328156356732865771589218974770680873212150330044498457966044182628955245502813175937262873596725547686426751354602650873574916775859801174328307935000398455154758602956870371168138941596618260567375464453145979438833513220283525887981511359603739281783139703914587626424881838623200685532586265570768669012777747342545831263564502464082602137131616808459981755324249135254020674994113580873050607644880949563524333092627057783783430637451871634098454415813743586310710101389208768862645237181440592712586374212024687929980787337338053999922702117959294406248972473643357812912280524736648857541339704602793876496770449814886028396505731829678591201850710306293955696060346721858241159167572187266537503220781929524687058141023217899159582453665255080242864286051598559259983282567110523294882439809133697095878432911939294749152321209456514416794272634855366973115295954735516055764577180361693378965404137713786586981618228419495940012322884117171227027759193268428934817508892680413843077343533539730198077646522788197001817448604050398097699654471914218192512111855978910967632770918724995942241078267233207295557695594135144921116896402915392755158039633695278274796251755909855592749717074393670941718691960215451226659047330701626064302729621143320483072996487246564168055491097935249236961904105303938153134378260661769144390311096521408198629967925516442549967801220852370299230239439438245342654778867339036043987515800954499478169551874941599478657223091634609293858748019461775894101981652712630086645927325010416601170865523062021527122427174583762671877338916183720808897555943587243585724728111413926918086299000532480410802017953795675459832049196480595384696207066637351133537541740725812742924411330497300422980125940408425194657023174175267931483338146064442840312181767447081745775084133048087499497319846248755987815164441479104938540980619910847574195565785142902725877269798938369877169960609220751472295617037048782012229814812008929258223119960592658300820462856902362059067427500481338340226985739957631885014086456532321127580771472338031309554692185514929044853010067053379363451708134995742678863627719978447587243378897535178324245829763823305200878810902082259894373738159351456087464749421242577613715532055289995435348335969009978947320700771473562401893832946902607948602318729935339011533430995736131465298525940427008930352593500432097412483778111605654479225254592987051401387879488287340329008815940034706091595038356406649432100098389903945525292449694544812306313986181282216652458091163243857578541395760331748511145172082268626879768845140025830739092485290406026649445067360288386735753763073124395594274091808547584469895437288481434345558941887005339737742992228144113696412196548236551201039442424350828211805338392295139886237857254110379033556683854250818113258557830059047361576214397586081369740871037416859463780967653072288464062350409181533066931445615486896682349123021699616847291269284356283913672899965195133043695318321532881059235440370988602641011050385260559990852463730760723622623195546705381253825162025377918113089590136613537069792280573015699685562063341948786129529454906300349825909018879550074316700867726470477992255029900825393212933140756872195251250701513244708635426980129570931438568520157943268492379944354287779041150116563864281115407268335393456566638887802020971808697519602241112590715140108960145295528110124462234191696728370897757143575792975994127527695247126034307340662252943211789258995606436497546915040679759563782674689906997005386916749813727237888732654866168446457546406349152498253648857790628435036838562602998666033753023886254408913446124702076411533727709866958872297609802739961692227131122035411800192838072398497459346526341720834738844815882972676333013255938436488332356928035875377647434134838916759154765442506136756484429074726608905569828779100966553642362308094844148725117423886893214195696281925352065841731784991166345171172818676459709806852714137070278520172738825366989705845976942382000284721526719367475487657196472135729533754583871586423561427124145161796273660432549227813779668428081594283991509132472832403593127420995204546500856580113219637139426148083936637310848948517416591316661652847145714630360268625231356629063423537194370272826832227676609362597403020684961925389582395607827820675038290105038381365222527386443824960608326321196026779081490246201955709487661324296042099273613707856111419317762538503702144213149501552691950207026919511896981353974957783453842429860009147415598728024658688084417849029488369822029542082015926214203689803431153669775801277158302008689918225408173896114199790805003134244987832464889156616290624103710339034171199350529963865990605527536800362965957506798292202117419801769308300288739747164740158397010659589622754269571058043437372807061823856728506276583797809528537880779733376116146707661657034054668484665967187023767208228333911408724929221805812556492138393979419446910191381566571634980421237692389472884848286186796583990367489130667104942358624180470327759904043860080271174287879505350827180267492071102136816505247132849494111686401820637330553315292318848838306968651086962540919179722692615655192486355307338818570475971644898326815088112768609258308988172131870297327792595042560114587387082167575783983756968368397202822307290427234465513030979230004336101448330218142494297122809408737488196563367411922494006503494315098200213963414452353868624307892585309025588891666634739366540183566154369901437405173953508888141056437887338835802025280957373999369439257837537925173800904640156885999955186511859524858004171925812352338379973424601171985639734771654739301981919236625898553988080372360022309818317010882433885585580129151576773527733243043027985637967644014255628928312856414516085015219580414651058100215913161798314374158732332986961085764603514903852374410549000297415426963839682388548948803429402910885800627379529716407030850469202332704225639136538808028682767518053710407990658240119872555779880636084602375227962893387807848145981899583900510608470717041450108723276639528418299941057814733769336112504156314880259082413878847780080521047479416089618180340940058631202732429865671367183616795732209881290473831109725706597623316511764181746561548972398933041742694563733888701343312504219459133438947009374428283923553869137599357134213308236984052751872189586230275436151702314986194755154989904106795444705559149374257035930081931202684858243015265658695888654107225710282320366639374727275700021026687120804652397763758001842348564568545583960735509507274089939376831330296036791342593118033779282868202198767823459079228963889841382640871710080199339600033201192655349693560186375468505974464619605056907443015434116837136222352119931012556215395396259003751918086001273788394497830447925906749806966205928812795843943797763794986556453712030921210600382901996089086993532457528594950031980764038184574130085911094803694861069381350767947331766695371972733206288111504265104785226900893083302890659345526601204344864217457482901260200893725708161725164721142190139194258044900743757412624883247914577516258316634179396054707399060858914355431214944262878448492120202037100008359127847295195207164884804198405849394984810361888301956217152618879306527397893002467590601672305474435297756739543760967528464791405189039356666949305194589481855301060429689190594884363284330315034319805380056330888293480761991982197857468096169508351252195953041047110530652072801292920916504740150818743397417510943720624511185458977840780167153276130685526687545725005150811368856586366929153770489285254234053848491623486061835940875510503140431883166376359154481772248657752822101403256597021199822985055168708600662228465942032607078224172061712697184197774825109987498758466335987384902817772141241819103437226946961274900630197558257592399019875673727487128561202412228655086940249948839096182661565149858711816160420362658426583308380098641823054697002209031975325089173821010568793195133653515979438692347692133428095768839456022110141865423668242141452498719533383174434106680434224594993615467062530814846701600461024661011397103357284097120042756527291350531692135513933673149948016678642781931722200990398331170244646275555196006640567441698048476173940923472580013599480817220454397135092008927074668518868112292761002230204746188540603655590318454931137529467083691360031665485746756392283291019810306762315623065061090019982155237022028481738848269344217398209080596946562629230746064192053251132335213622173613313762463234562451890313940445575667693385292883306747948066269259859111250995615042363710447346209811620416487817777881689332228104347531225214296676848009656070190353776817006691459012350817870635604153154530868668768530646439467941763993875564814425919799313477638962126338567485192472954540977902513352296083756548310653416930325084180896854960765855461944965562004106803588699704584229547863236840608642101934626320137351193586052162831260716586383716516135486736637923086808581086980679428203832300181179859352491674791719807259485614273222700153480353482536992334738772728351569046824624983115792867128045701353354341208737969713495593596391274331268609043475693018283863856193838153368198328693004363362037001904912688649086249167703932653042440220467231628554515341606590441007373530206354976421400118541836118497442862943190663985713144169553295149109392491825994929126412260775736767105124456151398521983258308379491920875356353359370066127305170354731547241398855390768122222126980096565251768977507183088853546242606998420805771085578968130741673365000975084271719674872755531648047398021991006781348317889252375438884603080570020213738470679447490742237541677221911690441283804518579703405336440709432428590354202086002427445884377637421142912286375751365618302680437102438795288093083118292456351757948894496433149773536566588483536635016747511852843457625199129788070297056813397462084536597464662108635893400434047899598695139160509444923223474044204835284554185097356824075654141570741066658364084730966038053489681002578815659770265193705073517005879737113412585917591252680155674269796845635196299918315787500829490572884219589522541916040711702951497930400837434401118992349380101735147191855517005304328956162506376701341857121824053915495992075745685776894598021509920965222280338791122618721180297026478186109136774442799396992383945484742455274453651234649596673055893184904277602284497802048225386020807645657488708702646967422314023133565549192786804354165781821730451494992084010276342685221992341129588981846856645932944596224480314810608638079234313379245994587815314819912554290162595228505115802627031642273680893304605115471272310962226760138774845953071769493895616311883153596434914703628013098985058152279078171648759891028979125931719931560210648903620986273302432191051418747241610763703568721907903376643024776617646123815711519919154773391259442298118159502768728167261289125852989400018265881072701040223100347825906235110787740139111274691037915294940367817833702509022480450854419203178587967903994395117206903990153976970311590593792596520244659639114578167375421524805212407489820985646074780473230810410539535218796079953375507041319913496018303417666162219431253051387906962740452420994809147090047121642011706070110441984027940402951343607088152615557112446485048593132587564209351126546032143887946886052706050171562624981663340795950040069341549073193642461170308673160628514888844449637382016498362486694771252960391723843316100863450754023640459229481530998468738389227635531099102458677141940342939571537603991680664152021663236844418943892808279647123310667989323231177377478552584110372241031786325838187897805250514077292733981955620005561093435079763517090693500161834328763714899139867056592075850409126673656179343449218653047056859271729958194332349505232708463277189357809444303673807913819033642205463030483304958963669625057712922679191961125384406215037213367298580225696535024474275724510896539225425787917761815967490293487051007447450661613519067765997445966373440365284624491037335819886778041893074033088799426107041067386789059761976676989608255796573641928894456517598271935972005643954916933941988404917611155270022921954910482995898908298029292461083449122363965598622191219864855169002479237933110562711563584373513613265132839096796290907344782982964832342317213979006269653366973838862235312545042042213419554979328177940717565638687104203997545047692501829632494358361343306110166625921171624570012622101901394747353535057042779126320724145261136801229286746044839580153421749650593888115211427428728165600769753937973792207712268713134120545027765182631046671075243498685811294002198418188447329546241480997825045968853559469775023641707303169021353737429880052937467849667506559248409999789429511449728193859711784422833522927604616179493187764418421468769014403628528959634028839094148535283262138948991332067421637883723829421224358900338775734262659533792235455453913091169572607850791914362588748142469135402345109215482047924830891835868913467047073214717451161149489038217821966632005454985149446315295518865453450439565962953719035023333366352574283115708913278943117085291946134369436744617833230202669268460450062465001079744572024555518203117310674975103852947656504828234083667990605374445367014029974744500971479881714960314668364714044406181701062658457464545128632599120088580619212283910878490601838562286471283205256528013277585980671291243455759462879270409532436630305852992078269991653885929191976071307420630868406033362557890922399578880993687364399029325910637177811406789850084098467420026787644030960456378151801246494834866773134381947539086994496401662935220881427789890522700740028512113080825618153689059237299887867734896317732864383794890872809940990236432145234666538687880954099142639346610583658722144772537205197816346701516342645533808977945586633242767712952280308335388219732345113414613913131152274480667514944151394607059104642906104233040894270629593153905175723804969199808656195878278579344396015908019969471810281548929707053642519449085251764135914532840290897449591666438615921646289522620932065907399186721631436911903740293423271791727311408749855192166468933357323402649991572563101274143099615622148603969379028267313590469167068387171415403736600993913868859994389775095716497337073213458728799884610989277845531198973987007398204005548034182831630661531655915431107342118424816820653058969478411308062263005801167017214448415182117572585248556416541496160873023905956934870862130794358119660044651823838025885779840618450846629109418613581488754467523241316751653410737100783545335133280257034034263654607133100395040688254151421739234343550245039277271494908187835513500301101971325658067323649898577997540048090782759206300213520531804028455563901176909447410147643999808060498242234458234500729512711215189216083429347623079026080245878271774907857529566772354439987690829758350392608393637376761617582156276983742607256506757545755408284074356089374784070483886930455578681041335058256770550306342522499291355064223098523032311267443056714277177521877942963370886421663826032371032632653752361058677127102206927411256229024262804129293448721155880729283324946269504967379850283370549389056072883831762031033764102355992877029651237725430245442116566808181156494094525058643709006253010282939399911289381600674882939873125575239511831981637368677035079509855620775901863488707675325199125240296444210984016460471169351646528345031135038824180126378679374078175521562155194879157372260864443561524027786602490321296862679375090052187327065437496208611070170715474081486029223379745288060630570025570547597318950953030032293273320745917929644460798847657189176895481612713788130113507811923606883938171773812946510752348923855854639931958597311723690472161623952882105981970971074471260437413604869278875611044657311067072789956161538273551670210788253862664033490826093738793742448374807457609130690851856243778491395054592479389070197802273876412100155513429148452423289247148706069077856833688282505931403869226195583606916683701613547274203483136701945565530027620159398862472229492252264268841229921654678991552605064414616673755720470622341330891285766794409005843131944284512607210211238572895737315670177348402642398570782750189850101092017578408246528791073739489700778602187643560092814588040215363467829099345688743788954287122759604915605488012844272336927759196981253489066211754675227507565980101321303482203216808783849956098984545673260945668371643316998985810226540533658615614429465252593410373000149181344558428829914520790369082058201876153081243192480835471128628649728352325133701055292198787164914375529855559135509446237006191119141673980773150489623084708189275509866301544930361680604259068715748875681384792299378588694597062112348546354321153328681959770020238141167248456977487263818933612223785539062734913542812176331263999470684890584853768291447439920310704864678735717409092691963067689312217345915140915682748998437363025242576289124137981929190346316813774580819954977039798308891559915100208454544739664820952528966505344202065967343295905274181612882875694402236131590649591856840971560952130773876344446122728104321302908663215324413601356391595722856284860233207513656502239623033383657956024005060429403476367342858753644154779310681922388968504835163766887130906571216702551676439471824867990767477512765433914779064112563897692880929308073270193044716490635011384879988764232057572047167132697590661261955115394130185668619400450832918961856511551821256826537438750396605095179156208597514319760020524528354413796290019701684487918578696959315569681570083815425104655532537219648683859415793983149038806372153815322569995601750845718587875519998061098376194265263385216332245573531832356191120195653240202822389010707522143682055702373651618007136796237957078393744626824189938754921760383694212116780778996986939814876071276740594285978427795866960502599117761462575339311255971147758460290281026588542637362222018487412054965267943066083853241711899906938961346997562839247492995418558453786779690523748421192929226865452290109638025292552267276370150598174448932070018952274568482522452657874771512597706516085720244728780432429363111514413127344701072467651768890276414368237019491324935982311586918068477675959548423033883585024924262489014019999231469244576642414404677443687208249832368019956559463450843486234976303187252870374987754522129722212931107350917599558908657583202647464082831171404082442943241474169384408164497045583392048095786793815242344203965398087362471985737260428898959153692114915997792019951600291934599159904421317839052553614617581488054335812738813195910506494714389892381932679934328555707986521957625959596505300844569877233125799957181985325802595368432234205886388361395343444603475907527413449312094304691578899523291642885659848759657914335505899944444909840114193964171261977560941047395220360554415256020779958222447012029277294154346329960135872717901160633271723063077008747337815623544794592983110704546438834363651549209641746790813343094015789023378517451205193422502416471670847605797173087821046641528873466580145200329364204881124182408490368485974554914109330782959317742626054646928871083189484604738644012954395418559637140334356038737803995542470370247593575491644268320532649656753252204545657457687042768397777716619757546864021272527056280512016939207950489996168393214875872385359165625796345380465837718664722002893982323170330012137598772340239600776403693946712669425534488758107521717335392361464922455827993311178299367776171576288876078473878636967479312015964135465168902142167251754567966802596064191668058102748112780847918449134439390071448482164448867260081251632040449376088056511472215210096084212235221814224519740594590230731960443954961581632971428835844453903438781684954327594701273529205495289955583690428011714601796408356534106271959611160163775982106720348899121848235610403673890391455478593101893167145154676351999621474746497529610250189007784905545980698535910852536947818727911573052521339192561134622099865338301097837355057487876498823213223048794334215687396642613878279652130373652387147572053880685418787781043168241519066772623731042008083615745238025711758171351834623140802061758990784276102665689380611960784958897566831423175057735018750575024786848143929285855206153919518390474420996396972418159785563882979143237697234504755703564118538466363007187947216632633349098338480245067906018239839181728906416764855839282534939723468274726534076056528061131944709908687788504495013924280909063498429802441160890504734792375299914755197084705884888183131962083676119175048030895245795592194144254342374408129376012433069262982592942655011028190317008747771508606055039880976981512690293727247634043436171802575379428061703844115538404735069404835476044637088773668673403301141831324606900837561431518455023913744169078527280832373886100615016673591118422287887662924929942950212233423365911469777168546069434033005615203797186063521438737785893954299842256863138187120829370131992021457872014357389758834967162758254413357614917931962674939587566914171081021690167668839659205548413728262152147079417617121064190576146819726944921837631360944024339410000758277347942811657522013064533255629710497317904076881890477815555094758337016002833827620109053258571106751038130488193493431803815593456955845459321529182258709043145396081822803660755259557956057832730766760185381324951313467249228549729126339017277132791557821376684849261506337115686988033577614185310431156355912087720940597651539822585437308015681524028867847657182227301762304465718098155690777814967422651836085510317789839698773375809213587488365279533902291057281282550461120706864800793580960016023548063131033956844525378191336706747423349706344614787844549055335135620565908862297886000484171033607472945508796079225170063263836042541686329071350577118975259848293703332494535326868791190228833832755280890207891702740983348893832221616806343773054534662512594125839519799590494034719656913788761541879221122324461419867923723120572978824726908677244131281200009884054183478412697228977307974956887715147026811172665289443830149979573369031130189050639565130575694612519386580175982654626823629916340556880405837875462915693124835485277901612746715222587354351849154880597238008024118480599188309189941826369488357663677907885110038103759421775756247409732449443128496391348499323743795537981233071097674896220411173219454307513166761263218908871817436356574347002621776122342807686338912792936319165741349247088110147290394947415487804250515492807024767667783308809698133506961177290621359051550346462045281045188414350338435308433642018001588148999166280747713236382101278193469472972331001988737119927189396465104678303732628413508172891740470208253044118407598482703945198531125748748152936432815115968871767875026952929422086226723215360623884908284412813102750465515366252931852630081936709760172903680979868501535533278770039596242131486618212123072434935933686568252331006371698725272696577148735116347890476020688212175689997432341160286653726267349798136711710603948782871264379577041105532469420707134731990279038336571607235938851147225645103899751550144876272126309342829258662832478899121906373845391454561428702653762077926565216435409978501561373032245743889097571237346301419879381612430789330274398247228827682412460005982122153618885682205652925033481151203176471576860989295573661776465693640863268599511534794966897787629408046118234963785658973094417488141519831299250192647284976312186021313539312143911836320898026856223103852811594267149045430903127542808853064212120855496931911605676871213956363881509089362583539102157672405487438655483017469451472766564529560914704580332685410023558065019729438377448030912536578736802781800196625010694594279126048789630401115331258611257697616266983276668054350509608271753208444830646599989171062743399299723303156698957219154063544230101856482679543396822914692837002035108385978639716880389205991564468339241771344876944346096471705422547680906445022639381734690189343994309960366783956934459503051460750333808522038197664198141801923907617640197115575200257739920577265888451235316016054218713453430630866417717794698566340947137001028511439364230588660849984082408709217650040162425348917262283790159140565494818160588229542593348385340049272412063197682061957287042866936830534108578787022460055572416041229114764475366744019068064503233454555116085708165622105946919048438652358466566329608121242863638880151324723660991169386921059989331479540716774406731780294518063882569813169070631796580394715540209176108976188043957151507428066298132770214130088772733156238612544957351896542680211513296644627985154277405264980808163844469555586780661905518925741561676710732475175161648553884413125977248809277023584316004297200638624685165546018058205764767365273327826906963796556824110626050444055323903528680066788621521665407660700976281710914316409750216192464044783130405825382619042042638846258278454418678922062059479015443791533595259540460954908553868256508741939487790015386845507648351360698452308983671005222981016871882497256673153443565397657589055403221997042098953465457838074497774427865803282840662716252048832839986921097661143610586772566724523301037076121403821811442261816353591391714427679033033449059491198038669249098404404437754633137651861456261581598685832950837903272345210446207176014078657621618207916085556656166391027720138903299011440675187940204308349134143731256237262062354372352229648552399137246638354347818357071093144109029056124915377615698780888954707496863033979814908077367553236229760928756037045315912995065627586856494906259137573336351325262721275965186491207548232610194465177820667622523987994199292051291876532602311152522765356510269742938408943642071080242896268387394681913745920893390057358893335501684442713447793742944725410728978864076616177683879973068432681754508293139728078708959584242777071849804463948891361673846322517619542151255643928239007586657217368824790529047277567121110664275025055891807619601595781902930740867965179646632147299358401089369177953025378009422177799431316765100416709053635728008912068145175805950578676092383804458395851555014311965975038794187588179895902000817551912011761235775407099015521513284792968518430171075960026931607537021747312449482847513558028672417045587615440281442248791458128211094623343372626821624554887306054758311867942362506731898411403411758755948636433161391608636533594908030160162610462691741842314789153481518483041596082141180867017372681715070268222277987294533027319813342778181751168017576230348302599706717775071535531995660315549232588170965633547898287807191095831012336057043927884759010018776670155994628382457202476408649316588626223321209107603481266289315087794157263122329245067000979873172414563729041540720400892176930009170747242192119295499200172711761747123215729872846041756817814533389842260939786048903809809858537678922928499018368982603297357906714306390335564405715677922694067227403249121981190626445717703751281736765079483165730595754726845023375665957951003269473146224003365522911306268925424763886390676544592998106706621373497267780602997081714682698126887635447769503374218374003065494686055082054022008886184451574472250648380018327144825683966544692550538518609637314909853881747047039586357173431415892290212012380831991287091931182542594904693361254905918423748691189739323430831875180466671377210506916867992282673710417587757836231480484048257041590013992277377002093064106467766593635731784178844892035309740400100399945708325530411062858745063914418739246870246470159320801886596851819888613967846663901796152392124309981372059491616772391094953899328949163567869061148323753197264438743156563144369116567721246346261510283713075674906077901268557084063549810298988301830215694063050813058039903318014293407460036010895980469164093287230327300301000884473110283518495823947197768936566372927853028263383946916222745660411084826996069005708840748593549102345085835319030433724857624450242788689741075600633797422466439236841649052478663820842994580508974209356753046288954263187793604763712934133819424147007677952639149784282575474315804396050138321740029061894875110832468443040015028760896220283471401482087776991329771483283679047060963947446740719108294241663757473161935684267376471485214824622693437277719738117130414987421085000165866977692257924157376114638142031713345642673305587254664937207379866084571584643679890049007357242203245741759526921075334327955822698244845816147901232187536789881248481218550449932342879854543468910929038901697500253131575011936996314601013336348933532106063634656750500894722427925626580990672117770893120070934401997559968317779841484948524716710756796844435245348204164961753378749776668035704354601941735790915366827720458798088764841009898981565372104641004620689294166965683827246624354228537227643075808216309072726737066486875953653385702597552003964516149728371798956995881040329290392459258769447347142246553870117074687343160794019406106308015520984204194421244323487814806681403704252978583551443015339832181606665216128961045924930264371140407228437685287401566495820226896033596359262973533462920828960174292393077829104927845517503139173717260755045779403610381848634893888905122905630172932709487387221258711289266215018331210160551347037974271529174493990784046428760030868045669212002402116185712353097259549671076805226642569641123784334316927688019284558599211788435450559424250174174574083826975188311929711246030948304291979147485390322091878441409739651633798989971898486878357663700645704390391748039820751417682723687712969529139121539370588435156590117171872074606954146486884942009855199394708810503124891309389901091333730236253716934630691863807955246589743396344998355304022271039506845330305104261198484497382192143541163439412714153649073401710253137382622052518051447317983942126309133723841187016739486640978980586597655742921295479762637693371515427276285908069144504359397033120538086825859862589513161243942652036896966980726520399479995969241555064361898060083660613957097931107666169261147767679027670720011467650203277655486285880633654156384630792252371527827252917865345515076962331384891039881094720454376813300331434778288212026768194323168989504421886058813994264763577590389984960491377946871849041212917565333292879769953498119657800679886816541242886563223741113434499070326039746042675400739790035737638453340009791337031845419186218860865787539204652185258467094372714480733531982263365790458389679449465612612785996793211228969331267597187006424273450139099150226375196961314006761866371961849438270302059519746203351631426880404690084609333770507334299120510568468562893929869653208370831601678648742172094177907654412369242976779975052932095492074975746700439847365875534582973457417313992634924133967969718465108549414834370716785951624711706407437836263210259596127009182963158097456325779946966970935681262223171062172146894441835866578819082873101346212908744434048698064696056391600180844621133423741532649342540106962166092017175879913757077243642482331084927890107661950101878990500129228752764901789251773854790093097416528915857961542245286970563758637750450809746014594644955534815843276828770486327377572960080930773994618828337016292135489628029468936139486639638108808315444376669060033647420245840022681942852745125792676036412735634957440331283172106934265353642492639929635398734377216260389756457886672970662704436868903099724378729938066127129437658859534004256339417726448881127586346408446674866730542172081771167365209174613779024170928336271504399288953991913242290500982000750952974518340001910945100768712980736373125126073881587052979450080821737624340964130546138268393820153295691989270473020375500607627324500255692047516552418751667205010480613064239570780835073422298649262551849484482815343806569925263665029441063268569295690766692585349022723643899176022687774686744407897388563039860620334478294082344696623871650535212168943060570585454802537286244141319381701647521434386538486508529130758186558740962796647002671198798302335427848087337007257273876171938004447556267582659333603494217021648117989831447808451014457361957742615805804753864112221860635764587191113127332037565082509836798506572933023844687049330588779763012735884588978323899642873684276149283399987566114703280900693521376172064604628339533884098926344355590266920660278174134854589634394638987872081226100705578062776643341503889236413819423929730400909153986946514340603427379357337987722608410141041512206954848300551070755749215100392645032602678000320143702685890741991638422174479103105078913588435036517341549825298636301862062355511598114544733403472263177146615696263413805548367905246306640740007212202533586233257111840642890595733196698745882227002966338759616867565941558450121358720743875546370827005017268132464455233011023571254400970364527650929486971137724990782231894267132310794896917079310086154277863056257657739264393154985829154141069837076987002458007078424594870266734156211308690401365377425833144983786253682410748860707914419241964568125075132200148602926724765623275158161251671404402041971127367332677214096269084285397032336864403503497568522326039811060890075806998024632004194407414295527669164554822703878227422582973555730597028647103733032026225312999561850857058183894008869049616817328558436849723793135075744529184315945348900828612643218542417262916551525951319573720941639903637536453146507926889307176139404412983292300230855367216801269499102800071207691730106879906305726115375578590017031047663274805406903290270169740042744169850943464520184545435397432035485317575670511566687308776841448062785826456058701126441649425131736418019493325608396756941658661197765952034829034289758520258986644804416411286369670978067189374741968309419855369309448280059348461619999179945505851339360711121837693933029900906599382068566060807324135722920191769772050156888129430358626305850335010200564759866958322236713614518133164453208741807710521986673926835584032757658876356243885032031940958833297572896807629951238827809811166070254112928270933235625780908734751773745111195613737897671397674319563720576783923938121804005509134876770340269394519807117215161991692062897434993690060192682807070047384901608360340603439502746570351537188922130982438291655093738539666600635611937529344580629160145578741326161290067997243366627471113520750631553911983329839056419969787806861393065095789522680769784212523768339367057724666309258772149287301672062129914803304461763490978260211559699714822197564351739927836779065111792668398684012628620929061791832177431234528506027031180175814042276295014116874535942464636940330855264478956388804609771140983614834118411613709491501692681020674659132302391471416223175829384794617595883026132951938603577311886313168631625805977840452556205831066797584986280007757593933988698377899816216974081815759912022975981889887761638987805050310318797179985288976160322649093507557709738934945757426504347377515342426473996260838640734252337120222392982522431642497146788023804256614617699877959620585646190709764089640322282655533729628506474492371451714310534526310128893746359855294447207955470094685135526215372902130422400671101762505667915223068389249175326254729411449836573805178013301229733961105124582725561924483166286660761318447501726376687228151533973410357166016555803362188898552285517889896635277726191078399616910949073270457302275280165992688375701776754961649188423959558169169048659568604949006747317321164213566132524714420017202194132284705017929256404549391933254379209079397628290162695953882176928951805198203376549503122123531898189244310216524694826656134620303198313285772525110632064497770008097720853366138608908062939433906769086943815478633155469518714393694748555476946644059694217542768602202261969442684511273591082635983680256617696726834346412554382014767214044617924049464139310786426282580508636130265797341614956695120874553120033609547799001713001298217600265473346231309670590690729766818185842504427230610064609328556350700676748580015146483958169732756086169483217373118796250694895146588341662383811966253810177392039148819641006646879872568627286622503481717415951442055584925494392375949425085723679511932302264453426953618016580431077765606718522745044040268527489547462589658562702094554870297298627882209688006438296139705895177758258682380284022396672923241233575116289707331993278072656594460773364563924011754801810242534656790545289860043647015644595847279657916650891154168673151036661184307635201254929700637618124241653764153768262278385689587366611824515223429213498736488494593300205336770391130673123692984415265427373887576991631216045394379970322267744617068291875886352164428359623584846253947447145655000748617212484531438289863468480519485173714161196324982494921939401205441412854214673808953514263876996240803624410400846592923756911109270688171539430279807114799166971529858735314074182875085407601769151497617060687694821915551735736436255258714397446978449754015957752234072637227507514206192589321858318864152061040087023149199666848068871926762970813991274802702446030123943289199535712719002279871426527018593864296294024888150923998858200892512998480328098166296487602412024279533813342067961047750739180823284541142637890116230146618660439963784153624662488676008857826885766335281424441575537043007902735619944488777016022406254368796365806548962152031435655812986076758572606991367325981620513599087496090177914331620276404743745534242369275119769407066341200985566585377611356735857190938918450129555098645740185051816368379689346722281668663948926023239643020109893630792057552865256419286122858484626985730448069253249807375931925296780339150191844927364193696613439202264032225713687325031673429795391520854573293367974517058372216481920601632734933997555577616237172649457836261799307661894398762905957427555864473689154523905943439452599881962486115648731756068505996965072403224175749590638524998194657805116766608876242670116629220829182152819443452370856267731543375519215902687039547880241073863842474936920199535002334766047870718831377003522051699913006428356257497112673846022083673473279512351934522276555664379262304626302039104475297413022668976277179437985982675064039443670717538088230528727586442001284093624151513755430437295526276765131997850839010085297921832409347684683189201848577959150288773494983664733260998600118987703732498580763623481396399192139688240900089885905905844299884057631943710906277383036225239300343835224194449772996030807853163953004358648023292292338806234114510932273204752837199433193110971479310251603902992908623406364663414332859911278677804135906252206452845076816000369394181600587202056223150924262949060839018160137850872730309494517645448073824010887033942693417884469824975750447525952337236545026543701203731131434295637297856020778685914561778252285741878410762764640650978707733309702981574637734622063538255219213419360415711956315193598228626672929698436252392084487782484713171901236120537545418569215649003915017771891702877905660213171893300108599518932359285987253596692940856184763227329404800570836958136712706925617159995079854047090392734759601552164920976018069759517119292659731957677694801070469701001599467372794942701278542076847336274730485131257563046987466393364079920979483727871935411719841491641328373170262128246769023058864838043228447164048785504575333852678331278091015223684981086615594639617344616142054241696180941960521087092821522862882544540815759632542531558428785701423250688200109159145444534565215355105308267377720479581611284121828643370751267978678586676488805581886070555769108636869122819091747571611586802904538530349865970743765407672948445273936753732684481640777757686123434804545857195427079752546830630282052801058990092651435214447790226096660757695817849090697135151044846451192695126094775962361427578257064781652737679401541889194549788124549036645562411681510397166656394629804714231175412520223410412495705550501875502265859641412326124376782030277750175652936893214044869190325265431672139004960886859133597251879564849758820539386481147605289705477903605446639190636412668064091882560343007862767255673095021468325447193309113825330127777916883782281102484587926101058361494289914358718975196476429246503209390374119009449766128025948358509195291956268222457675522660715409460437238081819506150895869518285910076281403379503597635774448078743423501167313389667150903460851771339300674431960082090716122910973242241424458509172431087505960436544215046620549744032596140319481128649943614147991974814661764989559860560079325638476480898400265465085677059893564577355202647983617909216539001533409593595774810456332365027030700569194749473338710013154193154652535695836479090333736556870429672587526429710237458621665978054670213812377844589411353834985118637408659466124970089506026109456000372957140149551299606195952069385114530212925147190681709416074880174447789996298020586527869949636129662167505140815455286534139786670917243297752781639981772226440059483921229536528975802004530790327292546196768227008328600590281907448718409283773760656541820974416300674049394743825749336194123449110053658858859467188763760824493337898272837417597403487689590645596685990824362086078202690468361037726241620598103037583614300549098270068816087552533436574756124599504227509778145188715460006221236992928757951959169054891308780120088880780013450896230395020373726836564920708701816872585914698907828060593143096477322594662619452529297215981904973556866533425148254181201564501312628844727166506581358129214233411510273526579841659698137828926817723024903682826009429116394369268233928913307352468485809200562652029040866474862678782646124043774667561377553516739719123260168794304310894256362329177526272454751289750077779626257675042630260264569052587867242385670390846194178749313856153607721392997259802973414863268275563787898228153451582667129306150637544835984540468239393451621534171681995757178047224032565318008915018145353301503928198314255212610960408384762526961549990245203354956576255172071100509017172224184586482908386749001656276511026824253556023679580587827499409639585375627225987778646067961506968677252497152218919450302260962365889438560903255136583378555591788285663702034594682066847349844465204468286954123144378083500194627045520206749302476501491067919082570235493781219551028477950618616963122901666349094756590693629902926254236629682087237655810029363408681296359404483585499558751244697661155204020971639621958283012461749538855560174623678759675227324601428737923786973334561746684029602964151929203378163425638287755515885357336131224451174661623718599597826387429394694164068558721217670678527153518625020206681149654390499375510353459155310572690365340898062453235560356164417156718535058955202335376501403247623725881225914032361499834574529658660700596051748266873733696556296505800617144488888971061157819821122032825798911137861257653485396761271185950803544404408680226378985015568022597250777099446331837822264858439098562112814856006836345929843338225200350639553611336406472387907904606407086670756035144958249388698113633648912881839260073900888226531025773102269330466459228368981938015213454187714798527609164848361652240728385555406259111899010333348488087797917132835904223034511253163901233390817725236143095148943450182305259083686892788611716886944157352715877819712497932172337672435182352423313396413605039768302370692285526613179790344501680303712538312809410630186033420126599805824791305209021432761555119584573976086350800579048682490424757471713041509505786746445013076231601436728177431020384521796042448392890213503066129775235758501049044475166029315255404456657265955065862628536468069929711052641750228210436604261988685354010915157661823185691445627762333898296499385561697842574087608076530209536678353613855307927497855036393454527785972623645634311491173904031530926353801566076044047420288922595629907211525372582059352259692351258562228842177207496793638705657903188483257314484948139650818886813496819518627698683357277874624703736897868298139717572494391260575879082065593826017808013390389608192621597379095290725318829088898076899248386654659448424131949318057901847078662371200696864696323451990817024450133070667896475533408460562092354570410580499648490493176813520499874123145804733228612340229217254341217357484045602033393712816250911659372954680954514787612316166790262187474600854793236367277083394727261984825726648371581899319947845650848042230138521085085796492101034601212449129058724585820423149393942238240328941124932138531121929116987662907931323709341043087212919191807649344840169715057944453729043794540518364855032327899133914617607465630705772441551790914893005272342996271429314079849070327551579666876489909206286992678995441032385238121593930131915704824558597351230653008348836568548269253372237933202094302362831020920314228638337393301904047221395898117972298282720696607705394076221219228232107593304282417068603894173168937097007448911494897829148010301585252530028437891423879361758125921037138689017910570320376214624846164653363515943541704333076286566561689336520899717874357249361465938069614234554807904211690730966920295654625732519307272935440541994804694182560914430973332264287980715307065256885233154535812444361336734852308027464237167417292542701698765231745131406452671676081675295524043976219608606859665328708960373117334871380864306561047502615102649406887174578019473208455218228516981353304933562207295882152368824703549639119039589821142744502450269638343661648717238992316140735851111623265586005000721444905120130479135694362070463434297123766484928659172883434228428007015249240682504544868789908561620938029447281068690103904919119978919148834270318063908801202302346315653795445130042349171839702090392562598614127101691482299394558859884157846761690942204587920977852099597863640190675590089452188212275544246223602361101910438252339582580860416360706669691577047450859090265234894608921285891215518516212631003388285491271799193096101973137462251890531892687410621123679894033706362581968359395859323543800153321163180640967084526548845932610595115622246822415507059289373868975148549852550737108173494057826331682598581246084833177434511855565918365422048818404730581675293422803205776848423585157636667932845964006714292850835364003714640967742518227042032240918361068574878877384585812982906079094299121321089349848827987065841532156601166419894532110633070308017487890812742391036402512955401821421557346044898051983443258775421565137413026945130151753584166401021069736711762156641510491500354042760423526025143884384600813987923323101230994020014787045859253121017318726730205673256862371643966564656380742327001488981455346870411646444555868236388329391884701014665688457105924622122172935315580070660029003590307460069377326924127797044880831710099528686547227918813489200039069903618430327208536202207439250316546882236425527385177168310714170868644091877667178137612060217051717370394505796257850330565881141725626478491128689428507259776074880571090015847907511793419478017316770374263164402909478464501076200430319213773037487722640998039298821295778856646091141592913596366271621743715421284688705338320977744719548627135377263525767611699893235507938253632938861335353252363763183590862119150155457346712579748869989944628115292881676080192795872833072536460930899743631523839350527576274420369818621000959857143950271010337837352563318758116733123408837483069136482387197720013725065706616037808051334018040469881956522096646758802557017512778690037150027940751730355509752635719413267295404527616300028660180160218285657349692914451416164651468311757494948618776987978768284054742950995088450263707508176227681214922167347348679402779171231207844627889555357393373711260339661359693021664127709539113247478200862585994424729874353332275418212221818845003083451258497912089366766525859252686644021521312757686467943410356277163397257877736548943265720082661888111430827432324430564569298917236659475138037731663296329661887409117633183551424655658861001114213707672370363156833008747635624251872238485512872158916302113060966664743758348139514709888248214666691819318192907349191021240782486145408903656957183871031908239685089043739045748585464468996574107942612528778477059637026101939595531608952881748551941785217353948997319570732337855039759232300998753714768269751754486609484178326231679090237246956062378056449007779812550423324660715550228656975743681141325741740735652801511034136693490275811317945027362660842235768231242396876847572427550673116947726189368709556368954544121296293689407739458898148528359398322612906717779907776473359718236331668040068617797509226312073354374715328435924845755168080431853965310332105991946456885456945167748422416692595603722587173940290538514834285495608536560115971086694656959371059779186692118509311407334654163107247932326637863826988458566318568948313576090448054780586260437917516687211175428317528157728221496149352662507760440063155923606640079086670797959930789842998501542613751252442037584772432229823917078003102450349051885171917006942448526498491741359908769386163244641359648515594231663003945191851887396765304859403029638714752249707252362359255641396243498397806039965504757498485683661871128081400408472258948301592406994936410059433018554292283497926969151057410382486236592076624050960990290573813200376486751414081329451241972448203434723158532608711538469225555548478884660142848484484492158940332392135543535931990301874238442501777857691473916277165194298415275463379472861522987751926708460958415103680195431381485022610292461265127539267312227123359189138266618765294614389732436893272137332200404488569706429796751495495936991684298597026491556939070974101103172758182262891149580869264164450269096291099695155278237704018202871094631719639479734939285967948614811667355472338057089301926171392999389630678894895950018347802139890141081558185262569339366035354971692700717660424201095777325909200683254933135144315079267653596912073760259251230225117394903086016847581799058378440360946169641540609650303533360803566767083886395227925651984657086147246353200120802758634892132760637206084881205078571853652000313876835685062439444977424782857961001221056276724408275295177626360466348635884048191729703510012137796850651848977591884708020355003237298725462491627966861828453038634552048357675253114036002631000071485208763717916677641067214361251540404464372799592392351760161897960680032484695285435937587298345881272617596644122745743245692547083921829167847661718717127122915848159470488508510025672932176186328636150096280496975330317500162111549405994960534907253744426315107630028145915969540131834402032583872443866056723891991896460259551902062822803711399722066270950904442230419467079766448224435515136135206993779858155433151760318635638575436956707897068080525799678040938169872227311959561562063533100540296683480859405123930527430771357614045632564003614743556345609981081800819866122571754162247430884436996495967190599250683132666563518377140752747333210901905032045850914079223354865766414774706965693974553485895271024364066170491612592733877056662924422053264624826188899998415257954401500049981321621359890877194356213039324175330950216770460121611991585747055138978965964347223030516517741419616982164094416803976448797696247296380862692417513227862482975550007433873835914240088651135109604333464592039013602869741216788815018869476829706371198195905156005966458170397887248650763502371232834797296633766446565869413117411479553454774312806032069105795959140040511067420183771123292804554439296990366218228280063734395576521189919693611291703234526306282406095872861823429567204156316240650193307618872341815787783075560837003262111643726932704553513937156395441891541470672281630105053694955660585310768229642562884764263794127322176808417438698422525757777254544949227901743763838890810967135714279710070906884539877980159888913126996017549935410994643406855479466365139671720404255332926641983175827925386037858935065682263021800104537479402911356776381773744035357134204547104584866159353279747263260175242778966655054986191144706634553112667322258377359934959619699836846402826606586124371792493446479696375160151697559221216684334884666838214948489104005960614331465863010086397975640831725588388554162125436354387445696253719071321243233543483191905880068966616994144700377977738258766443369004092993656453662589114561069252239011933000159240711546441727763912523582336282617053311643475877593003535403992048818731346466137840553754689693050406930820054393260901506160503427866986765648647977103335686916046658976733195550451208811841090788593047256550230204385965886522845449832047315858486424104022997330729157363318508930068383491379897729090065888468270867642426204111164571765986171638935834077136834517182964244089291139394686052112933310967528347353540573225462464315519734108703631051352467893217523677143043638342171465849044178622891383804997742902068140473552721367027058165835531112250190843250788936404914389549922267290112008804897001656748047416819511664321761376273041146269712985107297985992502697515803980740708140109191277604593280877638657811934261247867800690451325112158750991665530922915848981389130122122014542022326636710785619513610035435568578143272953312842149165045705399925644638891046110218655002160610708307330375041122688594851131893427632330059355398831007150584109495263793692618258578414159835365857181501608913703027529332705598305764302292183803188976838634946796842389824777930838896159289167449928752495236197801603634785606798440661606729718934348649642322850109875930583286683825446452785774845296166427510905015596064749402026517538856706367468818016226754599816953938165734547602214357323709331573171236400916302125171359685296747833293738704152049911329360278212786868422188321861403048867843741488984091728274326945221831851115218321590442988170143707646653058316702365873257087988534732053580669020294153748599251606735950881159191196729736401684578694403652297766220835807208461805664134190469233346070073632788129519967373645830669059267997118332136827470464854412477758114790060794880756700380579503354931982718585928697640628722503922551411656444642833692708143422224359298114853342858375670482781481138893168083037513534062485909645146513132409670807481138173825277102451268675247362088785818802529770435624118753502460930405451814578402491873935305552228289164351659467828833580244380746695488172621145820382146785912666091740681946648562842665915106312428753490092104707001998524789206107703565714321061726521166220771077976697531220169419212053336238171816344539862267317128386777001839856556480789216813577336428370289574457195217642319474830677748262930944210914117071987169267563067611068451093166173753919374048587092100470985308532029393051256183406500922185753969923053065306355740290953815545129130274874409741707014409769344378254832112017649498669760529796456582951401341952597481393740455874853372418950081716404310463933281442402928322329192227657532173763364474475323851070522462503646327344004663012384539724730730755460701911597375681956989115945427806149167009026866249913553131113238109141617228979008599832799583327457479642340244960241938785868363455532115922423883803162939780652551415887422853732465482793951007407072414147892893877908785025254232582781013444533177326463243133063932693485893327592384388251252368441966192214134380391777485314047233303683304859840698074883280442799993757204986294983062264495594123886590496948513241521279189702712965582430377312000352670746687672505785154736663282982100592003428096734800709598856620865032702769506520579056139401051684380539021371981407901678246382498120078726402801162816810654323013428413519586451422453714826986679717147547946876123859506931970675727058167282274515646819946353583851267443043106069793685120404556872426515126260690026344848855911170508642980187873115044451178534631902418644198473726335791607460759975038217271304136641914809601254616708582358630086448211846569769038257987067494338190473951971744526177113809172363037367663664354376555787696528777741480977667668450081322972522412138742150303592252941998592082172207751131390491459607395095986989766404153839489598535053015654229503288204882086743125781823397472994555141029033920622459407038053775036075149005798970780015697348472492195261660094678950497080677190074517026671324604633672754858047528241990574492991838638944687300701710326065497058632883504157315719398184321858036059186803289556109717586776308189829290268075638980251546148475931168762774146696907720867456717493805460418627442605940653719955301448029672696433019945429906245317399492793550964630149049548303823827249866330840195702469689285617997083060272241917722290679366012683405859531503476212125364159318113847284499631418082713906731573699896647689190628062220450069956532228458896645527802976304580812463688374431113528100745365465109326215918120397679129458608124518894759423153111696207536801351084552552738186981703540703613353625741577437233920987376369084980675754326879944918843241277886386367256543200316838612044882910681478340887444024238782366065495713690127184362511555492315783051808334554913979543889566852873627812628453264606056280408761175298358815766560979080216148047911553597440496618163331118820615561148246116074099331134421646953244793675412105827882971584237346718651543987265561159328580925603331521500236873643662134787088077960591838097239830897426729518789659485326024881450877765556653634648068249616219333535539545918747743876472778501546674191663684232667182575372610650062370734301132395650793054661672299711587545735090286908955849443903343888116372958081942842778999076569198009245128862583737506147801597166749863526537186977718514844624559949041220277314766927117185804037050332034796465089134766044094699946686182125267852686794806424810669717117779245724840788149742584167113027228842120252807173808997715773847010022219093895302677082649860048689166257001921648003879636149870601953577551863934984755526117005401719378937603744115931744484109798954886016501736161352919854934169002485050527403945105588896648548204006149705165303253297779602359763548760778114674709537974188727880510738890628383879314281078125514290656586221311819814690013374704272174703747207941525519983214521296532299485239461695528532574599994605379224859474441418781504471010641090293900489599883497736690083704697595287792382044256765299123355833312046162802874740713970651981399123821991522418291823729131267685878954520236196349417930621120840821121712294444126544639004947895479723129267862390654601499373764837521516992533683494187614598783410262396659813030522069117172621617292172552443859716991919657054565409526607652628839832515640987676736393649828483043008666768726970124828725761496633577627021849447746257819019918886154302398514388083756081914488107602886387422968045279648448136084004055143170382946790927974709577047566342140912323510603837910954487927167940694403188896010010619605947051539980637477505201992554710135661871689950471947228910168731454740025944179452210249912619923826704531061283344790544503290720228194010175490043806550299167520192492219088465961349470839654962704548812370700617362991389878264749823400535857607033037788784740798606526077396059715023042307940019900834729659612960795858678732279335208258510478237870351788525848144828001297271046732862735197063108483610334814871057854682551355899895812543807713398790052669785439328072580758113590894514766932052845832613940978973229217624838082787666937912131772861863931099693893843098857439971585918989570007792016802629707492796886719004719381822777465302036212531892143550271371318833633277250303614756398094899288117063646888062624321074706651438803043192110171055627131408288825920677114519481503941892924957658367462371681743529410740247981067766915729671119477856135724849894696157142616638590642908053919165944679582784270356643453457274996301473943775866916809189731108050691277308102999597689878047015759939398899138121634143289869237527908428932698142478163589119572348006266959190228292539059849793836596513160209379042121075205371685452004874793218276707579735001211517561754105010419845049388404609448869540812906051119345675842241542965552886889385538918734865272178606321193250290955557189522440070212646389308870954453692076800849355815418525696730783024954119749815386369588349811763510493909323666500695558008122621889500912698538783451856943542768069914850672467615216020277292444456800568232385195986658377349694671501471596059054719196134767429979731224346004687932380662436703850132713548819355827781958979400185138628106023734676808463601622701962349833411573370069091764654011721530663646042956857057906090542757234471968955476513272670437878482943849874289629520308268342436094066122111316591896880743662424242824572813185828390444029191407511924623501076803888583353323703896407598679496601108298405829970874836153486112563757846521578430320161622694430587739294515474562104162049702608450390527651048117468438721573588357498243494723548985625465084934782975718867167256406065560206413826815116801664754904931564875757729364523474833559644221028189994020937983946731160441342406281428657944702223654417522154160323507319734474542326833426391335137150837881578841519065622849564957507704115794244745479342609033108969267526784573246637036756464466803116112334657670397634943190831950973866850901793895008650098329384835798713744904075312771023678494417144525065513950474377465444195176124816099654256729617302387941857134766503798820177294507618523766871086761810213776367514971083759012311058912734836839019960969225938843809551483613168900040119478686989719672909282719447367422554829151747303809053104830517287158361607229880739248211471395642949459365760016720167032012740599498782916627027584898653608320078733781987695678572086657266150826443460409774584215635185889248067409255860916974073719082569872550611836099664948322509887847340664644659580549218702999758381059974822927037404969587095214316837682221751154817514718494248580616789417264762457630837218285981677552331882202528607577193749329946662640748796631849775231683459814608434046738657288025061964194344672316551652369578679213162696883103667567780358525659856307355756439549493441367622142567645264457301824386930348170969731961737206529957155770409466365203671547201168166220566085921581048481460821759430576725913831347968035527036619288367434593193175284917587691676601371245779738467519617540218818338439274870430728145432561335901392307190417558305061712689641421619761596845060518860202846546572461323607281467323491209081906706124423542178998134257855583154519640705415708126381803201305970352554908490822230167065177277884423551954298622564546425370504737370133608993196968192777354417747268537617564021883217882722781019761616253693139005795669225980152062467527922041507459598814333320578424961212607012301884913285136807220259359303497592407118547703857314300523661567665619382671525715873816478554755377119671460408075849303253827679868996951265123051075803864435517063753149091584008204446194506913660486125242028954358137749999212191872648473230644682264010325825110878806820394755518099030755440837371671225427553943834122971677332791732074629714894801017240064471897758792308930061046731052405744677088557545713934141867734404380577853124589217924923495653749760842101012140338747527949083652033214316937285164457257188332035631950395676562768044894162177174856096519751067887329232173320160262986347822570543858435148255301027613659747110040259030124829430622234601172310045725575903924798216104175649848028760710782795701570919474214416722318895016234764233411060240812697976079810599546279738828879386196158791673617802091119215582520999428215152835090842059030571572448215810525032918443286660848448982407342901042818649772758738732020422142015394139815290461756146082283973703030346421461496675313821730327101111395911449479073972083187643534589919809721420492735125847846473676637697558315051384090330004188296458615338433335577002665012144842447761473502991974503711967917382086493291353044537702822333901856181218882837583823241100987562562116521137337825110267250722192092786703403946225722275547362816965367975285355550080897595259882674247006903374765048997102654677759572330980022381743690740820903985481580523862093965969378644461338544056460191150951130173110182962487611991172088441764726065707020380011912957003289719266372614105382472346011500123160893631954907908056065189540885033265989977047053770520624685866985387387898683787225677636906947814723544137229458753359815020747083127806448419698200990143218382585340838334997489860563235373832364014907345754409576714616584596684396903543845382097447277725698841704959959585388123196091954355011836622108936441926920188442673494225972730432852612052043452157225305467801052855915442553005129532844706283396534714136708342362237278578507172538328631984073514102293406296817569177625564682450901616289655801981075764840547771836633653464587438407150768201124278594556035124904124045143425453217512906853728376751678433133365204293236586169009479163375375651695627828434645178731273890404019052303945308672614341932213833632842775909500041740056542330551441911669540882906280507002949901829557547807963297662168546748513294895044721672385321320629932368823546675896816709780799030660206680256452534034833287481178675220139870553154773600569336829896342766388507373700333156666038102712662541261061063149342510173264086490750438260432331909710175415793005778957705079924610634963721188357862638330688134440131710611015986368280785332392084043245170837168154842801698890957600262645903873669870318584674016457682740455617913928156933685374970205554116278094302389889762926979681344640836939661715623886264872709839347182794120495624970590145936030316088298710706285958362669345995127501154156453308247786233551900001180116922188162133169292559151927777854697951626498286929070963782721405499312002557815201936119446240484594188352434137877212512340025858788097499857549500795574417303008619515982762505445665450772596464120823778943169911057452370858628287718734425197666867216699382355217931866992839414129642701981720712493990934297517195341989298175505089466615329231381869391442743930305448400746545551179245679617341867515053901264746273912218486158703039498079411341955925413119434265194976547464744311381137759432931230878185298858667349737253732780323878406568692935532120162436580114585305752439307878860836519281736554286927542507714819174393490084529453376117972398674004019609672339456772674917470314608726390761113879000898043213884328750130430594696180707825596055936764882779830578217225235550796829931242711908585430138413232488141687819595259763637035129261585567176988078639984100768680527602083013246176283181742003389556589625667692017806478530082459952197996112607024974475761805792204782210455082415382441365187762891304473699335619765422732813189297043753297254685806209485944715295187203244976153206622632309514875334009899276564675919380672022847772449074005323625898791472991143760239807572110905183139906779672730897872265788373806464863900214154220528353364616701894893353701023682121048629447710832795942371610012219972272926126155392206334129722847132527508039889044274619360129804763016948392987583582026107843759508982396384575131260004200206578867913702670124287886062072030840004334675331609531034759015679666107451670124591363916069152792678316910111229859229735004710213139871866116154108231691489292833633488428891511877261399910300578023260024299284901046878006092351657158913727944384746752258040580652579525934049877428879478450291559373455398121002400605623203648150722551481574242059141859573633781496484046856526057715337280400353460372985160237754553009134511501297400572729900068594104983963028012563972333948716977098792604561661081958817114512267950264730253204248840098646319345703475627549779364974252811462213432410753095377501056766191857119056812880660094131246297142812319414206336155468007415978480908568850848781939278562357004685686508663347466653034359981921433625456198803792974691470952075473141947264658906894976666674629082933428347579428679860875744009311930810504030999609203731380046303107620834799031832007717857574471181287725027873551592234621530418992520991073178006353163036079139209916953419833094089586320704814176188661781710071976409803559170492216558861044759855506868563376642219692879467072046095183983023257018612737046703904408622229084071144278381935213644526719207989533831130821016635898064003555796915928471882210187344629953441906402427821961760276122505617818442167953682294493810808445151617554648163751734536977070332972155335214153575861397001947945146664182775649953678182449575577797081460559056479464274120712474572711819604286539090904905804089115611275729561725801040629876114083862881492296554083981953763928656079360607026477777484077403155766599788166807088859375778848369196999975412045045283220568513016370405760869741178201117951384939285789089932845009573219499736322967973023089732192025132253995531650233411442880002402547401724704419542799069280077496730491371478025242960831936090332149925060612501027509480409317501487549007387423694420691378635973078390986090971832095818881233773066371424330274697143492141609029527557501794986648430491446032928500925000766959316337207541055846337333823445397173677092665982584898915413877678958441063861251755307830750577307589486532650935552737312629540691832648555679414337826309984528068633521191723106817015279373421077617506194808097415401638912447147694535855789903423286344437926115541963077971874176576664891815708684726562467679576768373360175170575770229402785152469797531422213394685948130076699448371795006259414407192419066351076206515826219048898857541555347743813884789303666417445838300056186547755752244633056430656079104292556753310735370285720149495059438022083712742231067283495624109878023623480933564880124621013085780865097251107774590186104891322626469082340971881582001495396673931289156388667578924098821916298988743485971323069582397299725132571778480489092104781618667939103149211304232722762474200999928738747750279458626838170991694078187803730505831781425491198226375485296933227544954800273727992941626636320295211797824974764498443324614439303608580522929896403255930134713885213800492375224157676574205268917924167554474181700045658694417145207980950969867884330810319862067897949804931258069218712085189369913508333797724913299068939941235203323887468216031410411921324351669738303667196564511860606722958036069352216814394218626669898618515179945463757655949442908011547929299608943241404630074716432069706377270531449721311778831205896792279385721980886424533066333974759572511758637524153921589205285870555704668119534261735067374737840714676734753557617616343521335105923409223480237172595289531760100926771856568253268764110044743645148587084330751526082969874583378258979730735738560208053719392936480759517719601761400480577092990535191146077296779144388169359634567904150447088555734745265033208027380727400888809711985790887897172904072082519398451813711220681516109830101414104170849000780588162824191839808386279376309327354422288119623531161424872862742143480025021752229128867861655180629512529429994311897047066923522760568852573832374103665563732228061627877903568924328072585186103917333356917015338706442010542321846993597864638156818355889168823641807257942590615611158224470545594075840157134418876320185587853749578448641430605413306062684579436304818700865226114351760794268175171015504744755468468167472818128962782252130828780408152474483459745214345613155769126209511600685463068893916037717087560931371244013593017713820625651436001789746910379851672071738396672307048641103054073573180979831056947747795383035222434382383696168077195802626504232357857873330942103608739752442324851853142757081160163302402865351740775830214469395363818151548873217880872468148114188446641230288314252885968250442976616936889806976817992141104188454369068446554097059287606927743834099866872705597336640019609253682501283946637344128313153482592895586496832850391995989484969397499962308864886237650227375632615546935342745373202141275358567749346155121503492240688090243349984463818064440578953020573668865237622574679029623545473891184691726498151792151761543180616460116375829876443988337052581991230117364075592073312148644350042604014572454373475418328317110179332651314716688572202092520046384719118467191954648802498173625003614870666337638303639518412105136309547372407348514687640966248019876201547217631566141308415455953250560226414959818194583020941606827217726029780472272161118059085804677607167434441273624931498977169978632790176875903352068675559864072374206192436900593773038340700976138696102690947800583103210688169540957626913134401612124768972496732473626283530147541371384757461786614307880399852538805673523451123384564779247113891216895236524138650525702458839067331721274776001917565827233923064703253410444132279350155476852079651718231203328811054551847510944201978289546036744659077974652592445571510492424279564780196969032181308204280012538564077362785850154769357758364359621212251432029444129804122033449845212678880985502871147412838493936877671482965904991656806653619711134625990397643226667967318617437428902338404598199074674909697288071172569293962820402505786693980632869402808072962367735947931145022580865390162878167324653711938953839376927693293627233499341271389058047581132716858645039915578775149847282198479555776523659014446369061515707163831487131969819846446585575015545280354041160900284343859616176859332350871525033997795713017978425769761845964350174503188808871261991374737711723213995483164331478929492912909427572034618783117741283584445944868193469165270174567735585930061397753324150633437177934127065896899047135822857100203390998329018773710264925965960621968119303946284602264713595462194015836784219724662030211063368232612612327921650218901305088171421522377168339744045053468788523772997977545690949641972244005676495969497811969781922935319935260646827829642321871323477201467974990896866095055502032892000295902468489431573970213514312571000705959446666076197108365415959283225211501365335332799426894636167516497862719371507506094749276513638821673382432107679243067218640205200220338178633450266354792761480972283668280817889208847090843443470104859621679104905416364966945985077308392573939588642569019826138883906208010379320009973846108659546283718412304423911426213468126228847724716136694780311720659786330252900300969131050693473146711278108814770658312584906892533928477357729240258219043509682833054522243404529794474604784648515070023947369069206975636917422618231497711529827134261772003309041120052246806044886960801577854780743606662945982177346282868540136185712863577948243248685343866454572162364579030005669836735152202307502603536409210729888567676060499011318570564242835374530585972626062962492656566616611001447643939527435616193948679290617752174536064071870338966693829713489574233008409460575033526303685381747335490638379928690689614248795809185310324591691772607234457982757479577386696294483623524557639974903597356064767571768395575476715438482764069165224403494053606579343084177036622395792850969066115945942509031331464902317260894572526048810162759878061559214912351969445894480524119842728762002089618391308392070689853714910901840282560619170347516827591232647559294634752267561285661632239884248740761914722136130207617186734609425596049571262996406026489028754884768554775942386868709382745017375151527060854418902887839807807002955729416053214520502671655770540032056546142105371918946461425390600944400500360790738571423894034811952462810125064885578894617154837461090022181586608749824455225569354029856758215251304377810695430168267782915359946408614366445334034916342855554498269786850038550065789154193447159449194008388193108970956221910622361543700569590886036610761452950200849280847130000336447709992209289030151099054095380386582937567212972634098804271737284483782153491872637347389643979140639401660069586966345931628368636787182378882464489334909256162446223520034377651032888911502880136393164019152917368435095511613983828866364213830423686229450315153997848473266671658124970689729675753642740628121423675073219041838190391343427661805553267381810003586139455637994793159870471720278025986971390379038261274939654314456851486700979988737549212030590781975400417024565720438628407676205807212278002952816099756313027540783397511152233446950432599884995490263783503090551470273535014434477288068147495892357360232361955457482842152562763572919659910806839394794139067376055031994403345951671561124381737689547493981600657107971947569319243079879738832465880096461632888334607190222350044757982825473772571924394564204116105437931699031935939373705717657336856442515161334932739276988013211377010483156141583341768994695782749190586516871156858865431182273879339723589405439023822298923762741668240863066242970702527302694804250173130002779756722620323193658303592468410178388882909462974255489975607133327153783869685615234628707541235233756371832397586500450678606018318766795498299131854834356861806771970774333886817150540481494543705850210030362859818073323916354951634323404856008651292741143683104575254105662555900667874227048293840591906917607445985915648335924049163311193522028110101703433836898863135465794407327869540209011673652506138036472333001049696796476004386663631366918769602541642727772664297715880453386120270516800505246336363715443938610387929775012283230532953854258423253878450570223172386740570562660064553467981745711654174021884749772509203669356604839821926534031038303098500081770953513221374030653984892664070605759022928096608545304318185927358097853655635039946326150126915469459220523602481644456550981123430222580927792334716802999892953496456242188038667133638514759435124713427708619596282567086371558424348883508287851251487825600719433346418627701443771396283841328950809686250670629796349367821948166244619561764783310712179425089751905811736966086796097612298982798153241220179633523317531285166135282926364485109152333792210345558816080274281067419786419071944210164727195718914184909475087830163941043499689280519887751121175223720975625538210928090229996257094454096544979401148275253661975936041329698801066147220893126528453957123931940202901794218211890482916419602335081725170733171112582285902250462971189863411591211071983354882039784174176760123005175418521196441840187803143608429738458232190029130876728426575420725270327934161526973610937110488801652177861077570599652657137265570464971092009651577084096046593164551467083309818455355428047671176000293149833667742929402873451111626734578550950161722203530475969097386710498007896446489039125277167793015116085794594354634787223118928563590508352431574090384870688880556523650735637266248786617406076245755653982781263407106358429595035759281551705029989610522003376262555666139184500632989049984902051772712276464123154038770621837809155296133206998803610066818316846719395905845731899250058643933681222447004024988885718645196738367988913490112882396639918449467677889648535768236408965524509943902134139953574539607008934382178356600337083888032822304429322749507632319401034862564419385385890773394739239371738665086220599926859277978658529952821167320118090161078518573955343066678444145098785410607924167160599812894713484555777695436966050998115219399318881161781890763392524879111955227172520618038196151195282677596917904575970166301540962850505509226639724830681197258957676400098522196840163365687265636867539767574168688056331097479618628424172153806489497819143627998526428866896048391231259861578256797587743604232095248126877815802853680009882865924363504226337097126662306439347182193156475676848889161750093047714018940430081696862692401381476088312881790014924385523922098783093497605184827978687463373841954636294525258096000196081385044057712753266031298414326707646638071188445525543918852490880543074177453680552185304532711426098495488642034997489832758909372210443005955174656857715716300126473512559136900811662331165904110716414308288039216691544456794734456027452498047470200819667142242707750833796199313563383002814617185020748388390901789620210498013739279748623102060477684717059870300612959461236870460560038801750255063566622696099903672707365769839668214055307709149684060179830355019782191993840991595902291656611937951215137329394040553345602170321244006866764545739262148025762071247893553788623281206253715812179079251580829928394098078008453422455365221913889377636596662377092048590354890161233812386967185842939856136201549472975140592695881398535131529048618562843820275120403630843387762441942836572615223124514390921731499421697392029773895296499615971756864999738942227453515111274584118166859624989876452307196781384221239583162880466810843936548193945212707535632501645231611477727379255555837708174319945066339762473509447217447610909428992820396077972827053803375720403914117645790928877613707941420523171692728770923550440391654697896635527170879085077423981205998380405707366764913440010874338523110620773188726127301610163826380025093955744763730310269246658750490425469310317811208392894680133532984082015040235860563907530629614454075059369400836715570295681612422425634766051155250685154091899518048011477164812763552162409767847834396619819540571123322541359456541505369986245657137874920917464324639459718970319375510004796829632872102612026714912681523100558992706903375549874612876385561123673757577635614283385510471517900505903424853118911174512702358762273471728437622038323029549915350331798279054656740688306207462263753573960651411311573529098346283675385544140373040328622383729586670042676263620130356614693287395017298301899309012415569188682104641267568817165608433442055617872357502086219255104390106046440239928266118064953027431382134980253243545410473886469401138880653973437799917395021593414916420281216853656889289960701280803469478047341562520002405351963183483726385746292470216851918255005225526067660782791316638754101023782538216001413732725876557770042023324923200713356483686017892128149006192450724406750772729554937317946997527061682189045109678771114854771682926697479283409507166168315132247254507623818310191444223767140062544529082047586467408289295365846577189383491751003658771689331022197024025658116999990308821333464600474902196902054368660705230236207884896610396459691716489097977707958915617323387456208849317242341445842390004948125456874523620137960097985147281547834815058397901030941422235524284457919993695253466306240722347189930434865296968647786458650852097939156511656057635960365648334748605375679177641735222169168171939076021056366647930696243424528114700625501836663761170584656083392592755879857588094785236302093356538130116883263933503893083894681885834997858875599062063159459861334938155923855297655067666786111198976054648690937785965517816176713431691637789531418351890334909312992269849399462037321861683552283435560706418194318240515212194524088260770718108807161899814338731263039501804449199805722364817542341637611459690386917221592885936879692512007289804549120240604712121923543696724444778375674057008627141306172638294492267192581967840088682927775942196672789629570339990643824321745859821271633650385408610422996833128496826266185694338404320605279285132571504688565351845887158991575761645665494218054430396097233102877402754226791268971508334497981677354922958370147826390094203995782190801160859058531307387900643552591867753551824410773043029703809620643617377854574383219225973495152994081012382758878202283282560956167194475667847256514030047077348737596717371856100233611341750328339943645724889781333872121595941687105040898319244719578448114263135565932641530493680417214587767394259911091235645548775023152149860440383732357124452458412371532351919168749880631921365754918734353864188088444386731729302524295452525482152100071835891480124678071121599039951393118866907436358614802809235990099296151535470409949860865766211739998645482574355482736477393580794182409142708799828927354622577238520371058849226568571863734469928659200612257167740481543675700911456586588230157513998052757260181696253020641319667081467842182092849950844934874788443336815512960276309769947617349111003329189564727298089465751396197328563751700158896912208320936346601516130124382035013873546268326354714120060318864051233633813564946403179951680552677682564890516928246979253434563631089617460528821400860892549065813799512543070562081279202105501879347409295607409390113075693838912693314505537293315585801120720594630900183601206876031521316953030927515166782176720317496849265019731213247891296934118517350953800589521561540307027615591358858612643762988256546946862441422845639493098624158573608173411643133364432500494541175334627675743494428593210715623299384471888835614046111748570675841723176015722231973490684047611430940071513229242996932114064976528099278701905388455649322452779877762737241567715950814165133096358165321103593799382196703632996422160841960652589180948982213893910532253461891506113077749640762890318764819031772151250046624910831422979016953864163365707969855661567359237365404890178219200889011332196203791788676759440578798723576166635373340871153005962585214753753271963612135132680642462129954551044749980781059180641610208918394438756409075046192994990519722618511083195913571378881986876422346722503391200741878417642341113468461724941789552134940832710394227338135556897426023436078622573117192759713262297154717007874921897819948119557434526930363122951530945065406748310726959328258938546805279988611907745632096262519686803771481663864817001890192872778909024583323777538731497844961692205432891533580127970858236335584443156371860238605570626906709676306010445549299542624532883317958301193133170750609301200201319603150346239566400657825284374858572811369837624315138902088386614869769230254918452450935682355721951044601836364350375894718304121572986127913729892388547865633221633627455470596805551945247736717334853834148850808785075256192759367846419677849054168659319004266485616593644765088882546820176720225009085917664748687414410360084361607074527332330745553668988644752956764544199306657332939619042718249079311827992171945717748357331218695943446688455438073846726257711626533321749968569663060522214303818118252445611511773929455699779721260269830732904768545045829834566472475100790333146830568317056022797503513725953253573707863602086997793841837495218006179659392865262842090226834684324506407671147020720004731080562896573407790705060115184029824599358559489270071178324707519877031662863557037797759360916669033499560738900527451763161641467019049246657105243364334048139994139286508452899990758124526992207837986563007174729828683806575571222259823763262500263970381461860229272344344588683384324539958004894026795174938743037065473375446959053384293832987114767183476789049746503260087562965436321328506017614157417277305295105401259298747195236808998771622472951448354386344044894340007599103017235932757182582348852880393187979403337118849269040409429220217287900752123955532869651652586112614137332755112815025522785950868849249436325064935153023626035189317855574223403488239056269872370660357424994099009940006537620681372563595069916950327275355876759549652409184057426966333696168771564153348746008689697751978682242952034246439138224220367255714776133459595247615924910087065026470387716368883726492323394124733277134337432474704873103726336851014711467713442560167410351103744645681906480036108067987027813755903239661769550695062371087256120899265177616045731788610557634587460145900749608395368530580368238251953456987007425232284531581412050787061959943849159228478802739653224539315257241989384868971934740273253558462469703824493560249868745015016616666941247450629865118329462627042025290349505982151508290458556872807044062986674476383248154431944523225098088158647845092814847260099789430216524768436534407080218180229244310632445866689656571657498565856465802348160224508396033459037241266202696493387783954164386099750086245809731496629304156610299426648314119347056095413055845613190425347942100365842701550712450841276540773268757125847251090061737222127480951075497781416110911161556549120375348420006627420852966749866521324308094388339543198995138398588096669459465609359136918230380323725636521647483976219647815121458486814558932090102216697423707815443183056326967700098936982042378441093060883005078987138372806050453079878264545439587252551901003286455274598095130779767406401405970678460030254305601231845484955382725911913074858768396081773673133446375311542259226355618548224604818184268503572195185102972101139614827178481624545493807444123815143003788775335751560854525066610823159294415449598266804544556274182004422707053234117629687286071943579161141312651072947833507184534286263182412611124703255022053971354062108242802682428406464194545907822766442319300304007813225416979965757118393249250817999771401885662907312739963210922867759869342475368741411463685246579414638765163631294586470870044301423438616602588153997449557325631062974341404102922939729857142271539563668534782640577020538279256912633807147002026074217196362041604237532815941733653443768235600747326191178777304429119708653292473228357247215489439804007792385041558611434189162819777022286381978009254488674799716188765926445048879026949449548422954535542754175211408503015311300307441795877807524694053135670474799511669792848227909624338468065895877641667320795694992358812322805853122205152483938207414374798158333176079508984808459987281513642812143147553772484070383040698814211705163124112480662207767377172921070876293696633715554713507488252115040023526056445393531558783042448494979591169422999221187747773742819658302726588386344576426737422841275871117806476793900478689810106966540422632390336116793375346018162257142546372818745262342303278956851695014350431965198006750385078860672083111456525747074908131165529280524424036172548357378500093825845792625311320266884074344671626385465008532121928916682784617647968621750486815615462597502082555975611520138925939400980479146983583380972984552832311325522210246934523746978385089422475647402939702847535076337454728426301118793037801060482462188933925380291979498688881069062511850001708000906156490007229513251356513217459532000662689964675856819253416508732602093650507706180075594850466611991356620337609678772325315990625392591281111230469013578124594076957350881714898045857857598619474585042401212184432423091649636562202722966882882081848969389767878460729681484273447048840840247209436468245920827409423943539134494404861442083111068496478110925954910155568524199994924108301319103713763942949298844269790477139637776949082010498146400138297493933117768920029378648139021898273323223496399522709074404974125057681867022659116467276756707612859444095395932411435590569916738370466380047462648951529327188278014290116843177620809582629779192678769638651682439889131099568121310705915834755137962944935864157808774621337381584477470281461795678351108298446184571396491414625297523009363651806459029538157350647205183764529111040093925164014169732834384321536199516090063350203990121384217816669120965235957243889912431065283310522346980505806623012417802254986235582154297558731450443738760851051976994176720544001922172931198592877845816930785850189973680850224845255612015255851265955588272438665438491086270002638325588033993095013231050751714907577051336704677905597336023401739180172817357869588667320044871423656852717946862586948772230325162561364825517125853716304669262176091434132507618339173186900763187618739943094069574911437011311045795594693756627720802847639080451190827408506327932151015838368046183953342227259544456155388579906120278796671029764085681022638006156393377185274545827285809836149884578912026534421319628782705135018571348416645855212438827590852317864523917127777423344792731465409752716432548237701458467996057635579545777901499680772235918898310201256100799246549633857128923291636484391271575920329701130103401300813390051198155860609291202820601865400307727594128860405154734275594856262427506779419927524273778201370040820195703361896105389584351694904903567049667390182050731987951057411622592399138236477950412644674355443311646385090548012520546694073216111133469074475282180506048023363576861486053270841555532810869221974640440256889124070286484814075810325394714890222938176932948716766462490516961341848000991127165905143427230461530267946921818772544016341418305075279699471175651588537993616108127004999156525938600934581393377854071968763273625270222887004233290500799510526749069177899911796703308551674632164871717553913288873409594130073861160032066560663677314048232960042463299610318937359408416176347815165483761807016939464845553031163489867141339676509731231374501945565439676513022705556558897355454076777119883520827629312818536187740156484460236360084515208333049621745016461288824004713143681055723764542943151086477186935898650660732695250932195349025940697949726779161849312178365890176513746805823068948421414197667004894209095858862328853872146494501769380427399370173597708112670144738900948809325755447608795447349073989555022854255634729028662363091317056840719845075528941639972771531270924432715530509229889906934572798875505045078203811002337653593204442640385230234240772647409471015485392179737285604093963379667351813267004643325571100309338428503866404995775276045871322224490629911191839148003416142494057109152275535764134692728184512170083914493037232380113090756408353961690907958356305005724490914098558606995437353817697849349555807954734079580876646200449095358797131912760505840918310607846446733752355471591670670323796335008517302983726923011883123543061586787334735847964697312507578271570816307881914726596364361913443450755971857566805078827203217323436973228850011188265469749524133626719378852670545943044824739526628146626476944610116509945779372178900261224542545403675366791680941399909197854202580733550443833907312696035875158597678504966225612317321210525815106661142626961768279059492058648881861940181417019573944981047161264634743739843351636332404456396838857299510736914535539787465076302971727218786588595842373725041420855646193637202366067232395957565836699706271854368793751463295326303007607713422569570547231978743705607589952077210666909555227089987248701974263628203236825549812605358174564273202488656966681144883613255347312688738366508727641088860780016573864877562321703170042471909438051774448343758869831112200592550454354247023488307504904093000129325383130447524007148434578061971338012197194184452355331359903367165959359094363582645471543787303081095243240600909858226814021059048898329956506383486851420461948732769874268380456336477356143239830383074239912548042190221447275293065957556360591944172352594304959030415585892120590470664153904483817798713676594800721114220426220816502164535136536454901139606769152468446084508485526595299199390344836438895925532647935109094136499811665716674208327262653557834628129832729011504531746917016553239390548355579714400096564891846262631698841680917004519647707361643741743481942867149515270860769936996303737678743576130078419549665032006490397429451964232866036398598073576704648975675614474678103664239545653243183137802788977100674890341897795620419718506509630677646543274717082662922170582232031566256177681424184723577525543322050017394777884557110380404236946640267149136223490627542915685653949435896134136432687123877444098691081785431685865913422202937152018831382982092670673702117213201935501689868490927650677150993112755486138122804053774935109591153259057338715770595226773023107101343285706582421603435213001544867925983031761234290698142638231135788346691896927831731638305705862363912652720703200944744515368902803483077746580379624317649655691356063427607941808393817574291366418267964656277523348547135558437474297265380391086760208639465782105386971409055813881026567013613541262324704733104930515605996216144091176055491603626718622499255083733843359939059659850427587864751805870685461282886423907785296805214383138476468266110374196743871108078717591353232774437501165607103758514724293397913051902207547924914906431964321555375780622953252635510466447035280541998235906182260098606227253219214977310031568489141451145929358753239167946200853619980672647642334845101480692224777419957239109196666028026996623691945476430002123101380370686356283228266238226201778842274926168664678689726747717309198720344219348707070763994421961961770763065592839438353559923910771834370221152984706469244218827442196064884940449976310655290573264374339795896051512227612933528759902895457182493707386089210862002074381808522155607565350928575047269307262601794827083729782193609024694291220279923502563543418502903769747371727480125607888090155458598745053121887704084418257857435181637596284514357460363959760112255058563702223972578548674637033635653614350342213995943854472193559698719581699592594208971481837249466879061616080932483899539034134106239170326387977824916236537474488844396901481483953984689163507451162078051571906109487057106183972765437632221759573948932654422420102831449351098215430818574780862515519483098239873074683858702847626323229905451542715453955198970384381044091477718965815533433465118791664424236704204751734831673310708103154225685114725976109004381052732572991930745944245144300492730411700099295562562975733483874525592475895277853587613801101008374287489300741908132378334581710065095837624871329003948517864478366914237423562828792684407378099586625004985474968155049874439220144706717099428223592079220293564143693078331719209036475984961964549904647631654505346443161067213864114048241214548394451914275649422279394225154511571581054092668730378001220294807233386372966534388754886748102499021684081041140430708366104171815813253494023418516549587237742313437917834241037573810836965842372473917637749669042652743701127718706919735630148171587916099727978231402079997661984511517418162020995476240119813746209045431107959417014426842183854027298344462086210048019042441646450375813257981273127244261739865646675317436198911241829010361083757897009500971617637128576414583869047350394749540563130654826846484481203657442165569800408458943270466744973586196211930702800249367868608987175802779039238056491401866532170370373583186859273810409091509661681411027042576298757726657569498525148775323695488492378937983106585866743488650632585514983607570109393519441440042861907824060268357534332007352549043802035479498719971887317819871574739391252127650574312965686339492160921031852218989875016530864102837938842672239826795179260484351208553856884325550742157373330922995673463848107551620533506763191588552011810937465326199448875192037203111632686665665435735871500111642301833430198862519079066023470802119426081269497244809016206000629072131844108536446154136738462463022264940363743515572688814734068776379713485332613286791374505017194035383228473257037776810843885509299699803484301514378145938130782348940584185199091952652208518339721251295710253477785593899997734939515835310476732243561034530678198887723633850645473226215194103913065179288116186498683860626572296279361835536738001847562839314304497160311554451203639223473482094846522552062980159616385913068365216947850006671113932579304752559069730650004281442298974027656895702959047644685624415290633089061373444731243817105919762770324650443603072229055461451178404901262987157350704668413694664457564516089313905892441731287686351902728965967143749465471137769489847911500255653974122844060370975636101022126100173419110195392445467708739498698188667581879300615328667324356406736906505980213516560268785310733692435494829491807927866406185394718064693752251359051476021593029573539344049040901213808811861308331956813405030833997267774231637193413121003488911574586627280618901353342775843567886410887768705979348675874921746103098446494926035652768920118214573435820876869485112326566272916168201616353607239765256249475420492707920597629742646875357479386002852229018632594607356623189359800986795355067900672340072017082957074421440039739320560479816874723377466226480599927785043044594081044533967553413115555901038261049861334857256121218609471822507757058320153873411719083979729823227335498067674848194165105839545965169015296351205190328269826303765575485600363642307318701791683091472333903836454477948000724483853263461599657476877047968095877207896102335419991541035057650781949711697135023677923149276481774359005106590201430808652251510641627860779936931625717527359599522702176694738227990301917221258642362852758190707878688785813978567039762854517977475352084028195478759407444134471016276691276727332299295426113617246596079426748675270824905271044172763814138357954736261385876809520316405999699632420735253198095450318764818002881417986977805441252015986149059486894355015501442344273286295513873973551873590316607882103431162557446430379308855283872646411036912637530914759309190083011579043797699884009849443413580108055266301329488728814970794108548120441667987019465894454885807374959515201076110488011350099811112080145159454275334957895988472437647810833565476664543774326313798118398591020982467452317196071326742835986572733116521731250097884873735425376400436632682317735268737642201882049522730903293543898646840682863264151416453729235617793280300524850923082613449357748088276946306755250855213126408196058074216679368296682344562135662375173003510043721805066408376763413647537548861674991243858886094242544164811379503876527834503171496838598180107951864368992790654506054029163029757764962074716211198065487247172208750113544975596668245655799522096132116509120739393813496096896579605328819293751427574039784843411079877167558727114779007150508793308189331804586221032183734054339198457865471252030130271247498984425212675747302813667508158048826011502618114446548728992325873495626507797620526887340705167705029642973754262743436600740570029211607293708233798398571919411617607783045793909819994873392425097319437216308490786054500384834983720116698914739706582432949053813029540692601230320707726515541474423047504115946813542507701674292224617088770240164333647647314822176439038961749848891260669490524463345828739652040073205169774372581540935177818935244454828922225334476535741911427252775939746648123128352701659954045255073136974279931194301686909724773500922135958304731879574564296865440257490153456097423526878897830152031282700465086100926535822388176315532540068695682387777043859736992364202479566473616143173458462260986865147507947791444176262316630743450954010021354616074826270181313824821122195156000629339925065238834243299953421012854500854423826970650918221298317036863867252897338715136942687315660511860320850020240542360197153656452816606666158618023723951140374099288310577231207415083837367560512633221615907665966236052575431578186757546027297571451392334839164749945598236484454183626882503517928192114367212386696448427391558480032004974402271514414969822559583289004064899041673508021570049545860435843824706434124369042716729404587038950940123891891603358079961108045098935234748164757031347027197530689632778031551553220832948389308475073371251614966944329910804730632905426254520931929797457380984521386552877754665394054500054482525126973883251503477353434733750230258769371989437335347395416694450103046557872798802245119371279690419854247527562065653404920549998964056832661889182455219689374916799217155959218220908008927144121023389943150901323538937289903271073778779379650084770005033586080275461945833062166395475011710111013191967854348594205473916179184804894705247395591278429920528368128978225368204031255522345227617311600158832954595967978536068937126478034866313813317296466814970565661568806618955176780403039141882795445744638036583317796425328334095922680502959501608159748220542024568067845415822977807021127085016053782483353905527324324207049636018881782047666519211655755354968602825084610243984942519986638691525425240355761374115497214008265538852289259276314322540667159383760946859999664998473462308077060659405349835179922417640563476728450466908050081707887518804642712267775940991857320893101609001728619435920748137571017495458693817682991977487425013523527331127163789337573588319410865186522830401880256466522435551914613779494289596927086690647950004662419813480948498828213046108205013686529128260872240836306743512640794901614657451103972334763257864269977948237420820274438799044317147139477682148593046106919977811819660114729732786541797145298850479989541598201086336548247407468666600143706698218061981071850380283748408170124266225309554074916491579752454524485992423426191919938595485747745849969613471304390308620276619570773415536976316925653997106510024364440611775878515114371522213256781068583292984139824518405301789943332044776935710558170045815104797503252043612715996427354580099748590025990481023639864834411866584682471433052560790894255426216022123058691589129959614229472436404397900133493115986968337024019809316897698099193706376102506022435946702480899397889277095801564484636852322239008181756442757689426990636391929808172543503101021688112916656740533721984712089298057961091032391764957297511720079105409137768320438328274912153658168122372367301045059283958083995922648723912101934057024721789620669778997340129335647575486944427979220085924494611354813589611278717371363508135282630236744752612394853530217490565651533396391481548090068155376911428780769002084310190693889974131908252544075896490075453128259206800703151745425831706481985580002810612843408410345150965959922502012087585967310485130938060870311149107415064047552772706109074419909020025388803859289897228299192022767320338564374342559798410948133900311972185571686113683230001147144794675991471441781875469734687342580348664239233514817412548864989785131629005336439087380976749394464621371382642439793756737353218395105951294701437995111229379205727639445518114158870083647156756745515807389436023327999393620761199234981585708532078344681279995443999914060098762738368926299332329018217610515270728873217199560316213176412358642101261406584999093652855411512553663124723821841708325002794188269842799186708737738396267498405621746825575414058351240157543615884616444977279771640708891670933066782940936484533953831557322025250748823174525466382591227887911278054587652966097424336796303264058904515892307039279619515792426543232234425238464306184409930310283007998944171010454140611216277744286987363276068791455209276734714049168824987764763011034634224037654065745599037449324848987963460700275574666681748429227794260270328189890418575839236241441511613463629535870024232870361159784400396651636501181660957834280867753960434545773419250801570720967178182280580110882653728391889385479815423541263661016118566405617139410795538412883788044842377847245006132222581357779781426562991857488506896031061534863598930316279249108698600154931738654786106844307617719738183412023371113125753669626198933729286929561670944699975720755246512800174380791159886686105560292221672406045005792308366709054880801828453734155587029857712399730737866865691930347087641691625806034677132687088955596110025828715560515211104987636384523269526727843711018592350252133998237590043656761088323264497411283276820143497204634988098656180117112967169461121861200627116211938946797673970449689825856549252981032704995173182045104407286591778276225773618278432755811452861840655574654376323764172998282047800381932242282025521122877224997448174058300752028148369566740098594892301818874466305730492902464729396540727169985010912167978451864993700636549509076548922822796430561915749601149085647057489327317520025301657904179543902788544621123710554910572765249666758930807607954128919823817209681730441271525851187461546711122914709542379364113920618929229093535427367333682583726344526215348289983846358993958898847818391276463047649880820420920259167102809565848149455359919163692119281904750922063568435348886994780879594705691091845497789007314323020100444645491981185016949303097930560856634285836190964098752077647847138810456679796953951575501856860664612923953499745786544070906204649853406230496547072365958268177905130593214283481175287330573023292070154246039539320795874678239995633224016791898799998396083308011805461491551853030646186500085460062945430031412948511209383515686020043726142657213645043198656301050743303004937624038050307406176946290564749946889807574562355627516006914952590841153425703974391287575833171569654460192727999600830637145543174318172947489339163685303836035322778770269469015170250372087552335507734407753080606170322032101615113485365368574596586931910994248426342619814827565052547630286462390955777480697637078556441796903338671735869220677128164854931811342574072669018276614181619566699252459672281127330188867805637835001730957346244520844288807763174409631192562492957117043104300026090671764209895501234007145376439702627654306286204594605108654682154941398166624265189558271197216622172685020160796158941872988714160819636114886155421116430937501016756619250922936333923359291900192425064598750644012199695510380110347789233820195513761468970339200057496366531490054767912122073767184626124299547798740668702653225094704410856363053889562067093465162867324629774273009206136136175207658610800011705212404618895609802240779812625384840278972566748816856805291158487852275848368064104336807947424371456476482443945112863978246185304134672794895064252364903372774057418059145346789436384817547110991321597687287485433191628421510387429826760630992531659507665396626066636766279601497547913773411847456183281225191976077805859327665005403868535118970538245959159796682081129657939614092869596628849322946550938360359020354271358198788832843328232220383287435018501690634310373635516306941252057260128692604854214152553267499653642839858868456636696043353445403984525142479174750306016494379251187279293786194165606577044228105686871299004476313029039267677282377342884659678197363482958462892125118249430346883275748739968051368240348728070456463865049128538615675235815293570622597964261985482982430901343049930703732017523689269488470148909793247235643925297417564777683637027858729543133571149636008518531815101592296546895905095339544856885830846581626883663719756374127180144978756092101343604261548394942167555946534828160124301844409581291031645124248831553450548857491118556199277776545718259850895178881619592325338414915149286488523626868715635754699799702506099094136293102767613245874685570809912143749948673988694964524640393975593001195304385273316979163908461758840920851715694683576481642295056156398199906198483628380440478599660339361587085859328427692975465299303978502055638045972596268433811590145275134334614320794570742785063322935542106872424543488415259789003905262557979000294214356210497502268168888666117726562320455941151046480536553410862798361063857314292334627215272508802397258940025060243501068829536287848787857280428963405578890204762744571916930188344978384453079305890741705372217368216972605624566608928378491971342785738633273622437788714152029462595093958633087103612825327912288189073502742109431452414208089972470624151237929536510685960054248471144242715626624484051121687480126245555125740630203254273576366411809604201039484606051327107351487794591950763860067142861349407763008727628640234072628708913833228698984509954878656998058636562982822730671339247732907073457545521025310856934591181152959622411990821133817116967067379813835880568510679550175340122546830850706935423343306052373356327848781910791561602558773498231187900702645238400399246664138206357434957889800257824985930294640447518589459098692267854215014657467541000730906055698011628767872269421120251606514426979061375100725420476387111353972514686366881140821420447046412501167688382787848893691647784244009283065165559509682373623770441087586869183835136441167395632415458143695555151747478494494483870873453461118116395040413661584037134318078939074243393853283091264036184191649296711872115659425021938845667525863859594968361113761173799213246254571037912820438270700807131776360996257088984164594511364391054143030405590006461044688481856407994206175456814912547327551882944094374606499216776070542608876743046868730083026421018045079731809624962129513485229115528608384644354312714786552286302577243823582361542993911601464010366300112909466282232147999131427741027670235552163817270537152055652052431073652351393885796113011742277399773980140783359851030623849998930177223319120775814230573492454524439352477154962911177876304818981689305713224203707445199269492172301966537912825994318526988466027717896884619447347599944111975983100699262748677350415592086482731569558060403091001038111731206004165791123422950100380832314326797846366989333760408716354384163309486197950379034349714746499942681085892322246050009138085628871183671278114043137870890649684806609368657196622729181198333265611008413052626212250468151276368531855598708278686472689048435428795279285020101142260302910449210324489727823465480323027566796140441184535068499587028841770237858336655797230272615451024364224991368282990934215939839656780686881032238506270463555522338428994143030670505102565580874131241301324374752592514944880910681790575239497024362672445206626241414545809488962235909076567308357571163351079958371115508334411374662835004695921083523396161370619044559347255053669763107139948046640484358501759662944151862148374905871544595427594220908156749632179038219385653566778267481265645350480395294824215557467831388349898644933157382056740825410184002173831325758099962670325106771839559165540429807461830617257256265857045129300291741242686189689160339986116127476038094725143383507669152343132415117157752578598695871004488420409575326990594691910373081605369063846545026429752603433424770879483722803009180837887564312848902456793690958778185536848478363072396360853018915328958548863364317249879055403721404369486780367693515582802126692236360153259806111809663981777620802965470239837655672732118136904250822244514035770828931008001259131619499436028999301067263134130174067842622721892068528680516283045675200889354045407519036098703597852221005690792288858420387334648389399074974741034937137138987643675595938737269507368369027788941979650554852428862478885887169129306365109856199965262989732555801904576945887058426057714279716690056262630704798208746290274526858079329749846760548412252263715155744801656026828442914946158745184497334985341915427799732889856772010265237277548593533180200413009616429355158052711268134374440220465559817026533926259224175453302302410054464462778937754164441161515233419082740735884121006751028551151672615150571152198442305171716394655956717658908076489388101517669905692631630386837806251588100783648731508482606383535640504315347994067914439961642698703826325930884255400918577884835477753873231743382869727060240355717332214645710921000868378060033887970623069016972567768488874502563866557516598103147478757713579247446769217567588393440895438840203564217314980466578585423695733442311673626408329740142897539113072430354858244379804193633083429637750470054770045645085140272508209110342789760803185059693020439041218990798386818358348200484808739677162580314961446124181869419599772411397903040465367120181887044706616594415919537267050366667729752094512210696047988605180402356035528259623368295830348176078765858367366538852569633080926188590085726208249479007146676201504123267306904555473290797011115315122523001035821266799898654194288471434425928260797452422871007990790866484096670250189361502177648691798198786591638310685157670930439770578979289080183043434235726137736758921878640282658593313657237415178846145881056069078268727074014542894528832852700619544161639958085207573015557535463292312895209550091637429147465187007739515331619471439856186638098816475367316751428921804521829360154269707426997332099489969672726135507382979843911915349904487269354769560859036254456502307381780851521197917882005326067128158118334602287559407258164828778014826127169239322029034353341915920481722114336846311246284543537885525093919951071908811094018229962631556964514876383645474458486393972973472265534161906604983336200207017288363552922163145743188944276960842835010432065538960385441140383965779430965427389771293433525192816594421641388537442106226606815108753718699989596367924338172626319480317854937314468054605140106921950089137354725913921618016722636506392322760096055430664009348629215711639946074737414121939182804561221742453049065973454079180609363087807423397781940277249410902532126971093575838821645425041258306546946919657962382194115956053815461549469861636231046426927050860380764010994713385930141694168555434497975008578555064481265390768751647707135068170021158131220388059459556930325732626893962408629965900839300652592452588576061582980196908623983406535731210802803719633943534599174828304132966654933561758899642245297776558833658732457844985033736333050569172632911037090770333211454048155358352646168527367658865200650062062930297556420950564455984500605998561758115031210372882790743146914984426911920203155595689462573512260457379704437987237311079112448248727618675569211369690859183717225922226931736266225675566450850078827292620753770549200445185396609995990749629852796831929500325212226435699961173343877425415087821633508849608842365517615921441193455488110679286455619100591732340126508327450612991439524318524853725389822410328634099709349345946178306454006126937700411942968778235703768599376850559662208876603031883836091510474952869842698495458746292762242283333843413796291279798927160924096893055332670685116389517196299588474557928955874110761308362175716025139915717773022131599420650660595946233118505598926550511187672374702561775066166970788492926296591676785333626384287653047135940870510253008359783493580763588530714586187165609747361064339364439572486251166173286448381866545336752831371445482874390790759942234435431422576337624168808631651350439936696917236398389096496819193579358299116223258102509797084717696092092852297053376156661333453390664395393325074593823670760149013642016652510454381335843039890684563352649671564119574598536607758319295651487148808773754653023837174660873669830520460027754546581576296563571321829988503101486580760681687152623755600188981193383708997285055849453208768429365151120380075121974089988899977680962707769224612230075974827453550867194942717988111100736539195962138796071021594401879178477808652779269349082411773057875660486566445659624883727193007964526956715052422437430625890897282311631570969795150205169165275501548762980819413910355373959437806011060700067843050873840323330702292593111748273035138488130909410759101285879515939936560816269220995103528240221831577879341733785641608591714187584349926460400193973544273640847715435481840835953967044476051527474070373682431596650096725409966419804160847503371203132780040368295026923797746065952048841157972996817208611008157688551687139176995065972132021179180316150632340432820265535407212104237386206127587973726695974526022754384576824063113448965817672644481205947000434646559051795946087067988039727247111597286647314295562086808871207653576685638947901331477981100646538877694760911583991963399559847613398283233224844123568502339898041446973749398473586785590939707121867207165479606637435777266226323443899067867012977777789488287974349701155062228512898632729042213122464272862725163928623251313570162969980878324666366290347217426681451349898323248375258641762488800465152371991407117084797746666326969193032117514051129778900755776905914634927604574309752811122154251657058634990220651490140070430699996398537338288502945997753491397958226252731227755823079981250101973387519155229179427243772627374330366293369699692582729792468459931055025268027313299260488028044645323791854581996598401918974043563643253145485260760776289917787073163865689523067789068004647942224568379206787576740653569014221743322511277177052153515695289477781610328807620874136243801450373343942860721167638083396425862385011353161743141080394600178951098727808096894126111445099061880210252856894082244398966776196342508845531477282374685207841489108102060163097033722814877297142106914946867578899536238929459269644475086687407977779494145304467421609626574482809986289213194168587861011906703800586127113455321198426470997008264706548720169155710825779840049223482530214122375931651350466670383473657101882124699728980688996350615864819506709535810943894383016267080307045042796678358531115496982415215354532387907799856571645220226654409011622716727544917482016618091981619813392454750707957378854907842383243171037020598891732023104035525433476042662593266251550662400495000623429877185798067606063580737625721512295116161760486824270552675144415747539662657237954633747662096493253200450100580158783633812176962795266396022280818217467139182996078986760068437652058138548913622527912128135988780469289636038734578077544804834979761890855455406707543882201061152247483693262381669109740760486949703256575716984913279927467517363971986792789899807161328653586341692471647359697186861909150051816839755742054569797515148617894632061033121584560081691322635438528261902894106073268904519131194189248061035356314439277083985812187194485275529148023459615424441526298345286579166701220418129424231184811196741736162698751700051862452523494169770285268803846306848287893372184027828796598315287300839221336503938249264191231904960610659879802643780147596138059110872552289615904375773528989343665313888600673224884153872867304955739440596796395836153177743019416588709702008913601787335725540957021591933273819186112895449536094633180600452980699909379481346451547187250858094748760941208372973251472748921962212030239221311249552817880926345513439172162663054847926571009112534350440128709343294621049307585387340491381772286399008579317219422471334747899801167101269869823905588338723740751092690458499847690859625772486097661798197271975170550987066068211420503150395439954053935305956579860022416182673132546574982764263360736444096444845685376894509147462263383889000810208296648907372374336049409779640528563903713255077191210474276032457825547443845164274472799005839816305555943305851052921966870830919636367498698009110203710609757453137770591447735478208021872828656760647949925334756501098476642106225879552603031872641259091784022935079388287893571746633601167114356139407224734933493593044374785017448881405388418826134559700546146392128486868709729447815848797205864401809652294139251130190352156574813466842092259573711749183268950743476131917298880810315124930443254778079533390952044525801312243945095822911826298224775924486840853755386424986126697943544335604340711500089444303471206386218734664396936661799780339023246716270490827278511260121303503689568572787512904288575798827235949142271243922215070049157039150684434262420660228165451192658327466439653926651919893226968309451856734472620128933181186250979586285552497778998757044518851324754267748084086212424139399000668955241365745761396622584845924526010787066964977528002259537087681171639802597182281279494792885163397658278047315330538377969187357403336564973798145324769935290259310557089312612822765069379046334692149083029034040804744078659404367419754044348409898374137448662393900911525435074914095856814519815914858091120929086650589680318922611780036145654010702180017558648599280143341112955223679878135576053582824093848465262690556712983282007957926019743766764396962354890573469782844098589033573032543753739051653848315451622470244438901697533869951398051320598284832182358226475882987022775466736980731159515030714522075726316366757414803917006426917870755235421492856536299930998445806613774857699607124661089346557012490450592232419004441630172659929520147635239390190299356322877420034479259285213601119603793656132044506744453487880591107922896682394364657174534913845181802975422145429823294051990720832913961799550431219697882255368397680442748248354690194183879432777227579361995425390003197549667605968488344440116429880853535594415040323912479914571744094421770569491692402301658292316019484342965200305266664092046001613948354869330761611474101532022741441653293499007484715441421963308961501958106593117256962689490233359227871697061388308027002149153167667819327031472878277564616886426340596409819569696015168273804925319985514280015272204069541774337825009295804831429833385256640972145740040288498838086381488599671434926738619297302783479807382277646369538886281094957575005146120817181237634803920738286922903974683534740431926429470134748302565971147650622761322629472315751826760302142288271485230063369697675756831500998944439827103514259461554291318904836339100074858535976699136072839341350652956054270583934824509210879649659371257298068893387481105509285924997006808594492663708936678270138976935760663213980505885505988388607876501864506959539267689748400702579085034322432308895763201277519118132927914989393170403012894246623745206520651748614604634989329491972197864836102958175097664740229207353283210672888561682263678906350524564613525217925080126335735410872995375582928049399069870372386687763712208090817206650184289943958676471325684655506192314480142485099862963280937165031141763057660016559755873644892241659558351454439491433123219333941443223840628956190362098619322912706708740331069375783166178291629287056855582253447891044595370161393116365471995001313468385707726622353098970733086265487294631204048439228625273699405420054673259321089789486734366204731682938370086256336713842668545520987474269888980846277490160304547837676336502849856772357836411189643439036369982014373849899260276267244275002006165604100477253725485137361630984468150498622329666820070769189651447748290258921178744565362275914349992590940981705791937252637364953147924403598346350409061781831493222491638789639095713191770864779383060083036661081158523694775905053240790879813201246537194561744627067397833248676629873433438908747528098151753032003105861452650830443222396676329558799985345046845279246033813224694195132644580653372764522169509327186434507763325595755070244038609793641080879743136822772913057408653007319515321972213595521317256607655766148826274454716552897984221992622140967918783370778225786976618605205858471703087266975058978917490565509195774679133633155575405157916233676764955128489628557354811475336049971793251241276263997866144066319619391067563247679082378628588675597396781475956585291147719700339976627440715340480163851498126700758184963734428263669453835456709987669253721663127950709764786638114980618421248364393454906756039163617795206772861014936715801291891927389025248479488365683198808495311660776985198726286117888364245473472678163645512941586068777382705144050165165969755326009780291322962658657682657291862222410305866983990618099942494659621678718218419128596851574754473179106949556055814198862604242072331771856829253640038763964926890678511425677324287784216247387137809956603659102875453750547429446401084975624009792906321132246177562927920224337314984138890254334861519765069035721907212139912030182727545631298893660052129530202147559894896397370548981063274476604418240810089670010267324087393113730042764047445865291351901671417238387197486754018163661873991808000607857610686955151892524239424199126305333485266699997815890231093329121591333405644966649019962342756339457349451678621517742106697306761192561220966275572520662947641010120640308789671694717459930863623714147989487149063564981241092851298032220179407745678459884322873705820489979696882673229664883737395582350656030930643104435375252590512025152249501377424404132889216671489493114238798708316520605070966028968589454970389520590853689664806161170308778075335868104673762337560754836883318294531993872938517422438633019705094188627006639932498177228542781503754222964383545016072465526985481065414165954065865354454969268519718877838659174271677307145440896905873118076353468075903693892420925619936723180657115344595326804610362519288760653751807478456042423097945045537911518478105507182038413137044982540832712534554754225335844370976278375273486043951792358080454198446573413678953739640805443439354884754412255193146129119492548650252965205665786912235933026736999749221591513930446421424861228397256284664327184611815746079715216606903773397448715101095257471622901701483432864848692830439743793784621516335587537299641376010568541178810115905677371278934898269727749520166083841320802735806451021077204891992126289303804461569783806823826943809376197187378124586205785701581669312370481299817003203307097091691397150370622784037717777210137625534764770507300312832811447443398263419018314536007545228199623989294893743932052998618623606408217998709019515431934195599629474327781757597051485456566655134079992406731021637369265706650413551879980828342296039290257911665627364936590493049003139707884112242425119325590352290549955901691182247807671138205333927046545067428002814008488052144880551969992101959637697504134505683129832244342675030629940396567408204114547929332906686437044085552134584177603403003179825501559421860479820084533072057878456497831841314002442680836703942949139459155543519921434674495102287970244652957830005915070026447225425147333571235182125266169096873556754787602829032423243248649471092420030189398517461527943590708898510431752373078209718609414588341681888227728963918398071518692651942582370945436639653826039384639485821931220681682589075959391496267466348534604193488133701476279308237124408682083739594700160170857475392074093436423992488795231843496335701083364935433854095210818713128109473178961925873701816307652067375420175413132174570333317557565953863286945317632988080790473434609019850024170427826397587502156166921675010288547648158275797881465003281775554431004894640387834399958735729713590149194628487258032312919423639782352131639513301050145577315807846700752036140621046040231106222201730805535127723190061044773840663609206343412711690840157734420301207660993716672410292864280643543868381359900109418762518615637919669590591948971652223147114047428870761461709108344105023912969077108967827336444145206666351224450438478973847027657838307897091495997930787537771160935808773520315413953563562887329146004519607400326677980612440464654805326947609373492050159535894399305575396307347464238876118565338330325203356120383834615029922359269807649544097613885768422295588944745995850555418801355069849424169974826282378368818493314588742944118146504602751538309392369203422177066915355746046906884313198732027737699910700012375581887166117434521512884757365693285648116309495486247683441106367304602083724174682265905727492879504182201748758319824691570045021184078858235864393084481335199863442118980263538996551110123907333294696345329990192481763030931388080186118056059438807791171586931569525948107420985734243614061833254427896302560527968477884877779486428418938089226186525309086070125969174403600844171628492983201932105496499556698468729679649160421951353459053933290099502216367274934569240515623237642906238640115928406089113902142583722135834690698165707775243681572078328442504816214385827698891482605667672494127063791350833604736117903235054298414577038528684819546491172419285867895307924596878407769651632113074874050908857423731563690285506484532939816062447199234932938608440093633177888968983321499223067471781209839062857972711311182347496268200898915311206171072480501671927490884554760520253594350860122105107547875695627970216227377129134956851687020212661237865326415803684355524206230928873089890589876454702847891183318195169068147817554162998909199657106749406694379436322865165251942329630176955518208443574316393921523853599122586966479424844629868360674276415215876230647880214594497027224066591261761057113841198726764254382368582385940765965559279733241865080626704443680240054158891459971758742813852897537009376279655563810674787542824261549793265473429212945961771843493706632080963735748491891306291125141215448988487348348906443096129752689056829109390162370028105472767941652268760777742029467362946417963304688722519311491285998388394120183359096806636448156413467215914187184179915835232884102331960100038171849952363269133649468723790482862881407856780061736776339578847821758467358629266604250334251466349169156603429368653532812889887843362140066980998293895914493576991320108605552023391706998478226792333523307365623509722422661096546579852405652896450439346161218195309572636426723561576189151893686091191467953082951213571452852080725189306749883141343401566928114202686866298587300620113566887606324173971000294698535042227668381989155513265118719916942274113656986604828534894432016907220283461180157062409108473439600092623129377775145961455953832226589145823405097096738834459688937315252423286604104674266472230647833583881043366735674763775903718390447034545131566054613011095263961602559228882073943096498798904551446076030973942405225484372441990148758270972357725730894291567360135582647391673745236787572643300694140883119588009560653596658344673093999217032295171300034916865519837113102420695081596352519248784236335440733837730657676782264039770154362634841525325559639368031876337643117869537359213179464563830083610973709797952484647066584227730941496554323843190869604107310153653372674024235517783105109694434713374662955573529401616344983427935782365980781589391178549671720617867247935855387312753039109514684638081908178205206411196414547755026693251146301448955892587699322693550002132179352048471889459934253233147811563804626961447427887581497931180812683667258218436246847110397124584167344815930650806565243146102812854946382621738604063226244552771765666775722394148244205200141260365493312666115722086321485648779204259508323646700220846569339944451919783669901359654582536142951218093115627886636932903229981461466300440508697399004579911163341601224460854506910681815354534773830706010314590210783954630894963644220476780575491261672479828771191736039636295561069199877874521861137632800678804301091431741642558621093705622403849073258617630609666439129297504494098775173039985489946547806324182831143198831310531319848072121445661620328981331198293330540806202623443399435804952444111093922983634616953653094232611947777471784187554333287187537700937519537247633105003024867265036276153885322755296534689250643906262586143664240017437649005987337581586609055838110413044103463333144894060163541265115793987694994353401806992504644698092227220316870420878683966419802617824552509826807164855628914476753608088351294710609826356849147356685042153826295457412733086452834366278004461946634100797299860443785925204426720543751696228085127980603416586536242394844764145550107384893651293927087197858717310366287530151284878040870545180489204293788854978369402164742528749434604999012056523240043240619866139833106409254013004468808817954480433129445935552625764936410315270138754324368971033990630729021932347135509234125859312831380781830363679627178584332945697654304043630485275110696109942471928287697313893639948583552866609131823166763633721974238608429177397409226251839442637872640520578691233540452685493587164137888070503907071028646020773859568435888226519737870794071887205581322143470855577996927222288434308269211508431908580285623710006452470634796521758591591372533773046226160173816824077188040385762611985840163312253377572035666760359446067548797310713963191557978360098844223052284259594851778456501667649004553715072404731436840828999238561381860343225495933214523041833307961925260221768232410405707807764561229903458399854316808604539643327300611087146014154599392718045199290513274692997948339009723675897907530627858775605618701458623742729796932057887775893921692845707009963636701733165314088599818113232992268833495221972830333846096878617453452175874303486765520756332674256567700132795724424383989891582981705107615277042680906681941966664875928123694477204505011300606656051518052438065399676226425176915218222332095037393292619879960899182464074993336857172753743299135275363126449028405375330978827266828570258883231444916904378351469487026793757942754535097288283748419067665042768086401684777477062526174724227908503248907016035359989049271151513553411764514362122302263528597523732559501876342347214815539766571247751288955066114144369788570845609167545318611536108330968385614343554283960959834574272242430355241340201519218848124047880690487824775533634344506137022196703504421923550696077412533542600949168988504258031209972617965765567982197692499574850823413732091159498204918062499593272708268862883961798713379511823609581708289721920016867719727223310284731196424449205738996360019373109317508321540167019012868057115114787321984443664364229194987427201959368114390438582305439536049337448499573107698156833908357443892466586213992860181809383156119341302710392938130371725943928331660779846327064898208744326720042308271096858273206087271359142194164300680574756077311985603829099677214639450604605512618949304801592791229937319015466883887335100339913133241333859344211672210954415498484533401019778121782397012577130352285788730804060154864702246157978588951706149511444095500955293866545316765837599139576194574952811615108075290332185134151853495074588818568129545367024924757594479355377846091291841524382260567957969621189640746745254294222115072554222340713687887806791839969951879998100426227168255708833868375792737462591004955961499020794918440455802814834914167683587146653659077601423886078478929847971766472269339468711818319015875871947609088082375096470926094344331011752918452224761282222323854189415560096934947492689772681720691094614732617339874514588818901322583773966849007244326201511608810057504378944979613037982332405508079326704837825568052743931504928904476069370616790970650493218152416690455526943929844750615160248334945784876716995377813345626283634326958525339835014425802877646857188180445420004897825380137530933728902435164110512978044386665210569714827132318580019199168846633001475022975096519201894601523446775917313662650301110898392844266202088891169459574464924885121905838882212438082688695918974152922598525892273479063615970346222419105825671883758204224945841667036880841503350833213474322844647409090426621682431796246159133902960797614685335259736540358823854910790460683236533420395808214361493280923457399598848300946553682464559732653285801971694648220301889294431223628197522880693754966389065512128597699852604914782016375322252142024602313903646684849191524982158177028344426477555371423389706437159113691985417324110856115533655358879533120233825627564579572687205641872499351973840145724355279410087548939063705339189428726137383535823713423954963101463706318754056657988330013562554062988811765614597608001256303312047735374110142493670690763179103468807515019805645584835109691572490928549153468622545209053798357043992121226448589399228519413922658215107396496415799478313127370231060153147339858416509381334619056492530240284475890311325769582700847453107045039467196000118122654616154899894769957861077264270365613174326546449767466520435645097571543808735037516412574902311365607032321707235729590207812799776318153431510163431969670932100238539636999528499291894147268764215450033461075232981417152966479186088991803126317325102394589467008516953029233427129799713596086807957416266922964891986801975253991737827227634638371266271278029068642465020395790996932586129467314999986451536405638987593576819949359380061949670468331349212678314333990085898742930938260796360085080361078440078822464531617313287802216971136327924653632914334594988218177861170821929283809407941569431063212791328032540508322941187967160813618869945596058654997815121746370224578567162194712675754181861297916431416336656310387877085596473750953489469602341283934655078298299940802237560204020779394860208313172896989843672097604048379069685801951025221243399199149049651248129913370646503576727813344768114527909518573994427092677208381933367838625371132220628921293589465620381266554133084360810742256309378192151188065600722956013069422357303903975935521077256940496315568324925107756023164757253646106266302983694080443465357960575028628413631272135160973195710553366270108504238657421840537588719119976055385635036221093435211635915205491938989181992806346451984696670656068346257074153224687299774912786016985345895960545973211169691623734575192483810583810960640443191506733343073078966997208316457304782671678411408141696590381379132930854505524117798251749076317961188649060152816437667268086227834978778630657580534059160185353150997661375867071899382406722515390628410385588095197247340662569246161334256190622109503321676777816289268260507586670531030537598258167703254707948570924942919648177484007207339656771267747914840137389692738915011003782399441097242467364206568300244940128521433851941411362621263515281049121111560110524774501898782447675886463198725706814290199678009017315262097937390310477058625152197110292491539413849510111438344039340449095181021539469865824779926903689302384350666729609661993912163392897601645004805554657711331756803733547094428439939255159624409923335023482967392359127006293663143767196739317828206600819005712186482241486355106455378472016069504011505934375687759996084594082730452718468840420407438275107394680465726220485214245546064850135413061869730652058020239880297032538448518697986647449432906792982350119721730820650718825383996100782610265088028467239728162257265261263601801588942599624284808915266103972503561618466773661074211905418188781205016483757939414186525762881708072065572958152039799665124752340224148537300746652786984226610219222386051474931241334573079894610578441881060307769137349903758349335919581691027376189659560574011272632550704442413986078051359816446344126002397502206754666648461119154881608419508447458023240177313402041670206961044837895934263572401750432504326978889669216737896162683439680043074875163088413611073956706975317823893766797395557581487559351481162910166104765392095787739556968933849503797976728107278161891392122042877564984178881407426129731620869372297008507951207885660560593883909861888667435264038381447083085975515882105844824755885018617027207263839986828407936266722393723823753656509496916584580928817111668883680514141641809715909409372240891202542746709382828714046121421687270383670724464159815743448975626964680764877625037432455573858615039030860934652267757696849410993385437337836218938324562153989967563472908708307608862528547921499497783856287465866613424893981673332731822339361306523511401944839622861579193202701071612934037358678205295423767080206833287468635985454462221012064006524031651659740144628439455820928793155010438519729062975198588419608566524703457352512966203807839945073345024249608144215042808865465168771770958808497785464765480994135625839908128143016509226285323247441038416703955499047508786480558569955579615040723314715790645042853089348213438313467357494617410426834094327300480684456431947646543808684033044438984535871091811531148466248096857068195639682369508924166973926964511348234724117432743836832019673881596914404109389678699695427798460652797573942735522023955360094930252643892922023709796029431455237287941860962080692400888694970794118090610538434372202852855755764336459030688231872919017232580609800613306287280552121245385075487534249615886874628985258014070285257166275678565934253168235146939460260360633964799579928274326715743682982457063234630408816971917914362785770423495942335024310421894688991905335261279709852744500068798191130446617612247805139959545223243654420228956556060246060878971574814915254976518739831931836854521914874131325345476161526286463519968348839654937040205373543003653359888965778422964128880328372820558958538811328618188588360083656671552403590700382775256993400584937401216247013657961885063933549429043506835435685413811511437025848762539187575414063899250431541355159651196721906654027724175432579132639828778129949956530581756859068250955241729335939576997860790010193298340157617632324820341479637212284164535829481847181146182523351711533168698237442690473851343526110706785101772418216384348198127982261459148468776760567625948363785339333277226720615972465331708212335622816602739939848438587651676422685338900501779278984845073262716632431225409469553482776436422512805289970472992046983047601009131308797493418861410719534919232422414567674058239989477864729530608059088800298435595529467593587809606880708516528521057495530224122821810640840426863400173938942541870732668622729513535307721241025555032590550719964381061706111147098799818546466100326287787115569920326215620386515562022922592639295576299935070133561801685288234484921606536590420527105472964573824125482701508365539010127947750143644108550016950572966312910030344792480951438846247949266701739375761341162627004942248958918169691196326585305648537951308051420643748043303646336883129850330249177829870411504991922499489065225264407644475924408845403791706140826100412238326976093336285910700869139247441488949334099401310908164661755700768966002823981731863508985961154114424820061554897630301460069548789351100725195660271988883632596416267235707469073182281141290318215103511054527697707859044743647315300229486418029595703464684474414213822405112988099350379850696007030573358972517908213424093271582457592950514743289511273016245376513504131439122838785726534610789962218936664679155299950845068023482197724993573353510376680705661589980644525770290531332055951512679198429179455542902439639221791782287732869164233130799006328858250380814540623023907522405540954949317331070445021489464973732195064162852096884154963008946484856316442377856171096039556735874885483559009082777006236152212239663101412458490609004342125885330454029445239947129237791716924528763159267807834829304326917210019920520508444330179080905058342995008888118668710582491033265454365982031588636100336869074873713082006266589693366220209085152724302692700875605262403250528029433033296602160962576396140724751444420949656460843106794342818793109182677881568987724529843028833913035457883378585864145068805613185149970531297965996304830015615229650297188835239276237651256182958939328108364146275835581804687497708062315760126329234169829935321126932035803675789796559540575843553893895717503045998614229673626442433425287235367991644628668103093542737416610552102043814148853512005731332014379008925782357530905882296431573784244563197799397777080149592744756367254723298878772504296222157814789298199580535253730599277461726492042686099893058961317790955499297966045684820102647052139098868319833627609427582734024600256406061459879625754685953285246412671341834166177280573480889242971362411801249824996844881806164703534810142911807549871652026852535530166088824197516269800568492732777449653160021448238095399129204390448260867500447780897294655422048367980153021847542668472670914699360972935685997109816638468353936977440735485679874013548521956052141335847808995044882389486277601301930688187387710662997327200057785298230617154420466340099185852973444350850735028166818039258330672606095179283179804859290722707697246175463750177757138335916121758757130661491179648121260457237553844660196055772639146689744511710100234965563716387757421628093403799750261526052970300507927171077174589371523047460054668498188183469996371176981716446268794543567928507438585743834912232101692334083534688677647153950016959907437973764344053286178109524743282129864280295338374075772785117665777060505456870180544162683938944741336148263143481168480887322452745186839243790118129546418101025058237397455277363285117172823082170615430351499602096975875749381963450560286068179815674244093162441945754647266093410766249911396068642500039675153108095788670376345902084027658486631371186519007440543534571382715466313798110053791717018820039177233709256409285818867351401354538048425385563389754375734744254286561796773244697537318330967695042457360364310508967568189246931871027615432994652221052510122470160443948056667604866298526327143489739529552896461073541817409653835499731039886436140996219373653008568937610963087785354683227707296872306110518377042156214435686905352686518403397610907621923453482824404513089305122055950120614303976079899704082736082403394594776830148732039734620564330472184408832313089251884605306218388128029545146109097345393298663978870265058912058140076171821971328128820580259370569171425718080853614098276102694627545766058628687607939778960115749811731651648942573779628703577599714345916909978136687223649684876269893141810776286604893228320716878724849955063639995503884443545798132700010255672645581114515005801760535068573089597024806423734172361379885789019455391356018540927146288440587208488926195975786236404010799718283574077774318242999258368967854211767271804774508904513432956559134875603003023632067295152931672414093736507437263695087188331392531836127537928266797498529741231126242859010833966527119021541550304086245937783614370427303884753026725123146578088150941913338471685852921542955569446989900137927398212944195466767286666647592378340787044670991426642412688445748271496274124385812007950822296133403871065846055962936026197979011740843348358386732982719717893651239008249161027709613232282096784906863426220649861488132158819892254982758429496477915769256654869456952524027286787974080910800184010588314257878037928746669345660307201717876811747921079602885886406597713583212002797930232772455825520477614373103536268380051014188637075706045408879816594373731171492239437740499998645842554238405039378068753755160966246071085174639391835698467244986674531268073391001113923927001578411812388492695765978964085343659104635139389671262535471486503900154200097945399529913391533009280420104114649822355459386796803568145369579155457242534991420970836121440006923094415192776876572581917524918270245728193193319153319799974853503440173315656571657975905274990326014752366770481417156571448657210013341616916120713709973505051332670058216818238775365341092753559098336715204729524348126499939663920854307839851714234794657592029656229450162229348334518006991691196475009810725238363670857836800936466250461394685577888936954114167928333017607921509967104756424383485576506699143653571280276127168344855428919235722984027064611104909478453893277748095945744851084647097536679749738125886233294338597634662102634251272945736508157515127227473982864100352654351363683040744094789522042432517777704303104830210099530761323795932624268445088678368484046762720320784563084238187537069673187149245017756143579713275815912974447109354206648123791936787228216240196436227104260733169223340040482260788812079946683448760790548868394100591093227015051777436730678137348547478771037170755234327875328883109899487337063189695494818619714918042168550820332591589805786014754848947379048146239265137931185339602283654678094176677542842814667747458587170292875371849295958321377134697936800078741903039566259835074020218975294880406031650853061690627502419571536608085338079668022442867988843419526209373707643045605828944828183959537022178778595959492404431657412440100625216112888662126521759123268412092140361400165009603691962707296153228002988078347623168841759451480406792779787217967114013136081899490392949814645602220849530060457178971252930369059042447096130293585297428216996862269331427451714826340676853260899936019918434119302501775110903222375431109209410214453738950108822244197024085451785243256311767658884572069786784471026697099617557096861199838076071520925175852932131597943769708261490877882740339778010432877755699138010012208773597062513495601218988448261702009516644246841243618391478268861391492238515141306526119511631531449864956471095061225947586178758825893574105946066974429330154412873999616148576834099888883192586559521332908041706398768748352023385637719340226096542770237203314554267426722448066900276344887145647543662567938036557120528329426762862143048754735984853584780598949901793307089876415767196783570915950122757605634881072841311714394647497636790414110192769703094134508619762536767463456276418928098210369341600703003252020723177032189122116181982239912742566718862587918080204734555302051021342977135957949572011714218585041902248594433619146245222799697544347728393853951021600413278188381748183906592018718388271989479893459178558738248810628265758045234971348664612207096111644893764354350149487777929527111595197177858134426411056388399846734767833250401881811817381461132262993283917736225569420624123861024928321229743211073621191706278660243294707067159753829057053206848305386707278159498024198625569597298083932953781559878818291045141926263715343455184675544441180736019103660168218949054674913863738731300543404722784709729641329452459957548207989883964093236227674078879756204477340407310678194131021938561432297814098782681617222169948865174293637727454489853729612319619410464236241788043565707841898631660025885208278369251645627496548450104192179719266144309612413618819561199016371977334097121968291495222516573941695613617394095225342051108618969220261367413613074861197421762224206066021488719903468584271169739774683467578510060221785412390456037351903601579307361174997879279178400120297133151415312848751139965888579878226476477841419804510582067318594287004848503967460508617935656042945599232039848603540149483616362004190414975009179720688827446995625372508978927604965782488725417717246181032607429387910312022245668960524186713142746760239739782427618810277183868355460581037752953246263332233853432343502123653155502425693488990625838742127981345282113666769062112592683409973211603011117475018384000497011733416909929018540417585665037434988458144343079284869467763328410837144622018863647171956877711872664037544758435108702436116442947402942268889375684200536809545637910124703422746903638949227106404831269094729722445901056487976687435733191991230979176609294902995622102302031004216242053579297134729112970332064057655517034053730495751699443086932343983812052564194386088441961107205465828579600029731441748564861223750398161266773903218192833251455595077418840783513689296048733833173436981865648546585343385651999663760321223311378559337543335895740033616030150757315152398419790414428144861020850590931567023671854663338037861207657823411074175287269603812429693054846451332770921853666987569363383597627480216309197396425587493668831002162641172566229972834391073221621782524848384247294276034797466834999677545068804126747845910524307964134916410960219496313835983184682270123795019743545391874833938642002860651305365049843847323776130320614692149109579010577790376810116897170782759875596241397449610274066249449363979858934078432226185614948910733043308298100245111375552285070547553898716933205176613951189273377171280123249480252409641679333345145794938266048178668505957789940855869350903387208915208538587595631457256144607460240785032888350739329187921131313982320955420475100943861396787338157027722757268331428860167192378296167896102327760066235013724311724529346426272799477979937663096983540762797623993003167725968709976678943159841706195657370559718951285303804379591813102065794579879095080034898402361774791818076757443302842688975345527084501418323628543119928671768511057919161942028685641705113586312770699488145278932112236879214493999524967431217634717595306153232639932103486509187480312131075035147281329722149770571362023061309492481290469427525252739896449719746828477170756688900996409816533565302735346357650623573355479859509144945664525482762972048388409288827713534601212403172289592471127994280724208884329714025131212514139256226546325741539073626268322821899844444000165900976326201036291606359145786049387305689297302979023227130969785260229551119616679325354766465570761723364696654487253515253278251892310005455063133585187610769854202470634338865924339464117391137507717731162734068613718494570647899636558348973235617999281136429720858868934811190336731389228200778199598988339260002520761181739777406097201018965436746237737386869765206073717395177906034878408685760648857553336790487117016919930549764448175124522209447129320032204292393217664010314154882573938555162784210344799704321507286989180231664882647970586573751456189607553998674729459660717260076242124103770964830477865914888641314750579794354004725888344916179059744929998821750194561685752006190441495948608261933104180380080526380266232052133758110044646281207524616731162465798970256230704753410185815160533370027438056396166496477907335442269808612703346937703438355019077641140448321883526714310574167388134219059854983449657589477657017965312613831986014208514731937626483900685205639273999995483677784848959804290841887726188669473310465004106536775524474408739748860016097948249866626696763032391020159557721767478289527796588798334403042147673467044026230304082889004150842256209478134278650562952666064664186211102078731423583242287619544950103190799577937417429707061309482838400353259117256667858621887423368881124448869536792813947857897800485829281134680743946575494865937862664106383605126815132469214278946536202651688932713091196304610064110696144700516884742681822630494967918800518633290829528205211078307683435216293662978028794758316016661714314308411152095778674364573858721286592672981025775935229117686072135515514325437602628787850509949117504743663057052890479089962226774203676577209649925724230032000027391572293850143180671890059414696396223780865524899676805658620830064492212988831325381136832309179784514729531543658488137615682699522379696617179702797912551408991993649190032694284634441635798520020537452986346909396342646438797968304961835010801180151777271026559209166011956546548119340818504909390131033105273206190508924563767911809482295066845872840337385294320503056286821065454731614300260971465848812125867114709386980234310288715922021173715697135444172814380662021398116812907351832786271926361731058789005621700387162218527944755143075920404320384073397572325898247218519221379789280326835309630549082301328189641230934230307141164435085174498570876201403546957358948426992995037344136308593597718124323955669771293490043972993538082250629353695255183602558205136809460258406571352597783600979513105548059036496818622234494589940337472221300850017695635979773398039097071064314414320741376621926675336285157294237579191020880787931241799691317036863769231417084878933211799638763098827158191604497405854693609922209057083616970726375134624172734812780940280418870605813095885480525718644684462304611004533521412811952446429475862230224444198235044671099959562440067956852163899277812945656341494002754923792194777813140284483184185794888189025818013147636899371256506588124844869066648614334626066713553841216493741878433902015299336219152000415144048933109616114076492684289075204702401102012227803274511254433647458243425284671399230689055369594461422342552346798648502277869419619995728719906200728726908682252914168537070588392395752430974901560882770022238973418582211507479993156850583588683092589182750427716766888421700343595362970368678949756807508949757442879353861892133710329078776347058839008092267268358150456791929586806096461707779634752253763173200491875562645118680417967640365426477508722620568203958557899518114769657746852081504743929091329825059756417787772262818986456444283909254736038661397748703283026105760619908586736158444009760522101058158611563556165373375725315116460020903032053114798707079543088299591620458246390475061691632579886415924940938191326571318924341034695690929846756133400862625598680628328764544210725785719002057301909133222245776400946468521516071138558233040729879473745829463674509075892753617585899502132215576444893821276331534912462617613761023150037325017591922900075704507425412456344679458275800141523812711624886385071826681225580461529736307187705745623206441246257527039072885662838563508666425580011669658755286434038432720604843515091191949181139838946603781561731416123277053497439998398301396351811673333212286674060626276081249835416196294274046395606207926013934105992996454738201835889314785919847022665932863588444144086808490974401358603924885147071391418317584075634695171989214309141229693977667663765239998369772561453854052969687914550840991169679159792055361308226335383424470565619617653632980701809895004034453885220555118892554060779337287181800187270684160104908833425508982058196188154196351978763957893729052146444370219209658576506373930879585393336030841247994479699114169457099289827915595989796415182886596864179251492853544285301126709831261949723005822933725345079830872401466506231495631690127413409267279733291656047437096205389429429963996944680676112595401406237686055025330179896572704026280065611330095259069102843081788273553823843201217713584942426222384310495863107514925292379353339897693945517738226797869386785161222994578854405727468018330334229530752271210490699222217555044611778492007435168609092991370178322905048367706662272641438533490652921173673456968513025542769954123804461998956748968412777773792831780463304718765193215142702085747927245024748867839137592889223866974802843622740195655685927931269634459838816581925873166720333520153077112736210369118407543742441173968949775132823291693277150313330322918935568572035921458999180205282285293958128637150178879467095397126755284808651510551259578371703019243634061344853576984766383855783183599349839844841106960200153296649063012489018182782329518195525403282861805282321920791584296742201058392634181967875359617235621456311018265032424439754305885224306170617586082712303462274958394576466378676676365351071810271064331812228158239317700010127612708065343753839956791263567909874772844932411020809057798883841951186109184377827066874291944663074224386566900353699984911000504557766201977537552288764984744496921182760905162753670706613652818265547013882025202833233095221183516332906089553878010124545210469013514189907664724179410861029900163386939934846837589437997353979252730421586670065439358470024458078563303191335725543653178104419246380142195024231922021742212441627945654002858679742027870870956499215845505383027450465366610614582335895150997283317491284770705119242129597280750082611525807485703951900054158247085670114255823888865072208921896755353483133231729053095565454485524436840452183900067034719556402234613642339337845718484619329048852355281592657080896028291508177742105241112218675225142832018020243049931364868809406109918206733487618062103719724624310630278691432724247359951676823473534436460321061405356488254856545730345127285936806776189217501180440789073026572089942375478423570429049202018330733829764343658960408148591340694934325349731973337107038079967522130548284268721897672240453674712533352319905043278354362745972089612174967008238115259042772797933302672704049143034837206847970285460066023380847809181444009788751218627396560136833027060445544790038985586018517105182367041297539116666986599544335381076010813895464955631375869880708380538923807618361012012830791425710677638397575856477875200268625136292659990130353275257380644257494348810887264944563030333678872538754522089537448262770398952640001230835752218936065549071335965093027530570793000180285763723489752528991538712208465385456682178746357308611084425077458612896869763764825901591029658371708210674188513171896940314095320768459536435236811673062083128412609621455628826978116912480922068904623997738395969452234769683388629902794761754688305337939151307835659382281687194703508118863561699776418411226314322590432494984883794729012401760335344819827551586809128705999938913014329069583969409968557196815758595149941107858123411312655177184721637269785178971539526533317978828584347295213168319892071944239219952027327252138868075303138585093113624553998571604441296624707909518642555151466783478856817039363297385250389324714212110013900190319604426835060279754924944774599254313533027436593969194715241352028898886585395281420338295078059867006872962170558195998406208039613948653872897082103331605160920738928403202933788068120474672229901871834321370073506384039280478623524866166908318133668980291902497308413444824069538210678923846895702149326818137685620114014036961496360473071714623199863350172104270643723161535615387544161568764913939922039425034606021432360170678676624572906649243055796484275801980928771434970931344674773725078196623644415946105358090092596380298130733928402195784507037609294281688724686931195040945743666748667443477286934998999687070679609447129110295137528619844890968253957907054585741514234053117622731585450949875397929136819565436165648372401962947863743625978526238411972577740738813721922102182754833280060312311216686830937498864227891517745393739616982362179019512879204900174252916565129333956513886717728307947955088455662079757524081160209109291321754411162905219286875086796111424520563564503044015445814763423970412413645368961619786995369130638267321975501718333713026596325341134662222532013181683315803638330274993994425457043449638654609617665711511183329427458427565908359239748203554438399832564747361656658238902151940956671110820005497619590361190464869738536373642339875604256245191836218549503762090781845112938062114903262590450144813008803644454522825371812254997112491833764498632346884874618676270598227950460835499436950112034802070594119747128755057124499030813661401006602676306852931887230569582230256581922643182940570338474174084749171687464702491228921130278837614706257159834844724454977210426546692400720267595558226722129498194194525009234395733183903822928009300401820340319921028668234643095296554236517313078959416036714025641745437376786805800028073648429926014570276457724509314696858172836267381105917673837471637329438319238023412849192316498799512659590814670424177001680797966925394436994734790151015271125060883546084336104169589404324751534537656659688578492018203177312905812495509714375009388844771773668180587191537686800667355978823252178422071097127817918675435612741269649361029364604028808578506883563992975023773016476494241096284566121809150468324270934137391084798654534003792196924119925055309481314169302603383748969573370272809510830319765925349645299111142497277334600981329094593382952093015402784094065972330218892553072768502424747434454879834255890373301662503169634167850940186707597599148526012142221851544052790585232129822735152380387541388404556314169542262942820941679686684453663817555889837215054083798275128236863174855670363115085450617786151678991610109552792151949324496021851063889597825284184922494651866672232603373089264197462323318039653707798276875479061967596156326451851162069916951607324203357683692875774213505511364076076580931462276128112320234478440236532608246697905726810146851721145992989033381762080681136642315163683718251646105805724113588782908427643167366209914418042925127493900444271096087313081058010603364790397011485143112961546406270979263738695724235023521116640385391044186852149251439066573666296159900416127229996907212739791132779586932194671999798767088247801675317092202105864090534590703311623582580591738383289068723054087016649099525234607021487135312210928084506556854915646160177254923583512138586086202686821008037900487532828478061191773224458846955676288819790916575574593555810130409325680120853645506033358811192142718816891882011703877419734307990629714701829414978763034985541490846273261664453519319704654670473231282539829632428322069724415128346019302850465808378836127798707187812135401318969384502721595831458267819578204062153406657600166636195557441839913561651958577119472974868531698783245995294094623321939215865253627090210899610141090827963461969307585156182978451002775936923147954310752246364839458504116116527706729526734179986258009346455817330910506402475133518206887699349768350895638320283923309890845716205420209579524422584991937760095715879245193301654813495601690792243592230704716260918861668656467384889182462651837073683363323916333489125504125200406357480513450673430609147584666498241680511870692407837357032344460428443749820689497143115538386561526614869451966735340797900144735765826201963824350553923992418168809529743336330821470678836506323125917404622709387634059355097304037523051420983242913763473253498947941599920466752172717918282161648361301077989966655638457089672969640050326760765941738818435807726825206497625354435455425165758154177374637986721439165020755921672296992217542362833134828645117923129823697295524809859811162282124747560146108682215958557734132636348901132463269531716377872079010579573173948959979594235211615339492212268041446516157734811953723529596219578754486611095734092573732600299387579808013637606433363024254095302449507926551688875791839199729316088067595825883784444452287007305458053260036960746590279292601470689754907036124844830519092271786472430227705463706957977896470928823956500862708207538130986888208485255040270134014015986715355276249623064078693404583290073054536383873136790629525565441228477685926829133020094448590624186791297676343245685503637387531496156993878971848200473768483198512491080984655423495902079027761091110694693368221127282917689984542143543883416452331479302348320901788246204279922311486177069341441286870601878165331520761302885774178761373615515448863939462696617968413508732139103551743730031042427306132391135347981796631579199928075507744505962403739810871691647966147608523211808678499985934408915108764917091964488649257278363213469918841080274721802142800061603797475962299825831295513044090036017243123626237726850058354465073686274892187288923917628508183200853567894380111730495571874623780627007127005706344198227533832438226475004746210709535548805438317305859609260577505812967060637401556389716223560105229338804217456428469832304365075035869908803953824892056273203283203915025591296766882467262241957858262133238889502814065650877693346379179539537561176103025578918551794253307956543766409416228406625728460621438053443369077681784477943328522608422487000066329881149785876550829040751937306768223890772024079918102256978791470364631820907520854828003758392826109631705615234209245493731141391594107118350303633135566605574799949740374107923941190541257010291762681500374400663623641564068870818181602682214934844730922079564411860023633295023248012179698068856209439212123681754587768740951746065354054574279155417572324059981473697927234858340383367411213489534678534632232655340386553941843053498338535135572721922068319938624998529480452307904309962380381656343853751204434685220848227251890980045120602052932142786180058269243520526387991690813073045325050827342044565534486592814930556565223049452926587542384152930182483958012203221639632716317130346196270632199265131341271691435184848968527135619058273264534942254954829735725661174641642000869844420572625474851806592034890448067936572075708333223690885834261257467998594775514862638099491437981472223053909492857093222861926370621364048517778156766922113130428727245913121750185184826159488352248185345989006985455031427005387298976736614146237317283323982646706224484862931642486081213367085762898489690682119791988771834529480288571356119948427312107948909744301976449605496964431528466684349532260682061850671903501661407398437163552308457702106595369379863039763062489831506662629460447384999647782146995000760466332721593665966727367352027528745455348699909932533117126603221540231720718172739624388008978659579452689316053787630432491946076356292066119568556608044909911167340922856758075005878388878213640756613318118192901011832049335331492242903754820306825476474240136161207198676757161928335196016841926178649755236595367974941834941220048979428534888083070622837695460139680568381654653224865056944218340501333996066000864726836198273577313490791513140055158274256958813865242735533728683710158059800088751310836438083625634313246802250900352139206216601390126721104605698369643436020254913620588066588206892650298651264827609765484627166824213242748568889504220366928849729853509120434539522899325588766366571969817828958005154437880332435704796256938104652799303432860224488430423138307910408204520977948643369809746659146861888463104658256596724263654429497147877871091218256447278155865119131589391389672776378491806551142035198746549496290036375606781630122146226811681325722645168989621452064553049069806013003744065133379552402623811986944136895765966491905836429189325446157458070331100267325464739032321505144656699568064872342512576617235123894852046707540707480797944918676450444530532645195154711772707661849074060253899473735873209158683988607525384558487773510345131761441130281960963396574462917061856672957957256185956167272382823701407985442784394362367073921650666441620514579081421687163729482011085371582629695875945888571299299794523557356180735321193360851802970132322265728252737994685124061581443465598379220360236799630251826056893498326214347300680533705668162821875686277838939726702878188360008876941656087244652390110829714539763611450246206526169773564232159770679094222725708125279734120408759706697096539259525479743249915531927312200311542193343771379886500731179145822538586473574085337943956344558813327396952717026539087310403379044822601863251763608823720918304531132783313312124443823380946801165300000893601761160601562889603357695556046192453663680303063078906871799829268657891664507556941787395565760829708451492085933056362659577925070641012739858108241406570250377298360702766442707912619740210132310464055670282465616878792831737876817377698039369362402888902247152584519755153439953531370516491801748686351918134417821605646341792305233229352888723590159343734263867953564273065790865607655036020907852340730602157714834773445933215801006329597035282886999132266688694312644807873841878675244557491947084130184717898238389456244643978416256758318551546466028992719826070895013390534188109318860731654855260706459521673768177827424125788278670079429702206586210753396847568161734918938984344750200694739319063500574368735056205111866514368921822554772775766835366411495136056893564546241435299348986840933040380028945738624266206691080084081364715751612568870922770804442441991568030486490037234407998079260444669642860725669853734327062857176747837735179488238044413325286449372446543163893384528291835542907572463586485734648920501040726268977614070016656597018129512406439884381480161551315487660109100423019796678020040374635457296508776798062442955393078993929400868637096130834596103627612021298861188790170312749809277350322863326524486138764794345619279989421107311913610697025022383073481657226014547567349436495484012435991786726103789934541157871025950400214871527101936686519755860241887428422196336995383541523969441499649704445284467556148558583170807255217385975779510334337241617823928895351854499582966432596267091369676003361178230609900002243831850237002354640864868464869204025973863758987996058639744619450768013897620180427777250529784752962961651329058052196861004092978530559972351355836798103446069742716302661496859727710516347374943547609139252450030051784745421122018805238173622229922899333734460368232961696306184502509933799748916241407148477500853484583762218897167374062971877003386672435858056608219451746992892772005784903304422594300622806656896793516084244898273917082248338776108378954179265484766439631909701006842440691497755581288506148708433717855098737782433790298922223292091545275390048047889386333425188391690003785736433330007092500005308894713005211503958854195802887735320050506790722300464390572271707623427591463177386654202279489446182624017459675934697754702315960685952792783406484153878103726428582058503698268653784068739281508865737989349419693968323163419827204404821133548985560941096639449545274429498597202721889604146037719271519041789684919680195222711773037931270893278269563083085291505753229918918429829540055907965735322618621538181536545224997917455231166539549864539043046108526772536834580873130470878503415662933672903792035431943386127686393315695312110032273544876771262443422987000233445932428560862062844324665708268224289902498543485919377922182702976739112465526575849873145953952639166434090847960812183791753917955971142748403287109118996076474875959539055897348023678215371342136952075699967965222403404656805108004252747373947037249236819653405780915339668056805560986169997442697059270412242477176620725977758354147591718322858195424681619707054816590765944412673864135672655248540697694163942489124139450005012862159168514073972104519926708482909252698236931543852989343449972201361063925035826292266723601576734746485149458501795497474912586871760504602064663577594933538321535247579875043582574968132467898971845812276398536749266154853364425693381877181566618789492660387043113191786710572261163770363436362712386503163487726323897108587466745556314315231463110073550358023535636163802744464798081674353676379560431289005481894513174826266657819019265325796648520769679004555800808268299679445805003667909602118190929459832581264421291120850181314938638718236077914663837304635396732788283523478511565823413747585225161084357062913223575934361874942857367432985026446540086957470578155262573041043962922251519263771175659945635745252255994197931428153735322862936680501563390711764403249535471267380116668135447770633315998506590317647361534177668511797410624116663701940254535013006073109532390340562035460854835402263093875871238023208963412972705633775241178558314623024506945255395325189742350323398086160576141518442643927581619257606161637658028262411156567946155897248850581691831290676417603301173444768402588092562829631832994217489911843746452856555779489542485260376192452143700167206006985542806235253017932325892540697546931348173888038302377298212531155633136509819272979186838229751433982937506350720296709713801763182115225231230947478485872503566977614023359482929959769324726443540332810059552490794472656493902104027645118104737723118616268152448771955753872052553877924942996439699882778170283684054010740656981172659531784008970219861946644213738555196888576887114063463390482139854604787602796688242425159706167414502934602822522530593720068905782561984606618381045000642367445360219429674444527745076475518565195455751857596337281729735468602022009682265417778120830524202713124566839226941798575716626932165506413930453329100483959202097857901853855988730408923322350416594569930414041214754242302214725392537510425887739141821145158015815214288292752047687923029448484427218183229123382189418800694331118714579043645548504108614141680211354126818206563987726433572236420214490723662378427335058389927824452958439780681332007449291184465980459824294478047469498308939247114216090867068774273616023260038300772473688801766688640990231770504620321031115502795842523987516576253985595929587470655148408300629646310271019894085827339300219883057751328026558916251231048211445940081055820205173974674874935117851024647666684852579847603484165026576906681795683910138346901421488346095411400143337547256626056298721813391988231889683741595503307154066486175705047407937169823560355753724314194135605736819471849695225074485599955360689661642974287029229054523335413602975088953439897920441129315551062686399049998873966723400235002169381959509243396427210645982292340035114291496383964961104272291203984648676926996223327179792149286017577237735898281400819714191980007461242597599175665543375595515782227322797568999723051563506259295998957673994329262503041175340232181792564793943618640849749335365909745082433592730598866791456177415663424389594780727273044096473551645392156250879278401242508853523958192535065300400675434403035163148878766970617437534357030975024456360203266462367718703547165251336479414571261076623262344688816275695217939899741415093615133787281496073371249582620115937178616199242047043348950092149194674406959781148261732420162588372278720334443692554682399228150503684596436955382166688918728095050400941562192416655651985367578079942410898033120843817181934097511725105325086491222409426358852657558992590363183234225093625181816726413848856931890883209900860729494466597863420459045486395238917703725617668398690599577004451146940957953972822045950781974682478681659233240046956076337550046777638097424792190621718927020176463644452862361477501150899905378642055271056719795486400122345009575870242164417637614769559033785572437388016205205596967829611520240106467684588107227393376202132947994422300597830026348312741593752664841673957592476484717156275186808095417869803407192641171089574882825863978565307835871694687571929611371461090666701641899501042735384637843795249682147171500064975006673056096834895005030591597549748842591142041839262926829913505806560542932376204293818746611558131627679121558652721105315823006157153277194607878911902005582399002018391970480396243350887992234342332608897602395509752536666482755141302526670191318821243669221656618412567678318746791659625901492978349106391778011797443546232278534290515108466783112841961156068994241032308918285784473305599984257479098777790961683131175190890546435349147921623160754897954724017445254228898343487781909682303921268374325830161016611690451119747921851538148645193571811029536546661733600208818511519043017380203655457418964222721891159486430709258374462902944220859809054307542462256376400428446267069958850045588283105375288526814818808501803106783597914493145307875477740013826462598457328879669540458974654849829955380428583269220867832649093910468673474496984509518842938842268572382099416231726907842768302596949345866468072149839608529720320348815405605024003233697207654445483960666730401240793355825066731661657500773711419741044143604008136549886309437122759547978912515646600422024057055947901416324369164301959121829595702840062453122055007041032862176792696761815821936197177206456301661253421925266428907296786186017531071152701201400332957359379362917389633818130656456061177735063583185703876334877843463452191397939097256553066879269233956107987178592015933140880997901996367237884152755932577583438705097325295193618328134611991495009456782485668765116461155137007366279266906431404568217906487747718949004785641966373730278153727052701609631333834485256633396728064415689610250971505499445092254789261306659326731340081547913687393531529195725715209409932182316801761953179818688037278706612196647774217659173037194400483555861250721007876775626175855537514101511858461748775501591947741009935977247489366472133112533260739794843054259417581186663512251472379949146784217939228623695188733928593296099993025418717954080880617498643678151039266854052615809765367708858641706504114586631712037338568140377334017975358984233468209270380597689164453695990693987641339491381407697307691488129278596751809149658115981377087245717198740351213936757759479062856379749016910031050386157544009697582482317685706611535378394150132420990085590994716514759134364218962081674521986117728748032595352553707723022014015740672967299704451861830247580628196272818240005087195557041826234953337168004500331149637539759931929428803478060709796726660058406146511901112893427433582829233420586076491278396724078425133226083139490553782020957519291020334442593536684352780278154539755163313850621001564754631443046636489226906396650632864155816461168396378382692086106285726771365426638092042595658867337605935360442691367290099399348974752630872453630312007216820427322503805473858247002265925211895769596085302633653150890760648988706130465720965587085149298792956713413939159071913607152045135757336866373898186608466363476078711129125437696169816174053667872776949606878479309240895726375360740756484775013499117653761450179933393113541929629311177625683645020149188366648646568251084054353512075265211152430405770484002060295283415182304989444702348634694161392724744319886101943382245463919434504679720456871615684263900545965024375001640746390824513874239080482395379865817461783493108648792937221928098936072064073618077229025365391243756072858338861931484209127242763522337163965048783662358854843964972263015727217997374449819915065724858783667268078952670640121691510403544192793666583583021307488371864162041068650500535914346912210371798581849692164459087513510521115395114537843028188049734750602454383740566375157723056136603500529646587639237599893161062506780028715872134347148143327555700073803712462470804868205695704126472869069626078680747066729011059504617961918376371406744324097955966263159732692492840677832600829549946030951264086514739899807853077058702486113909296975124601968225767758181752011728158201130571872950851708848403629709728807099619221825817816643957520301355382970016369802628598579195884322405567300023407357755954271109942727911107396385432408251900493073167201097290355393405167247732215404388988386945803992299811370284164976977181151075431226689974424702420737850301948730199986166631788061399473633053595238877125453602548560268461354312295525304818505079197393539041691339430568699219197804815450462676184352308815672826000062676160526847945175301726878597207182179740401602646021495224215696860967165714116632440284373394441491461078330024863148730359110499944031065784208999499257014298383357142126415512972141004305874050859078645809955776118804684739271908493721445805496292434123030076552544833226604471394434036644083546748577339792414131660142198541653368731978325412997766204108303069748986428030197277022729121455629376843718879958527088954872186795488347029391411953512138402896379077812733761950632615389784527972923092604230437515779483510201886754280111737031512703648577597747322997059218702672719338943080026747234230285877574953520585561163533239030296813385347163994356915583029480584012009510645974065094074459768390421461052458797332178854303982358713731519416343740474466753904729246627040184517171192968307310180682931376487505460465319996981931961623608983763537158858233109605037141615126315621506926661745586446922897418951656484949773270381274252919752231993466731865344390152251816536086295216725661964294728372284507544624112326488619628938122877777383053670545598056642664295914932246428548187227940806904491851805850803648455276122441275258284847756465263266618810523258733320362522883810953652347615721632935098280697378732271326961563098992239707568823943039934282294932068299119786189607505161276649732352888412406002928958718917189658966786891430422540105020825875504858996807990128292763874259957877077442756198792197485020822844091233083934724400694384689887382429207696176745656539758784640645377385880415714472246849605204679494682106046608827570054725688244783022729319700203831635170437287451867421465447170210351329124323169402641690385024200352295055624794474539433649062310265257989117992153512551305845758186947385860431113048399761731823224767732422884002836085746322034932911343837371392813321628038940470303293292031086735015710421040998291747379277020018065586269941744079392698152312036145773241087116302243921069116861637367256503210895525175878048450839926352438105402606886682325008997738050714537134586184125501322975159264244506398792913141252710980298762613605338489509800515287588187696082904252161956245608351092992393480103046276699715426234680507995494085898166929970388725563242309366658870606104981566299455733815064203130008841045670529798530455975801323430256921308619311061121052436488406140429791359963982853386842420721362721929635625597025086172369952950661974757493598963422334533976868226942256702462418778809571295199501453168532255413538145241397174406381552615722793021340569103956826967555772124089432778739716757250857205458625497845387811189836669265444713152162357214326199013226684886836063792221472068341013743503172097437824911040278264417277824120320847955673156387547452769061656238181953849069632708781782876351607297097087552942359934749134203412452262357667167675480827472471173380099431049951179727111035989569074829243219031684142206573633042312148036375633690849703883441771408807775762013496346487362437471209017369443451636521479477979318831782783599036903740447596732769984102077718243253723045446592446519932877477847963371749609941742609405935968216725780590454895089751560288862226834452740749273864613028862816082992875185660100387455765219896717404529278806580056940298785480258818460727504427106220843466550242333782497614628122696262314595172514915710904241557501554196893628770819857154994876030125141272713643643483769257384792409215857403737445727606943444609666079619816409012211902510646973836405975378816421687194247236398555526707656909787280510350865225610900930899225159380322001354273080015144360588018184754644332835318549464929980240740976877831367189590053391115203397395914964787761441432355414502029421077597833477752233495921109702444076976101825353672011051681751090665920206167828435267271241853803438367892929976204366250867772966075034700156212307306262939907012499344361609022930648364144664149939979898195337194828301987781304324198216276717809016299273876809240606999076546011167623728749001174021842834759569990220569730412504079295749047472810726758515272445278656678222159090187062681195593723282511507228347292185914705478713284120971773792407284584272405030630428626669607207449258207528394817335459689921972947666330424100970890248379063838949475158717587125510359480424343312503670883826346409852816553334338143198863229117133033439400301973658520576476984452614039924304400713970118220535570401119062255897288597777718556589782129772568105498862857717763461144893327056430049292023898684814706683157332072664633685670236995594231451781171741809542209362300309274782494141454639426138812528136284028908749205821370819472864784932310842533719667480955120749671481563895447086897959817539428310827575599886783287177915486036550791392412371483190656268998406392416795526766975160008186375706745328990382446113504709738768015648787467634083311514292163674883984266264517703490689808097094685171848161640185451411262869858008813352516151870455890214698180057412634529149606808844872056420166167166477227922117410315127675044671271025921207074904934176682511919701086276264349870174153870295006823940416063142094499214297968396180924055938255390915626260593952026294567171617486195638966636232866621392794825359946096434847904438636556282511808158856568963493736380963784156839341530960348246132868724218221713115484480320949444576206043809863159194261036179134414338154773256339333576552190169083846768534901785790657395048373916776635296228717810243152770204937285972589356876669630176337421029835575715235705669139667405295824257345612261568478653142838397802463707451153385585445206895731800450235138589574427881892989887427784517711816363528930735719514002035593246425030292894411874575616071411266659566229940519761370380870614591766897523102799133205824452559705298297895379452331969244742305875142285850253619803855318792410810763121149206537354973584076788762837425595826183109984431802456707676425323125528547638290359423587902543793166033865499630704995415574764760547707522466089918577688007712228189788330468224776071771051361312884484551678570144995540265557914739224424252519377244415071867948845451816399680721270332065550603924933431570006884756323622220000223160915523805183074482541017634466401572508252519981860166991526652920185011578259269246543900240594232922121210956994299347890882223241640789953987319468572171790405975262843030504016777275660032993783631795886487775075994350471095152334521031385311502892717234790535119220688376229367905992542163156472009867741090734406599683989250639549609156383391643367727670528408275706940760549907433379841689076953594337914321496061254743876398965171755083475243421955094346078610221440892814374212923190602619533184401071465063468166505568565755980329118761038488341584835785840705111472274925561923552293535168526380606489682363813511356577980110675491561228010452572558765369536133588260430316124213897831675904924696745286480679772016652443458966718450409798252374430026645725632947790434540663174307084468125662034806394996490043258308928310533992802514482159056914732770318709318325423549883657390494436857690948863992553071828840585485825977117286626155665747286670686131719463439316775225911266975526140106173118954822865494980991308173713286216043234570325205957173925349547071241999372534274892457126499658548272288924049444589673884317902387979171090776387231997114598280044588261447491581608107087858408925421171895301673676537568539434103946221309446680884383725202515115606562911166265753711447193035610816073234308305207019350310077159718475869172019079152492042814505179528829780312667413789699174982457746578020409948492587190046680351419233322726738316637824913703176304665687404643479270631892860434516951445665610479313949218915388951508557105369387934089639485219633901318389466444868883539848516603568156003919632742026912470444458930197168449634414107736264140708291451185973177615542338757999184659473163996308396181233577475203071609912795957454823475164396087923947886763298668254714647099347229712385035311913924530954845815832964691719022244804974294273485728648671342604864159876709812731543043873685039502263389629588258975965035014977877802981205490375502908526440014426913017925915687542608116899310389042397956028205058972760288424658886386869709637753908649660737905621444131426830674400895055362660230460605726479650774662769340771018187257768925756838748665187934904883818176891928318719916125088134771358011648129381471341318418191498777257050566619874233732501419401122920053276603960981314998062827261455983043658752235455774616389086790255289489265563976933677698497834315025019392195457836038132480793800365555738177510517702468243021586843771840840133657161220762592541159256941832003384167539553865454697340773606988895459617478847729294498317211988252428466388517641378858266993038197276541170631869240164872495559996059072890193461353627338517631546218919896683814631181667791084270398331694873375658469850626594062164457236526332603195347217016199050670217946222208610647136305290816451335908103266321501466175990746031997063363223602822119681299107554975196344131929078785188852103054285592147251675875145031078218005504841000520457263434230708301170447340292786903367825906093345201168837840928693256420657195330890862898858003381912732744837380688546706144844952476605176381185179920012750768277105388302913797344714197387554999325321498343539910908060870706774518447397885877893988577387112463632477086136050210234841569868468441685189509130289813755911452104025600120563335357916265307952877709366628774181332979923546093636229508515955070918370267183033272872364507596314758739792588381322013743350344267431724547496011887917654117274558361136911204747949796584427891490038990784845486351080360661412801590696878252582657522236434579661644882893985212618088680642330807302703235622842933811323985467160420085948121113873245673565609278831717915879331511265576615499225222554564208648431838609032307541030083073991278732776492891490404316656548293444835088203517889758713380977709627522313064840648762449689816413997201693347164194899044054515579381714096221349508491730036164116260400358156646827887108632585728310460820314031969879801983288720808934416562599922635638741238359892583227334105717261877939839238341175657674353743516040983667206443457022991447482883161784571149195170920866416579554124055698242094641574842137172851078495534528767795058907478750344094816409864116382163841204842088294092307902907584506685652870784564685595603181072295009624839864676646327089314616591958621745924191750272248190632173533170647172734730629862487575315118847034991643335153284535351438639812239424195728548650442099430514253784946928020468963190481215862489465467987053254585061641369275312988129331724711759292204349791620414919938069999378911420498261595009748672925589230221029659961546015353458113413177525267770761527471178182394057950150858198930282376578163403504048600393694070735283038151691558434800135362505364850902926577326645317891470317758300310134288290685123394991592452380753426608070932043748938416834475809819781740143048539264265719583242539824220563418145694409143867187052611735574064586146160632401303720246103770222950013143041021761414923986090039769681778719903163137255693547383272275564146494100646651944440500935199980514759183226257778885287755951433354040322791262121452559600509026280133334970219400105758232005592856737450765970020025987807199545701832894371986270566697940018499245401223494590614536615373195480454383946031411853040381659757464902645756544852127538978925063227076869301365850508670535023476914789571615947229585782381628742081267297610500057660835138801618104770044602969940898602041686818135093239173698310351565492407254040012517181096210947960729733708022063706839491791475792273201254608499746084008662599697582205690609396134297951722579964259649906908762205525526674205682709254043461947785221948083391536353470617112312020285503419416326158429367237542806992564064128277721111834746065699836378522383459229101972672420601945598955473068166997385608150380264285334204930054783485182630325368621379951254165303624787493352681115807758306864111844145917255466000126237840285698003408855257255698265320330388963869565482968666630428913443010343683835366064382112604085815197944920953222366703539522609664687852292214166871172825555995504980752759406802310478360918417002420195699148489973429396773749643690718758954688934258602873005199098718420129605211248543533656889414243518208967047937895659072458322771836866524823473192580517518572521022025698126381771968982089084082430606232651338991341631270333755453709481603169774296679897517828088607348382552244065152479059183312403168912072526959778543982526076898570878382842796918599294782486701955383482920929608701649613188504958150351919031434800953429735702943135957390445771293014870198015798541099495142531403514553079095092220017438845368982135869381542614847800297090171444586783973937850366552095171238066021358850385952396747083646135036254822515325009905469847525167875873387616734268533183721334248630399193079459732708806784132099709093652446740422898809473037420427139747411453537069587325307808734281379204067678380099622850037610360295633943231385283960886853229534584830376972580225474304278037836088633757501424502420527497888954416245832801856243681583147976663144191352778944164015725303669097250881487264030690056689009635666985493023258409575776977288640226731703748996334294584543262693742690351985033356757987702357238029045288966582890611807044239702041992427483939318086349343682774891897003016779455581752204563744884660470205975210989206765782480958247042159881612575703423817006626000432738322273538847336403504573697659767922979031356222659390278478584152120280272713078850342638824403060729893633713669355290812075196150977575440702199678799300301352671247417735784961165431071312278325951304555044421115989406938791297775308795675983372065177510798261660886365194653743905125378164494152567609848336776744357861278089458412771062814701891631276192505042633163593249308984163593202319108599878877515335145468633802873182065978314924398216926327367004947332905708630713954057034216369712195620696646017335649070785827052243393774511036891598032020771652006835781562714772499684791535770923612429213599128431017655863791026718356832288966591781457054883017052652080498063108373005530367116569983628396694287359840639240984719295435272998204391785686527303264990839377428623113307158248879663050208800654814658465030621456978274656732091850747881220296107290160180852256269094617087657233955071319526304580413112593310716211097312297082713720143224090450718215794839476761286424611141178425467384723650063457173938074082220604752357103452625248108001037536937067496273988393476385887147277835871357091700523443053096948980635226342623270743343458638772613465786735687698862590603407166630677444576192781415049901331185340219692874719943951569117460882721458069112187531568113187590596641812542647487696260280964245155131320516812103180732256944549803641985276947525684458546342031056875447944285553106881822421893088937022728736069032874270676451221924661342157295942352716550571317373184205203313512029877859046607025479349165252262932317413739188870296030844717880149620218863491559330806738104049620434361926978449183250449520616282269042120553261470753762257368405367603361002447729417877496998910746122887670171582321760929482965654457057543146625260705489769963185900758877514991276517021488469397034624680774613638280404906172286699128747505099153787961295184489627600962291222503929440200221148957860467198710274012155622735168633020295900632087907006756003359511088623278066119142657372395762047935842022119782821165231244884282755397446319202091397108294444568725978635741239500128958961501359041355407136342113985816723759582555945498069982482723074418444869138312485421338578117338571616230782339165100497771953059016445562888899321153882135278937717232014174721187490279597793016648220927885342488571655283431549904191889878946878795227814357545923946840313454110243396430232034567784996336851479883092774371953174689634265625551579170701788023427309839885433073593683267269103317070340849437051788450949802970819376260907123118143673621386135026638732979702523995401810444048722446194004599307966297124685489764259693676429732846011838840938448827150707971964203247212765147171186962893488393011487841327948939580748608475970166074707771751084186222049281445452163161291546902270749709314926888795970741997708869148740916921167678305083857667885003741837482361678694363227950928621645246221592691680419133686895359038999403691765567289489247579516679225183527469444133859220235109452313921693723023219338712042508849332458127645664750691580206347738208205085730647155482279049492419778726255989416974638933758263437685271163006611923791812969953347234813625619797020224146236081533199671661632399365406722266298228868253377649646990910697400946476740642359692015974649619779788362315451231172802044421689582584163377326716707194543877714761838799423960457614175873442602639584218109756677344784193066525842836912933563086749740561271191100358664450539177811163323514233987529859065619781522169220370775287235161198105050699866969240342671741121773496619246313812632548326416943333670393773302631620100934056606326637685768059031014144717440064400046572365460065018095407066898156978171524808113116917704149355292444792096532267927808514549697458781915012837463266067366213596889973530148338135642556789023276131532611579445381958860867032075673552577073146381189382756590967405893394421376626254710252785683480881236708525875597239364411843508089671291801730860304294911104741372251039031346534572031227930055983849917420560823892669518578498111958057841491773407498843872092723493450107814011374192270813145266696905130724148716459957153840470458030765131186722621270309061186605563914013379865253915215021450716140719923736103742324411965337082770097849542008042464944602522641581308989179266274870167539320107530919391672966330978215627051580801928356188289489959251304902524139898502709727596587473030055161845706288148447289556043141060154410577396747767822838492173591652921861551521641475194080231186614940358581753578708254193797680287338590320721966765913319571544772235418306059987006529078899261472317916320576701648171059034187432292886274794413741592223202621747062796980133283685374755198610545650734158358550090064811711069411740828061150107892297586826346876111588911065663008250974646810650207730972996886059774079175704708294739244966041653790342809761705941746053083937279347342757570905168857416775416782756391177708578246479536481809343483059313797328020718397635508150678762437083613564789788000089604025667919872364773489534936346144156057652397436354176133889456671216740858912374013784231435287287821342588231645415301538012779276269939068746730318314756541064588618843501148162375486073208095246923281093865299913797723128685294957803364515143019149907574536840539731033755942085859160416652278610048773937664530065341379666649732856944256598005775440843299602400853614564289119906510388763024561491019233539320857273141794955752534539358704799511894419095233612263379879370561338351729510702822723681644115287994423407743187097925724010073325941541899038000112908339013182216387168815223011392277232211714548950061102546802853866936412384320843183604653245878730168301992111824370247433382101584856136716344008132689107827327262088635040459432849563826871715803853779106079403126672445251363526235524266462169146200739723852158243508527781550691141421918689738847617063550033014517534299408916049383564034072978426356506941186084843136732577451163639774256915072617855121435722384153263724763714380175600610635421592084349940057796782762330597832990473566856801090013702796013841216956527825269348491901748077485922535447411005624643309749178050287677994823147684926235545537859884116126545969159705661929579479254545565002000694484893722593248842052043670621811719819481351743266785725294644946317871534767457091399697815003049324150105210923827699295085572061041282745930460752038888016710227438126286677447486874785144176065157642221376225370034901887953832053089865033686496735108111377979161465880805781785870402861924335629985324892465761199458780453775450172653444504191387139838806225715899793980019260499394349152416445887839312803575343156148013932783954766351486339796622578642430582678468487999016228904770031576690080440618688622557896372335938374924112437618952097274590060295681081993857278969521318596271891090615753285313126065413053539223405573815210499342285009633777993946698269763525955991994197793509091486622475049147608015468958702761746041664540548202489201397607620792096611509299983881189660302112561496750431580789140555067923759499222968945774856467092332390515869855469405587265553533488737511908367394805648285865361134719000496430243248880972216927054922642799912853045606773036163591186923020816460457595080716215962913239135710081008841758175330102538665028469411191933755020262339384806534413710740406838050960060751852096281443372782801959535581814135647104832472410808009748078268239344599119916074561689795528063130943809357477829485919777922101034272157106663280979678340541700304788931269826723697642398545879147532823741488003808224148651596351626239382904912389563910980103506598717800676841443434627921932039984790583006166001406373918101349627322171360897772034581999500327480329476411815677939545304042460171928792000075661913890388780486342332283901753139998721406575848704056086949967358453360260430219673244029137077169919999641973734696154306172884472537386190445844523880679586141989015893727996976034274484806801922788596952447898231077393845465317306243611916278967636607859622438596615526723903236674960696339555115664016016084297609545544189318550286921752898055482815356325471455000945791527507937147820321045422320651881264405697837108240999683977535753354311671196189568576330048102133169433858799548772494681579647086721285399038916062440524085740264674536588641480048669650545130726993845597914526081161244758115712165377464296659269571673897264630021832956650305257439205561341705756703784792725693621979030237934019209161583074828073524202464075390817360653121819717026968600201636404414587634896234861527337359172800694073810211399353908127665607614303451889907787054016434156430427561837013551204110194877145753942965891043199931029933003150116053497252605386653430121673445839222064156072020363822030251969513553696193914375691565070762440745656674324851471806131022801725877703741482487560028989394443195963971055662914841422775302955820067131390552775585784321804806334079711184119150092737425075998485265764243960355010774770773985778597657464623639956892670275776296996455213331201531266461509934291808408911132846417550380553741408166781632275162670878985549444809311621536124588572866246264879040574865240968762552219663228455492418838972881655922796500519566169207682984594772124566450524126669782334590443979395015606480703954274086785958082952710129772086042302488783115010971713183970498977219463167673830051134027869104204282299930473727984352976379393115471239290809236576584586961917879753777326040456801388614025373546420437727115414248915198972290469057058751876844836171435745883623029644216234781315703971558686735094938757729553644456882460488726776204704335051116499628106814278354518854664306386770002114566649040404943518588047939059613861396633324688295894672689690514197861324721840435993619534222239724457421464947017753726734584103321630229211893746867236666338956017914653380647404085739487707842843384365784783410343995034481976087882291889997585876652916178570840406033166962522766555942549933504670154880259896686203676964519907723248523740965234161472704213428294631558291361792441764723820527874694382923687997787410022584544863840147458230015284285955597691097141862282724072471493994869137822555485540104029272636657629780992771756680492827388017327947122147963828800407839495256714017085557054411581507120615911974676722823500278733687363657537128012829310995349461863483973350003440993035150629490889130704841803956683978878711425891234382921339525958722171582762336828921951093766476070619678395175603395378412870171357219725185928768068675629194693028921489769132331181157527728435981294103659927681456266933072884921307276460589642050634898697565449960617282107591121046080463633818718473576856568373073845895618576914240580229458309909925305966316130063878481526473161766994581144145520927239407091251902761410562185793935876341893938979813114061855176245410747179666550649179450343196582257312498380047613071081091881481365466050914664309278629187835580526774170178138339130707847254586354874994448128141518274022210955034670684837912550201564601722654034833385678267187028241027947814170506492478971489022361417091891692009872596354635841459274118024458746898188975843886409465180458879264497264364508090130639043629122795471782563649524296563889526907758237971143867189589389329723717730348240627660544553978205393786523197856400388831242503032894867849930179913422351147319852376381072046875476411417820825152609332920556622739243774385120513950905229000528606047112018715114778284832277143352659591378730715944529636333890681494598408488423063755391196824382543683390725637157146426329696507868053652446853333799649209634134974902222842579147268921151532984024029289170731939814496820631707395695211551301528462043170819553524315408355843064862724640612159293141305684501506757156067079392193469772882484697507880286770002777659883462526432468135532981903903769977847302571825396731577840532503934618378250939915343965856122660685194430968091004690064923924989911571091948240584820433211943033729321744429514609077459668089279346257159486260153584072617774043339209601431762222990492414115631094414630152845185993663555138345866102291145463622491208302607145690756039646018661287810199064335776107902389452660466835194057704774343673914866564716357389641278585869779171142356736875686507542558309350254825441290356032175122938791792043165784085457108961382146508484119723271201672080844074312104660839529189489337321122958785958483506123805806320917035471048257759665057029368194021449461984496132638376190089636220164470105569162735187362301466001890626587161360464502904102079214471485571520679623091027255577234898215723817595247787575242461425104181170733827221798559946668636906525323957707904414649661118277709393572912813004656535140086073879556317012528911750065319569062317638808688729667957218675237846157819436300531738671417493820335758174960001186777918032841419432813587342749506165845303010394708339689156518934398920601313282704994958555273307300525319872113600917909285294055479037593164701815625372905347276141263212306217493950371332680057656882828924959348018780694341965245171704606989155936426250093520754229210500057099440532457342476851078235080933633933993409635101684554572402773205884883280330397796309306544926065821129475195981469544618548188490488899639971569219969631726459179126337758642406372279187722456665441346874124819984686496736224659092006551694729230442248162416412595896746807295453442200467938659447715137838484009144683851100615026009965376454644841996131031684577679436524565337897487667619441369447862090858963846936098729458627878591772312938309422499657238643458431414223073680645085482714939399333591547254516568301063747592425043129534623773429186570014943482865897922081544825353996257723636483574493512382940258301702582954934781715591272643830180750551791820888468955190293441065384012639834995213270236408629305578653335483970291276867975621318545427333648075643976934887839095290757350169900184025399061859622413249925107306791107198788088992680074239659471411154339891330066449276490022327646177388376669198094069326491366464131125027505912328167106552229265925930712654113638892613563764782875979390754839517651988767874571791412431772975678135659027264580683746930808508950208901952453862478640075168330144928565127725126730444268222023100966858834498699662486444363143588795376218183061539220294980525977646338711179947116812787844150424152293315847000200801788947276022304501367625253606072213895768874589672927526706149279127237722034828297561438913701055242274067350897103100651310315314935072386890113718821001846238376362109538187546885643914742410006669973245116042900516179458663510730528295748782563400633127115607225873044883183933974822922861653246805758498506988730535531045095352678431126792440443808857300036870717929255922561449450287377999663166274678138115897258779540308402301739928104292140340343903618993213625586592669615270365195267890672015351295622247077270108113965147943014294390377539638816613811970187730582682822687256268310780602780181531259254211321882873325686430530361949520505738399078562506385563870022456257459731216771773530548480971164669456647359677147856565819561447238530602796069933949902804448288159380456377771329298132989695003074625902473136529558104245599036392530452917032708811220132441638178348509300747471486016727185167025564756921717472044958029809465552060570440342842619366788506046923090631864613350399633890226824169988568357650359364830326796164653416174226727217913337250412934477735292907754250186960595413459542424238973634015144870646240402700487652716271792566723831050327880903833161625588904109755421634587533378623566249915845539181721415029144686388260230053067458345094687920954007275607975665936839087227043417347432774204322653581357619137342256681392239785275025219847806476291036269491407739091962822856847815178521124203604955041509584639392323316718530965042292728257387954591890378084370840740828289526404939841489342461781325030273446300321338277492610594361358150671428858035507930007547983480380211086891964264220913303766364131317792372857068220024476257090903218489750144461785260185853819479591146433993025538119655880735688542658402287050777732287154184197236915374629374737313315448423247418430314877696931622805208101300051795446996872046816975784847317788839342631307446173969968294989940447600337832492303222722580646307675136929789568843643793344624121133665601976121319438676467562406040860683691917097356126231393034727539701829867265955109499034696075984684995796137888208376827961910840551186091325804328637567453257773539620861498689319680487816902546007203903033724095935502203033402214796859996471387083800664036792516313923556683191202722174530139069732438887783193515705343052746085932223078874828071039483048459529416473157697728233722191133731897770729880337393836035687419466173894033546574054044916579351928975776044447974325784062748745128679145540762597547542679689121370872419618686595260474944998246303851275190169387271775387660382903251492838921620941962062099017300498851705181699251935022014103859173754967387942007034121483414875256754470077400130184125187086057009028152428928852501657014044259693394796958700863010992163833363566638857423060336152150961827503780205714363426425183370491678802451401511702787868577477381417982499511172711935364773653318414739046875581737244159746905298231725776873684379246615843792395034846723025497056549231164523048784742172269299989260717478341676761314965776273639894895130644141221562978944689309839499915806933706390033737308602051325765854498533922376285785956911413024811613545755208326659756052491031152806005162158153905029680475447899688770031748672364690206274526100474972733723059253261087965365735991412611277518250988573878891490284443755977457995410896033526542922139529146983010145590778857535051413347301529506509705575560458432076029006864567298551920386795595024625076725621668030508662390101519840807041945868319604136128688941306907457210252629090200942519765276872676405151057023652877763979045723096010334937287414200078345817723165591485517445774528250870416159249568092452413354504545190957532534397662078627979448768973994347435433903359880961989434930947272462103630488108161931136130773103774353333274618754654403978174331975915018189744848662652903964380908380001413133695197523742803172095142998370949654718731989674708410041552636787320671462988683199360032622093460036943033709368738158624629336842734482504003990189616592538375461595765352736901767310171694548420495161270135986911241482734101051019625430395226404544951020371844719694632206065725535622233404447602785292212515980828412551243824122734667027558410524257071138009063223184336235913989234051166610165439439646371733945945555445608030739501109094137238382868850694976670162577404011631370735455667538862117534288353905409563622964206796525946161288659771700160515893026661012321195888174826444026102509694677459911310227823581152452097868443992921979710223908769653493286595188162827029478536950054380469496637471577117084841124711093669958743796551348501018559334620866139674994166608556780407621466097792934948558025464645125683887945614118173325907502174838764178727130690419144705296842999314296863068611289563441600622690882266089240137016443226020790599242899826179201495758060095936693531635455937857585617976449215727295681207728247432504228595467205162075744364198340371720404769305290928559972521771671901079721925646741156444572754949379158109177940126169774630442462546586075053017553531291002967603491793817346829714418197077515080323827171859104316220821047736723843567342528241733337442059068363335809690888400954199483414540946432665146149012208555446339386390822696327517195477624314574802089019953288792925648572676429240203000335569364918722678699139800865378435052311063835579847443980914397395196822395293896100423852099315778522601560895611468514368644233934059921152269993101907439105548327414770932518975253546784666673054119659698179319996011676783498171970824607727479180157618956604794368964355889823746406381955863771904509768543050546392508307329392344066654335117989398198157621995236904997277839496435690093930590139180049331113365946423151555190844818991003994445903877224446151622821981120845210766980857328414082214694055859790946627808257558818311601801321449573004528605928817506037233823909676636078678553728717766664743038443210747101953465083635107474601539884426832477690467131101382140478894753857817806868260647423078383926585019375931932029117917048767550091542862126570583837440228998710568593936074144248994713402842845132841993121719557206421286058041957995709457557425185730478823254235671095585121530866205074668245433711063646890548884375110976710860494682132838850647199698876841217654060184270116618220960641240137587780831532440746094808860920232434693853898702887319934407938402383932180315496008275529340611783376532033216777993759717947028410811695305916251220923258977946414820461048271864987792687467815567650590299123463511328482390001039016153532032403837458911998607344245812319185820077049327407829536072780180170393359601426291524421736748349640404064356932537214525838115766523377927878089100112940263207556188160296828084259399997600236512394612061998816094809148453855310922144848174458640123065631532482127528206525657341308831443020198859602170222288012926350561820215428928848359740170390450078364439998304210879854014947471983656716113601336292633672370961097458067591086064129846217155364987188219635963817003423927858983959409533669205345801763670225293823265180382388700117627566106773611766801452068917395257587513005929094016765314594608439740428932074867019883041930132413050503088327274300744605890039573196343551583094398119037076254740519957128182757311996571250238790674939939144417200524308983970424158420367974276356287565209987406413742736732483704661792912179960943349191276260644380779325317144651118418212739841759475604831944696933409363847362846610049773798503245853711878941575391932793952970020457816558702055022867410200102752913578789873832733664452051908361437149789920341649223089382461610430241559793317596093977805957825576810965992836735063727601471341971190738951431982384084190677927787211281611803659090209856931727909050452700153020899307471663219048018406031135234536688983874546421624069417589310891525083246779022812375278081578442226603567896980635477648656811854078809265612780479955444747658062575809603561783748450215186964440917253928287227042683535572756760824798120923847269074603071661423476900134213164894930541429840492548873082970415733972980843239733712844290258323675261343913409953602843060816072203972801171683351815566656877535065916317942170929405506383135836037356302748632907485478755600556413349773091178020501736891526909918148186163684311236009675923566759904448328320402846083048001529893776420173982935329903626057130105060707264267755085465183271110190865817244179913679309682835387601317066287529983838567496908433588602137009059304202468746262609414800602112415594045387528760880630421775514962648569412293246800054475389694878067253355788256836353798463010702755642245873303099614260282323686523411300077450870095372509445004882007621564777026464011763216606580192672892119888313689303535802038168400056308056137938325169539347335777954883674090704013399006375177665699062676551496887513877913527433896881103303014333257838762961134079481095547268147267403368495945654347115465997010132660984356556924508346202321791052343480371580822241284250496531865940847100123719135303608292782071417595747883929436590246759236596099548655979906779087192160749325506662789898620768618372279627852450716471095250215637318222181205216371377853383408438938549861580462297060136542060744016635673801854792623846214442816611453053316125824821516470764137307254410884630751567619438646763402899903816099517793796045544868156757374276974047524085144361462411565320544543157905036253825231135371039408420580796472768781395675240996547145647994592817901038401238434987953128137412767077222218281974325080732705885837056564718657870016865671345047616737102006680842312744020902550059071932483047985144997387064652882071662490210691478668855037130857440213347358759814941400862495944176675583874482230964816432717108862594139749098747918411064440716766776467438901273768426900602246997841934738476159652577121538674495419603091122808741391960181632772862382975291868794344113164803698342547898744667176981299665322273262990181043302320744774172246637171098844829607802684787081699904978197893449795428113869647658197385579446942128122549077690845919011736859195459740750871366981201752518502999529055690971927968056048332929705386754749177619599983054695545160450430219768713716463879347049195255320943667213291663866423869101805924026205029084693918344899057440062382726258359082639003151677007961760906484206697122172829672146104469026129173992881291048104392002118852990323759769516265491089703897331266019515973225099630510341350548226192709384079727298332995114231403866949011984198943527168071907622585310943330653335360507586960809806982965932110223218158928461609398043531357554119600592231049197338819157504804659530350717762897301604041573817486044882261444625046008546112905337283906800584308188823327348373721260144256457891614927554423427886727028695370134205565449003403748241599809966108840338002508457742500826176867584762149483979430797748675852475749303319478670628430425471609476822116949007764987837248463799084229966866852643709391972590738392553339556762266031962155905466739387650144955943718500311873546194320043872714074039410283929181617957405102620010737115440794682922235715663337255358826018443837041291728718201589034815983285013680184570086954990572163823592343299771674555112929731987251068508576213691280144482193126860064571378388562412074434857218647567507607493162423938022855318895735221156950005573060662137413079903697935483664815155075612922537444553414539761166781491608991909698699417695285212454197836567481368883246832907619980531529049552399221823887003490861417746060296247757178506646303559039992418832137773944883146019010533047889821295801543934493006840003724390554728648021641758766558900016279002522275644557117886585062895182088788568260537914452236973908358088245075365462603910163172152360950268936725946549398541470984676140116073965478431735761945080417206851657618003777189723858700001174455528007224684375234343335573328397842398513543224815908309442412855013520531798720772015926394335867922194540155490586185169007209856592050052599155575990615274156694356796355477695735499815075642462177486574316091003656779986712974548183374844034872680187745128350644410987513885237801658278698770513670474263779469928054105008527922887620007039095599377461509538183966720734604779167486041854889725092597788847266997704711140176259478569370446181978444666714578469298689644681158293240648750873614523535098860263457735677320174277270867893935558869010087976646404796932201635111957010175756270518126606644820151362081537442311044707893164089501242807020119431697785381999426171952017851390972647448959953859395639529229743411030785830192189228464490708719734482157348289827176934887662689243241575846469311864115080333535597593813192253579126948781674371337012041569598482795468839180886482873752411084267699471690554036018037359837578688489068485206232245681145869456043284652703627483713342398628300992733766064455693988954861774836837210392051487259626572824923576764315387349386121601893266765177450115393566951239767797582358928670305724737479948278797940267637788398484564921784773864656914935903952616688053297924643275106280853726190330688005718888767088367223444058197942504125717360084516896601041474272679009747964613606875391832836107000990403908712151051985797767060739437976195798072376843656784916097928268652664144453575550625724197990498810933377269628297997475298246714123171684551835619436356278610302548667393131547311877425192920533549858112932323154192981662115671281998516483830860157218716540909308128821619145283312626905216086628559716208058543422623169300320417623370144583588610638563312178075569807865350330365102804138704039234861081810442587422819942925945742889222126148166446113449320779923851363573203624122229912560768647620172665655808965493507292659580502255067783979419465629178504278894236633149674146304955918668684854538518459455945185564633709475323647617713123871111206743406100801235446874215879410355043069352161212088596961979854777293963170687394148406180358212911931584928254671520471140833894411470031585975695570613302071720208601291781749249909747725583613797221395508663154828479222066148329908652701541759268248807199786915947813985794608286043001363908220822658751909556193722244645447361879275077024479997851439269942831049678045872921794977037156485666388826853866974176495788654352925427077012796414209799159304156866117894301784937100722491053263512272619801325947205177249286866293342253577425875092300657576890165159091253190191021132888645101695859334222372525427633061203144646444220689970121754591651237099972321849571324059347001879423722343352485137278557882249959694234205919781410412974762747500746329888077995747034912237436660265924709471572896480919834883270447203517969499681438988387885111963445650584168978331297522948473391540284845826365881941387649886894449779303503083051261027462282332134970549071016455356998966503790806402954662186343800808522255634538710575221687352281605840795273480093735641657401223787496189731465249723813789703918279709307780527575919932447421162220672337813640994276464970299393704791113824250578938107150620109252683473637607869291405790646302315626112436375985585286382601231391404155617646702930597974768400504489811706216394994065929373374462801452144016282362874630599754721022243329222166503980634102425861600878515329512856639471863044872656620700557591888109390576867636979752855611016077043252486687475582616275013266404401127576944439247740164737283856713976520329056333114498826392071091722954136107039246644975806256821147232947708838026952730962317561176050667143250642545623726349764621244478344114910511801508585032667412567726131694129599274220365327672001287714888721177687489137192770170404633005165892200288595858981710037094509862575030668338330350244872319763154864906273716335334834244610102923365501601275272248860838526598760500451767340964952543340125202413811735801533505250918286957762483686889073215191125903322300042298776897403643185827782517272317289922493458509840899124981839612956111552804181243904924262645749039717521785986851781856619680264496507923930008878323602839466971782868539452595973177417652964671464316179788857497104505682349297886580718339456946647654343953081302427703008625661405229633586897487838047786476609465140090772531700229945983612589261744570965730838118596392642069589003834185828217370671498276634182044314418916371627322106132653233242083156298487788303156145048149453875270548682857809083227338191188563506320485699441763214749661979937172418939120305161536488332910086886279216055813966205475561249579687037325664456352052623140005689309513098548431245233672731314396836889001786664974536690009614285560804445859200244832411762733312485259895611988759365048142065665272975504725879778062617823500604315662837576033865809510007135093483051499042958410470197213154610480839270330538532635769753366647990653569287748525387985758511212074623396045040515579971696497029635310569781916180746508329967845515390043794288812920794042558822168508716987033534506308796441445880268805417993457601344779958594623647926138252989288015762132482501249533120757485316330848559003445875822334830526502013366916527196155230931509804103481838639207267667995446582141797407590035653021095088045192849755595895192091305610260976205083356374737476892387760988818169720324854716897649819229327078284668136063408084041084898109397848476123022292651123649373589673211075894872905326081938483444078216066214736803541462486232354952654877096123739416897385815894564092983990116861838207985671247758155011770581665773685156522011823982330525603259079885376454256570071918207211187541415242595893388769084743437355515940134862783634515708046017209954290707504929675324787035588744012481102785851710486401836988148450657871633408930335208854943493935237754566815774567981362651537345611973656858622966128317096454968394267950432633864968145593570858594370701657480097299407830286754748384077254625079862040803681714519634058770306197221311902058506759144546267193199565539102960687971207829763231134278621737304096283720202990840339889187983872656767042365806227811465928361874595809170788125893472457766681475161891458939711497440420193763114313620022695800093382906870353328635223548578950641200908204028433543828245367711210611032019377162856510777460689861301590135127345187067800074224173970296942491146703887781327471551334980687975976918431672588801395572802743012328127855919370407627243257236215770924996259933220045569385801756676249207235953542220634211124964391819880155903904781641036552410765806046902851155030263909841442284623107766827732229552769306257002055966850970890232160387275609644413813081358745023331783313444167689120100092918528712548330842915595142626846731799464881668217268442154650732015529917314841342775063825187975269539081150580685803448891205725773440649911984110704678214906467160007066079272794955343842323761771226936871403509688713883273133611861959832442629911583388569150590171400073292799631106019136298839074419916965595036641035023391386219524745612813319172200784030849000258878562778475926070453513484727295780612964797125548760999820060905317698390312019275312727157110262091415815882959892274980439113695557900304656369483277718535517808460288237025785410160176548908273661911478108010494875370600588628393843066665357514058273175212605012277004130220324157004524293933167825659046027199112333244918275728788232943952730205426104346812402423575037264102804627840061604053653431906481173323868047555569230336936640028819855751595181567845052203955184047903731761587947136615437222858135987432870894400244046019417829661698391686564734664470044494564601728790898230123487183478011934452178208891707821966288004738958328904924684712181772932464602078512314009650166613801107161388304394630674655272659878189148507491002672930236838829064004655220654663319920431437819930830192136850352780075000270493232202987161028522010122211462857868554253040862167179168837294794374451044490183013390437340994967575444536296724948525952148003225221602153412924352095537385185859825042936862111493393051714737881459820393855489060002263759518129297377644325908069087306535247710471555766808112733781349535999470848135851510157767943331142222086255402388368903670612798495195146716308901575599848209700168634721027050888048820489714707254035325153457611030595352456876233114288296565935307112662657226682221361753363774640618405548301183402619102611901209732471652166822051671918512226392663921438027344669344010977213656346308881022289621187918981767020040750380467832813806048168888748273166355558613523029872625180388545164177886657433786546669407881516596715900928423849156605900865820045783874354375169598957050960188057348068241440649826900968319437646491076002938728257550611958884372939399796890455840546497590648441791548985812104680941748861749087126161522916040314912672675654014108284977336310550387015914583377343783202038058520404958391705140242732169197162069724523059801854120543254761378291454115876788125938938193960125162502523345345319991987232978678680000862725832620283491120831423093137438090577511870529674919926242136889900630065809037877475412206117266707369887779085643165324876245215746565393673217717688127922970938837934055003315580641236685535787916115948897710620295188920728653397365994150537304342349747715324992641321260432363126698014940781805007779646903311532611459537288699262311172439314039886608852905340782991424728170761578365685499096114586231365633942440489430783858901190386785075186759371165625329954581335462641380580039916858094724570428163050703196454342339674463934709749072936535219446451072878833894151292217675640307452230639208937514265594884149865642921560645112398591788360384591345088716270718458553539406867933752760204047190042711487249976723079012776809785386332869262765158431806516137935203704178468972226359179668970025184675292689499029202727535860089449236423237337206228911094379915915584278872518089267089763900810441651138624806934737900612825246795018644902849806352861351487019158014909951210366804395967594954594004795641524727107423283236509760667194980919258034463137869543886274202905723854672505654202493099411310138376148254909424803861429881869561867172980714343051079387938939207904550994633653587441178899232244974441476742383502253764299140409581711650215479695197406442753704422540945061739565722687723844533374390615842784907697610856584988589470656725739333497136883774148626877353758099459245753386744624487065595952756598057042317334858003855272229093953395248136977626733950639938567899976917101877273623576719973625544287391528715706572493718693292488526660279222248863125973982596419216399393235051097926347334253875371901497549638777265132429208716679323150206815859966169830481805462516438534703311898379528455927165858430318642081421359858440708264579744122527151137525689546512073969931803905049698821386470320961221000611780916526919887702556721980869265359509658367191672795395939725952316922069308481879612151535333296992019297474318828456405661732606661312700616055798504693531396596029201055724033390739175064914190239801473120518639823723460919248616249290576069504064424825942469375036984750088821617583615312462695191814276852343269100896658575827310663643352654048377571220459019683081754190366342442792785691304152655089523000663887893728034981210885917043481229727307576945279722276560767965782139726838930494312839814742166291527120878418973221907264867173967700168602349987438719955748394351240018097592646762033940268402300410840081500514144434686542373843264374290176983272162185751786563344274568053452884615686613507966877939216971597787832196727864469778479612985776663519221100338721533962550693236251054074685821680188346401022109795209718224840722908749245088202186284010049457606108187449356403949735246622470327967785745377325816902969047409403848547626080357846503608681989050202423403389419072706125113586363757310075289947626086544507802892113697642934142090715705446789060058783271511413469243035632649671144586304591789601327878406679367639323898528183617978185493021954565594299433598175627407682908553276401770927189352777673854652363094739435745458442879317341608402095942959342304715491830120445469270444879935837069244078302529169559717736632485613258413504731568827846301101359669954183598111678803814057867117562542799373062370564898711711714996727183571945988738639910269644623372642107167654151540510709879292138927026366320304557094330398880870817857317160588391129704988905617196962082045958895374622615350822312749861301153150486463070743292462786200318712107754881416710891857247619781263988141143336848772332028163455911129289374137735452630187919522543207353780597013594838792387888471708640244357188149918394440015998281596683904336048716372068200437489446039002818014369181707802229177508263636109502535004632615014484323561393365396760919019516365504238580882581340491902515368624511136528263943591540010439494294300163037956984631345104030850622439133629003742693947306103039388212365415169891060457593841056493189695969473357834719622957378758708037693911369445521308099723143233184862154977100784896891300598792322321086922522571677655267224369421675423522348546144531231260190635880589622424323283849382974244419026934164848610915839297631513047272641543409671331977937214968782288800866209753992980807424874988745458387966795197224166207709816186895607826802883174287410458806525058048762159770366086697465266064098813921143588184435964824819604646396157184059915978209151270274871714582398158412521001787548120895822139523176297171797342741377478929573604879858373062443817332382257204770377723766140057560832655525156206085930513489524642462663240387694546920860549233551597802986521770232340279494559796642113871456553523481889830543131441549052166896594638663651798559433764282582965257484095433263224561161637613633852520283813781310713324764770326864193223800294936447878655761401901800117160916511450442409752418215730399197658118348723598741811306549063006259299606079477773499856405826843681387988262903994150966534734867841241108737326188311079173091510039979871494754226376784121896822272945822892558894776493305756638718067619596822645466797894957669652948451249808444934487895959824717078361065126251089471699487128668176138894356570984904164861701743682037072488928080691702704789215226088208813780380213503502474482944642062827772966585993903603899187319390935961182337643035254091038205379985593121374817968084177062067960164844613843163337561016289540318393124458016342544670171228307193371809144806117105804458631977764347996997409467484482352290973735912985970383287856218017690130737849923994612141340498422145906117736504803006454887923967633345659978295884782682645132479807441653420242144786087104040587141596804673304110039737993166747901476926245094852059648669912719041596199984850305482730907505885442909039560416751597456165221941990053343371877981973829750261698447225522354361276888640147538128748748916575095905587618701759812982197187398254335593943686350400170510982198377721122786247985635288202867631317145291782839359977298183366111349662058024460220971871711199179390526214568507983107564511570040324308726008286094773770223037985748751304240517391716735324458930349794917709175061446588555410200377948605938499434030137278867911331524267861979824845999728004845405916726649518125508357450533088419450624395068743752160562009578811831149615948025308208077582322612428084287378601632884608272570618712375972874994142095415511519711547415885185271029801634394485922079810459654398716640461583498513607437751744957474805771548820034197847738191301781815098998187791405137020009185639907773846242067171700201522430050852180067526098289117742575734786686708257520580600752478629618192777873779938050432639193844276996990603791640377921147731151441589067652140373735544532812388995561520712649112750820093956811062235554128002717023282822798508964284067345052190591562863892342519724928135856866146297346104210221282801764578814603540778068824148357493094401626938228135540871227279146381858940713292663633517524916916747656886307389906419074310756423870862868239491403106069781507849914935204033855805328942816314860102674930390235027534496636756408949308315168509317819390696691643851010979493806825687602680436097461681273111659096680043898800996322591163597493377028174080524350186016757150631105730567488873878227646799216806341210997061012016420583970805615865272777655951500492207690437567970793468227234301323763169007066804799008156641942268559187717463492069150894676082660061801052101127427534959792060042927470260027421480893823721606077289750040664267552547013875029374272993084817787745053033901034475600848261636164568342136950776843320474765037420497751839738482221404495917887694213496082320211423248113825745791693696896900293899024029262487122814497962776106804954076094627738466264895312651189709567447427955151036036773822810992463917529076630085472859087728126851392077733489220994824447498027474514919736573159967792136883398045668004482627520880683659679355749829726354092769906085722677542962126873920064180751533986895397679690309900456684646543329224434463769070580845061413723504232919206101939284128299972877653855292478960222182447707265375230200551169419255621449016240233753647529106462350123849683667257854671501908809852823647650235578800015063713018837262913433822246706293428085724234370443845364870956087519785136061139576345831428383720805478907146381075296898943355684927511017746925971107509722037075513140665943755026704759692708454463876606832857909056824511258581469180258833881418137068418626603895756234234086423461099250559154489143629500806668370175325771412896656120431373910718160697157742469681080078482197878906064558591855120764790484932604300236029530300221224802956025537323640335183515041846182558931972388576233058785065116217812056933825006348629122083433246079618678887476420798235126009383477507572196229982681032467056705765097374352347468681445687610469618299064624281194760822484102860767431232034039468769723129005141028569946457466289216462699440427425813803652620259065237397198342272984073021443151307609104804213946615649295996246832438872960226860338593910782826650670470959211120110127241532960001581041458983642672665636274357592351172259293962826630776404245627617721383674173813436142402603817336660134280229921271455976202391942167349516064162223307782236436229377313182985095618293675009873498371302098253786651097271132003796248849593898534617440380736231948995965876689286782804113544288800909721967506141966205002696761084977149642006787284691983894780117161078015043005035929443472334494717415759867420186884712373608985606595513785217827287707297869454023607611242959262411832651219934664808888128164075498328557073888107984641198051625059523806740800666142348795361036392410322212341886287992754640913385502455001294408761994415277703697509774981495493223027197345775004989479069759422240218387916727598253589918762010955774117973944999218798535682827526736309368914896491109381989996718646559857469655412906075337581234097341515617222902636463274086233892939323775513302931617382558593686915574981803155880961050816966192278735499481459160041747844352366851625021704865865170663170300494731183225874618350870242136685244816025159956872726768015128987892132622775069739380924947872695154170138754818564734390511970978443545290532734481833160768814864468049113352584540762044105758677285896702079651942317208004164523502010171186309011139763167145021240240082026206766172016983316920911410868756365217430208536426656657693321014085176808272443494590784892236899767494813831009038644724799048588645035698664876737280508519050276592621031861916332020977181392837200157411586201243831985597564295612216841759082408186266992045361406698391783080863758503816692787522338787952958602705084137706102701389368313467498893473418094909255841389626273690716663597289171152620531812899593792789827300697346609099568231309472579119732550380832592257258960515960376705850851639460582158025427900619445689022422712545785592082855931951671660484590145640378877452558115374858366882157243800244071586881590593518875446764453521504153587786856933669704021499535097717423736000464333096890315913948465616993694424683796217569528067812509957413136420275938303232367887000937851712559752103851883888542817047543909547587875716512609508047264210158009263568879227708996583510993693735007315440506675932577704313427122074485468468417385715413312712589243441940810273718595440831093366886863920609850339533180610010148935813429581928745805015369533769651816753118132470983947690443978322647602734587403744732788574310445575357098310874025806533966231723039345033224160164068541591549113281126523553072989861206088341946714404935358628018394476121067248108553310038127262060410769338245591550412421858959655825616794720191838974197725366750787120999136428078095711943829655558539355527174285387478841507933435682010683819408615756059915063729933374884589658588090683482977146950489317321519999230288845655870871727178273652647995864732776205974588693801964951867815770860730920295695173098626791483942312491865910742604751147378634114351831710283131868080805431222029103748866863819936846109688729660342980358745813322465435524552678867101568210341870810877193685744636439771726005485511056693732274352338100936808219052652689048675571868627284128391445804286585121881831537180473888875731457629624122861164497964634855740860728185616504205961109797485552388862755207647213391363696884309045395532048379511807316329804391692362915647270819673877451104812510392965778527357674783457195403519141493911168368036814675994475693537255368386026937416775361770386939219670024002818519219061312443168445712383609598823595809380968541525165582139656947638293407269988365271667814599277351004642608854710081125252092686168529413783210333074784012095204361701618131309150863099390515722832309892447594253574335030742127600312107001071253977921488409184592044899989236206812090902089278028546653128302578658386807241624655456274440839839157404926818655906802353410568149246956087548437589045204688164041714836669591022435722786276693748873377530985252071672935892767208794247420227084647896682757671910341509015510553215707069646040349210385313588364218631147425160458416422626302785796755953487962605002557049081173151903013288095164558619929934891433382790116545511760400246711536013472107035180306904346675937274122488589972578613843768178676684767121785070657814303630605795738397598324027055242665115409377564316279317535944342242125525159005952512545297321686250000984542034316158633899639513526194041597073932985268437817274092453887998077463362859798429743443318291728253783509106785626323181159398629761895476897409817100493569294043874195329860160963950274175334258992457810356430919272074271238592795159664084836499307286242377303731665608988658994042666177608239403907737566383723813335232731131198997063201521104824339262143916190973747509839848663963526319033674885051445274893181207044925692670788592949303643026340547309720311322630276391147388869620368014798185120387584251660889530409826278429961762058614204807851650472344966943235412664105653727342306764194245367037974527150605310051327304410269892186274247171786010368206277847026764939515397810015703163958047555456640647177091953247937332163036258419606713966749750844280275557834434928413052246413144243896563508049808719252621340739899967444650168501005915225484797641129678072331016532361932645547612867351811959468206201428974837845962531991320342957394205698145014595159705271331009015741833513080547399644624957023936473566291933270004212643819901042289007776683796830444050747680061654978053445281591458054046213516859528691458458256082968331245123837607064137069482458764096571661443728327292587890032281585673649220227589558746820046088782402491961378233128259560734879113741931021128554009091849483107423134580379616769506749575190099263501500507665101863208582894393849327621735995268412309535477030255406554680053113454492983697495137679347364331415690167853164237629407389623710956018340338356249462728635994123276365010893635757203899287035871020103247073642294580828613964156669185116594347379613805922483053591535578234107419399783044970698037722096499023537481940374388962883854252030197313983521471234214553528313096658643647631318854881033212073602733808677573104431611944858809060397161009010891654489512219682372098143405439640268739661580705609485620059440854629908011099350356474407452220439937382996619056527281938100619383219782369975639558670010077115839272769654554275620385361072247692863386089575223806650305652463274221107598054991200106699779922081057546569432225336976700632672789242160881845897710484656793892246811851433871847893341546014978640246663466450939997750500783916441454936914894633523114410564980840886239962276773480186370667813922176186826299271723343905828571674735347574825295950524156538725430260013738256054671796617150819731995727111964611447022586575044576572933544511052227384228465679485586237584121774506439558954632189516363107405445380971835367477287758515911623706968487198966229318672927302288394615375566810884523184389263461575165667483233637822287298857662160734728840261676148102039045247465068489836995147084395628647774452888800249821270841590883148257205026016001417192897379307265397902404441617556969686896407953523400119895438097411812912140191210187875280295994134681264881798976359915635419208615391721028048112373365521585238309822279229246287079289034302599825795201341681401776306348618704706372145759251960096475040575521970785904318882145667170045844492233806026036092461319457637062480146409262568642634617463516661824462411906422902819775271952196428880880829856382701956946772163673903198417850705229154813577759485713648358807244761564301451222538250293681449012314731510618715890341739608080729633442513692703995361112775177055278312023418403917376067800604092303787375073072801975605106087117313025749948659767289993093076035213149643150164688982011351550106967545452315841976965762687533505533387809944458301253527123084126614671068601439108457736136550840912898191441264204500579239761145355656159646344357708013643942331378195733787517379010626535302681514500659537473254658061315238213432195760719244949113380058284673085492115292829855838420759708192798182579236585139312479173205079641426444117470994982606966228564730967315635392498135295930521993824694619963939067718009700281018805927739994643110399650026314484346948585906206179260955423496990159540602650141972292492339179808446612983752871484405746322644032030802369769191975619200865671143309800584380702879485160925628829971142505600332254457133924400098032897080998507508474817997587353523368583694263239577102969819227042154145837159784066912647112115698686861750992451605813865478839199169288679269076313713708773460621653114893124376225080751226277384253472484094936237881130101503024189216570211498331423066755869498873630082882701079855089788860497664617384163138914153691173592416733913474335301651059289742034961691712465832506206677465747227399425867803710511541917105944317530587177865367729197688419499992828689475161875919852082669291045925822220290674048100641343962648711280904136444416792211546972144473129235863773916325469775081145899016616222761135047680392315542825826779637068137990782126802957215816325957504527836414150031284413278982384257791958209455918313522214919599863256264406691212029789508308405383788752780320693009214618483279584002356325293765334234647799478618156268126198304378552665944676231852709899318382509129107828657941919439886667481657448991393339532863752462321122984772651613784357716355723589440844102824950175710640565611041166839587306031903884154682312479554121008528808452915837399593456561941629326173537302715190773380702099077407634042361843181579739868243312383580795529591371340253117827508301145263938564328167269745344894847255843275183939855441713013412877932169529087293834702534913346469502863183272581277017198438960759808731795853229388925445867004970252367670547146568877167505938419517906074099244223622636399537582759699716827899938944447109430638941353549983802728094537485318230338924125410948920587140842982515056607187586323492623267241389478562418694881584244986215970419047996328980439713643753841971088452694188223911772022000758155731189643268416778147995694818441771349670713347872053393720216926451841987736068447724972592319938583123341493000556952569690804286024950906456760581359258591306242886688143445731294419597676237195504240786865587687483893797420217970548425674649815960072879744574661090995533312830456846702155226764763761431478114327127533958034847574308060899099862710338788655359265196010148429670752443372638902814093152176208651190846019695870285106296305298106711175963586895039261984311757144425473261207193805052826230055567702545791434768000093425049866816203385286316666365247749814601085262244738577530005331175682053431357948727394815392232768050274136112364405750519592789860504133888875230454211296827433565340574307760314926158113465922261682141533419103574914155010832804840170332083800608533835873746015375062824705718242721764660748476557617736135530249805830169490916965813571537659071235610366072110513718573411795068502350564823180324633228750918845124490963073013224975706973076325703621633678478655967882483006185195362074088809824132482764656301064599005310326391950203627873220607166307804405945611956873990401014760183176966718133175223931388233167326674360105335292937030629360600634427162551328708645797195643989492183996911087355561346876217308309915216753283333161364342382717833313276097658351636296543392120037735834446911922832214486581606702879695789164598899647203425107732431386449293665288665359475757068576202670115237992907488177651413280992106063844502703203710244225230427079210275144016414402113630475113977793476242700922135456685584186937384892039960383059287046613075021566917744525868150943057929857219879547294587572825502137663543302448376526776830859966059058568100231617295792509905433697616922860915085526547048688840241927182952107394596800737812399576607560755374577437240674438622311292859041160454270213591871935684143835180857581668211157611679303103555269261368270685282441966392656549268763700082948788076770703872402601168400420666415918135164228812668052569420647251368981294128761972894770252484631882019651668378524301398730395558785458120573925622232403546039890191190886916355210482542377715103724795313801384961580927942396706632254805592522368445164721667033350235844260381410578024116445417823795678792749345164274720058925749964850087285363514198907046044774671403859525776864974507039449241978299363802955285173937441013877164060061318960847103094389281832662276952956056587311715165219308592619979386658905064729282414717653322292815981139789370666400556758935277283665687483102091843474440736114938972813628754891657406839057486389449640091077479708622552034601622922285369661224137005157189593261156748028159761799149065297333271101474833087386359684813428460961628091625935216708628995845043043097777056844516367491805438946264960537270203541682137392473487124186022253640232074425863348576567100349052539075396624697295690776796532124317873040573517043465927708976205678648581667997217654646050197636806508158619066766839944306260205804608557218199233937151691844757175060093393406785938402558633508103811821054023570439764534674974913032716816233764956518948084408805367159468628238209067157921266621598529394086947954524594182819484588895585715028243826163516195906215209966074486448113756225542808170721044139384703230025748282932413070157031240341652311880695181282637851606185739347057541545110367356184908843910622119676502219002477397856119722927767357015326744172531463038014170818518208515607099322790350938509240643404768991407508003818283270247356100749960533332408995125117513022426899762650175872597554155408652654435109497380286737769605958333258012919724600423237193787026593686787916225245826726017669318357140195796898231470779157835783574375432283783410433154032314095415565513573381593482969675066016551545329384465328176795028848100400522497029633785780818350908935655983683061091372988159335245351664132418383870232414761390504151072601952474448196913023448418003128062385332461766472733566659112581745278806769320200053835357647598129613175607104894656547191665785327114998281172266190589211907133419016698811479459160826395666408640929980523003610554792812558350010900150001150629690649969615697546360902471250043940765619554356188949022892874693039992559395109951371789304144057980493771426536691047052056317413964785401044872778193164965307409558325652439316525722143054390169462046250123965425746513703024921050259749499054300895854982233322714332879674129253212066667502383832070818084175410180218419225402912854124813306126941390294655640689302648657672880092618881391676514211687499915892226782920670209107195735123943156082405877037854671191127037750497964882843777357470381605214021991588781509295660085408640459694622796430869138439742547371474608313569879729592821297484890484867156082519087365174805069822018560607896465311409135738410854181087197266855576563993229676135620773683008459881971128038843174748768773610219825678953142434341544434476760345380455836222722803566567053996596429722645304830213444962459123345236372822054364291615749460856125973665750983434779978891361388043267655007453514680108048098216530455120916754646350750941777474610048922590330270358149797133909518979907353025084158953099098181177606481816854645862877862026627560243824508413790535934643832062471984535136087074193344877214034942307875217534303461376591053729387205335826626658913399139544439666370280793420271996433493860110833813819300788387470386102257803877612405739426536002722965556695273840076987930535988686119024596747557776752988468327174816520676802190662938329921853514924906253957778027700857280600250287314967933729357487430614608411325399886425103392916421278278087708620790637843457742547882997939593243726142595582426275878096130535904893518237136136448062705344238813115661998430697158737409591957983965103784386142704191807293130959391338640097226527528084547689640761763100619907153290343177081885806943405290491398855760226431480812306851572564081226813902420138008575909337201672317038148023345067538180387502949949675207383395951658079436916302522558572717753650294562592604565126544781276693160643743282939783687177267386157623618317942432583937355203198333165855975317555663788012456187416120872987782646197219431725755703996106843211042756478453139596472148612767387154352030370473708775375129799802912858279916795002770153267239497463107178497037937453257784180901705871328563787799391897684872697469547872642417192174575756719286261808367401274702614446912125684288753606189314364494701453847834362315714358911185008190308223075093876003299991848042534548099707521174017303073687681453541356644764490949201328416105693393892645767806583040477822744041127330360218267924944826536741299293361588497948171350551149282576590018463697330302483092088261988046580944826222151253047904690050194683494120519056028335728419838697656980020999608455155195083116697222233955563583476071274845501430639808744123787084591772950438770380094897528826217010053197299640736053513475225627163069176609730826795714399567804123177133956421732708438873309200126842527552942237994217959809755353352754926459006483675828492246982484463449397823628835905379408405747351739738516259821743726499636262548366898887748328142804234062191839829170685858504385004884936127600567578488386757019301230476271908814761551111952623706575897187140162293604860408911148028583157389676671113873281452666683207823205369613338020482071474565646074682534415075294207344010143720331130440992016164642716223497355700847913755632885719294225100156351873004528588918496719549509977777945837303853143977202695100589991006088269862406611046387493366634807719956438981627917933003911093706634423257500862814835701545580781626074491399918297328219785075936925384938733413296014100240271383245430514643581741102180684586752192869063999379646483836106801245734809429151543204819490177143835707358439471690612277346317427482289040611707105220474131852573402135752228476739494073557684882387416037482431236961136013564725080712424800754910756315561978877172168731621308439829737430371385423145122143530584171989347457195279574111167766477239481879160834218426499840471491571477503582447850099694342511252767649819729743203043414102351679647509763726877770173229830444191688930390408866928664861770358273267350196096788261707360230762272052223153288130552815181792222141367791448457842093847082648736259733147641107997465029333718711296821413581365376291068539937063874439381351068794355020427018990219570487366956567565877889361245879038243836239114254011565081136812145859308657936845063827860081765481235418005977142259835329558910693752163641369536241025172136036586001232182449455970549886055707486590704075824644973702856530340382991900292672978474049055931233341814459556530448578678127151758802600120800991823842133679200438184515336920551064217973608909942700145833794479621538429098129882020396266626174011231625849437001174441636418512073615169270649723614734681547108883128579756008745479941842791265215669013578627599089399806280709837953251389148808001607572468388718974070916789699922744700756308679403086768929492569359293654546038815430679996275388524068323968400909000501558345453077228980041162350075654342136199665778963084562919854160291561948660456760826125026328731855403968983143383983615416473791331402294884120220405038536697537017167496333810280343671202110026953403816674202495417893171321051684067367342923929207322242956212321573669097561924198459640129948864040332305652505038629182974761817642137868116548469238296112070864313734683693415433061238878398532999995053197151184052698853395017541902278174472861289979980230218393692215102292243730483349369214126247439225326137436934103782247094208667308956455066910348442320089511527367011289800719177781412321288211043506699280869268333581589378832980092286252758413397346580040744924153885521029681085941439051303868076733881107472809177699718214649409233393296947644583063877256410935283820808853619799474622247943407512981576412786860230983375512897956791775299211534999518720267797987377842735984399088719166287437095190368848211518276206145461121175067591642131823682206178715185202349035185709582660604120331240227652725966660291762070968259610898341620836367802836206446411665637281606703563176051724857559678744240809147766646737765791058386614231161435168853404948543077542437631319112373353561775613698435450919617772162660003046028782856075159708892368687326838087611079383548476343842917082577642750896731870839227053506652109221571601290200173046698541223459542437376216152929346419302977964820327479099859289464606570208810255959917979977744550804032073799522400084968963845606433782768569693667611778256491140729891470862641632591373582016244963691140775581381962346669121915490777826871252497363606248848945727374955859246126182880068393643833742016104292878477143256020337614861088631397224277765748279613347058375870500194899534154502377776631945204919596674773132635190661060565285011858859942901876284598979677288411893884547599269738495278371239056498121141003708117347990733805372087928923439309652829278922932177531596580400281454509197571505998010790379668687817340845209738970133249219606848470696672346117352669190435858725436694398543018953385077071227607429950808060390431056350541511230424648048834421029825227768136343036134445248724307503857332352794620216474065744217383672334820724339302156141016754182364965780815515528371323775365848006965917991742437421201414156848800750309665060644998965265466287468447438231787344348775997356193404619511091569224285896352716293471841191710000997098596795127830601843781966027961399042400566370809263957790174066718251025024923030715928923259523154958275840047249946432386342306236599194559575937039594750061460325107122531492606730011318564504354965705882417709165745650721305273088031632753313735664114433386025518297796080711850920571615067791294788314614157708673236188532234461151699835669000051874687120835769844770935088011002016080388442227492000387070654664935480051703695038750345179178155175629332669394020095332332621809617828565831987677200079764661023859323001867400414927854683733598823214638668454883816585898326145068105192340519180312676287760888354682230238503854808094794728111870438259942447522829769086331906006372450042118797177881723960460935407098044296784175598264427491478869082328725515664606189782429758485728283534025097966934946583470308374206816080689683184522118837093787791403940901782037328584220055398958701948206115649950701874089834333234967496307016650262116639684088557689813371713614906570735960469976805841034348117772536384095088557534665967961457991891815009545107718734301935029878511881988588884709375071307419671192648037535128133903343041013635874105802712088827025246194258237910404668885215834794880969551644923961701840835253262292872426952166212790130628001450348893965185529699760879880573006678628555450169895276739577053650250600673924581474217557203593579836270062899014238635822278563636118499300045876422428932619242223602345186139667258460215058684527779660176235490857792206311615856224195515344889266884461744873896173354434229185814231718058978789868073993365549318363689051990025714693449963386524728353451413147806183231428595231930896735301885196556433967807595565857427351070163036896632622046828749057146283896960247748045614015638585035542436442134110156112565687065967463073017669308815162125516081256539814225756366782368057863464885330017422636097353731428571818064849868940977914458711793706209843919539931376155643764788360613667383670469464293873309679033344971088495095012858871906497244262515525138105349846330154724092415792455757988363856759807478233990838830930834755798701271113461774988904143160299167743914512905866111110169703827564259272379827708901339988615881186773822704869709681638995195478145362660004607484101199317105028894823898637454020776821585660570282690600509477613925744898486725555920236107872717082237526505170185655707148229681431767567163383313696109630801112677331175596818285554900668085247439976780148798517619600969277681308751798618364660583681135281135841659313962139088906200115211281781358352440776396790281103950512157941585608500353883289177321147734959880702083733738081008657728038487343195654840472221856125133855785536365719014839063678799463275328478801750231618729772008613979004134313885436147066841128524713043090784833312847915520784714817330126959130374084248013520352609925617641382317495057902691698934865251422758165018419365291679374981589319131458461637617211075698465632263644390163333453584392755286412476373740481848730540130212208254054487662250640139691023327817913210348033464568380920869586202648790561230601256980669646238028534091422682925012940053243357842472710306697791705743149927453227007076385010827220919137691301053632920384282316340411521207942479963117942657961276962975246358646833795654976468465545709746449102713129113218648410586984053034789128317440726711527114353042254262859611482571347803743911112138319242048177531723108260516574441122809683096678350531435707906349932567023703906969772958523001033646934383447633285492014670895522412817947845424389745564728850822025305381220489255345670599166320957904872750715606375263481186565826314631247145495961629555173968706989655788913519592058018430793012803217664125394801281263945924411036712041791866162870632446958062880082968728343482577651159680637543353389053938070261899112103561274055524399720805414418262611451997088333003368501805068230855094009701740733959395974901176325606981073213080234939922573784456631174813181546483259362189481469125259678479384614423564339667472308807470309429252888150981041038168421600399072675595208389171017485982397924830530033449810009210879009624959156842428204573970619815673341852434075968789564241732851092076495473014329862567833857015596121547212662758737328677492692140545522346978416017539909586536078032507223210091164661924316303940037654585056346667694620712281094135233119711024951130592592417754215964338597709006462936656851640347466568239464730500480237002717604658311424125017976702149227627348273793778784175219758285430141022616011564862684003773645731450433070659583032696824652130359441197078186842118194356423477302332776319809104316549315223181426615635681626600459706923848187817880716836039793495430554203257996179172841162860268895873111952021156939895768351265127811614127091748385098634384531577443942644653230488219042223166261444652869942138924744720527039843440215608924989288646862110967819883174901598453936891953692123513936755301044657086064621699236767274882823851237501779665379893868286117728706909424084559237093602475084566510867808417695320195378212701176532256039853689075054007016499113702445328610096564262649551885368902052333670466324122827812827151991375018602629206655885445517267827961145944706265678573847485768478491202685675857694528710076478250474960836695133009700939586280582061989191793739980514078568421060952162062618762253127627210204387000793907357492479009302010121611706654493711734378910367438215442240261222265847146007906405748263420318307937158295049445843510727248693076590109597447762439140365924634704637979348788643601154535367218665378019372550675440881007907226771428594113864089118951287926904108479692600946919399863694974550586708376819079775065827257356429266508932328915195638690547904504376052870142956448476534904062609882264501526528205990896596141341861465134648772959617417982122585279991107333820869417082420091927373266531840281648564966849142141904645123510295095365793295265435161782650105959226274214794978821072491817611530317825858927545779159885080394200681973569283576137389676676684695784993280503599506306721834838309116244497868347358788986109594193533639906450413792177115758379681399666008883224214366487484065183474561808136091844697196874345783656771258638800291229688146264443001671716548185834542132684899427374567491327822024482830673067174374136122997702389235811843131110304529264441903074206721971377562300055632256915323402622262355487516704998537544551741206859587994487226137312320708429022777034457602925186341719441125626071218182350629770214950020872700511643667786971688586515409298887634551703104373592067135707919143446861437886848988121667462414081398633788533642533406138138827480118574287505890015281461310087254417045865510340594873628556789474102843662769923516352854224721563256818228318265668933610419338488366084623151974128641600981959816921034021939224297250634640148465254279983090599851104909764297772832814055365933938101307956534719056379996655412385908319506513198572679643825654303829439590624550567261842347869506758110803074495354913877944007744304211319819633151244786292836416857692072258360677173053836341225677087494487257433172086247995519717606675884348754604780836205888304596537353055216145334378790775399952010129078171277112394510688725930766875775999730975925233792228574660495497877294111878048396447530727877031288959866205481353167990893932280408901350893647085534734626046123830783387799180877755276799962977617227709296733676285792234459740242427146231549361621654702636525911874104934830614463950899944086223101827221886012088611777890982668425668493168654964433764114566159002459172611465609719607958732716321189926880200120030795665245367619931870242281388252967261508788575905683635176684789238115757240443536532111196007404686541762593326560623768364203540322330826882749915460147531213388209057355453580996442942511383264056138440991450741737646514689802177614386502882614945027838570167725693830741395016097989905592165558345994951351966784983407795818746569803524059706070252006634226685484402351954404374874182724715524624321397982513281045028374285940985949855470539368449142882178922162485245637022832272811732285431201980038912025222957153702679042613170537577441815984695478282779186979489011838839385758947195965790966532529638399268234427503374608405934891767424520133135466114470580454834601932841857025733618929157899453088974930162863727236369608460257233709100552279732670537423804768882040421179178645002730691424442634193935547703608928300822472371248377304254599088532190984145988962086651362615754328635324019191065080073020411654771814243794487645367177993246051766268266618860880079300551464970934791074089477963151694747422285180554360721551066429184102931143378154734795995162771282697656246260848518256244311160823298541618444806057878239913157557130516180049714994604421620142150887000187202693954220293951422229769390478553058889509653825294384404457549218558857903905556807440394474511303839844419718402372036269830022066698899883468896431691287349746114256952691398143978594175815516902638134872791610008550853425858938843731777367172839131048104766080412474403185357961751582254209336653363408575897662616081790126321574998972276754876718758145161530752614822830891564266572071710515955190765498915665372307147488961438986201728870536371492172108241633708096720856364257360695800483909719968983941206053765696954907930057517415153887281630665445502337814552843719979511858385545250755103408965354046107508324432825536938671073533320506402951523899984676644248999803938850083439095425218004900430880755676348053571282999958236716800610649264119632457776072520287558834677300186497456691304669607146283670488449164668600581244899367343280904671573761323507580515394718215916263823049363362728529844029691346929869556598035267031426560009874689934966529595118589664464427612057366128361664837740609913443160524809193531554625836236107536565330895750888468629395923350401862540882149846880265252776993116617816299558807025463612079460846166917175576845852173665361584300590236879481600077888288523114525505120037518902013678805791708908506984879326346558588304076018242151811176340073414174081896145163249830004152946852547794547144737068719581451127927740694466814910457651188465440863366162871558574322001130261332863924779530343902896957644821828696662495159298133139984193413175566933773682448562654574385645626117170780990335615588547430879100240624473077955514150615536265015082851052096701772912365982420198773202162843931533874366565575457611234294453622120582459106845591376149782591182729715359806477490525323034562999585554967426495697857151186324624771564890070900135556585433844797617026703305077808616407441983682686454155663272573310123285150044803388636670705152008404736566800668781276472614668119248011738828117310696778883647047479988959611524170826376617010393411677357845437987326763728311981324431078605640161234351455315102631442480983568246814401482491811650173034324368311222275611915607768223365075172882311543161453481314428241144968150848998850099729028823721292626148078815432916826623876050527608490121424405262454177727529721290188363641950654890809211378782482757240062274903773267209884584935338697801859764738404658402726490004595979345389791691287722674294264075996099330337915551193920838849969732090572535097719270594784996033202986706325032278357270106209349764754717614722655401809990674594316238032381763885156034819023335223597510725354601303122753697714257249019514453066251963663944769176685497898584282003839618464129564546154661340620193634197141559629783281811434036103444253781903004707270869402059935346963478469193956516896076233630777189207041503845623219643119439406629671288123684897594428901133755078442551547657921279618450493641309313078924957829700327008900925515302905689583031860969378443501563023104987111877506897686085893440611251514340380861866268567314658414692033660393660596289490039717241662825733576516293344725600338906383726660621270666205565211817516727139278932009126199287890841168544063344446424675793121801503415829244897056517045543514495344995907903414851636090943935110025812858533610337159294167562360363794635055685428822295227970627756076017314694597881288899446584173483357512081072413285395050178337274337906589705184138746897082821918280036905917169441882867039601803635822861823273044652360522433925271487369857158153945925372898101259227279651238809532641679184486519097530255106787603625669652243187964774448549774611786956019965427482062244319476666212429128351971954107905420321791410357503943979689678004174133367195454751072187400560611833518273299185180819680395941819077910516346529497878802744283285064148396063799699729100965289052681276079192889799577013992436374130775199766538195675190662572074887494669507897027732501699525123385559360905278332255900674545230468211978408694124318278706581247900197724331088671886790531038119698570437412755018640928333069864394016937399434780536848760679869200309689594562407982732668361221906099317871219597154451400691390722770084095004302507821872145216134479296038500717526112113228121780022101606969306050532967510287701363958481356503140935548991764313132898626271673711754112107824954929238994075889261879683797390202928331850079587171808693535974892970091445224046357762464524270992648156818757286887993037362832799870535352214968110220476451310008390218792963684211782666778371220676754304666339453718630655823446287131318496806229453152713641156813002062019146950257265081936513445506641518717658438717100214764599873560213563865058021353105329886941505430942883516487869192784207821643655817751199059889906304862907555627673099872445589940640028008162953599343937606493065118888883873590362785626924728672627725981673427976200247119466540183539548919760295635769646594317848396769767009568680800381268411642184428624341506759371592075095526145375228258052258532830072942602861593581642469263488942489741366890534315318100197331351296883245410988680658213403663874039890660093596118231510198475986939053220812194542957363354815760572372111873138654807955422796421158391767288618107654826911532448251271066677682896169567234072399528014138473856910992526752689988653762947940194683496834942173546253306345033521221512281762509412302258230826753362111502291366059497076927053884249152295605439184873661111727392786961883319614855522467321793621758866722617271973839926425408781005007058296937577407143178052224887057037309519466205701743839265048277102875729304336641952161310952462680106163585823713935200856059316106344032744410707378820267370430923084424321653099178384538833815714792173223420212595303515985115507221547480514198978871862090342862942248136185805582026035064329312239630606794571758526442607676381270839192754373659611383486950744358868445403044072717548516420645160477413814384268908773396140179745658837773783686030382215360677795767048178518021280579550853314290338262723954363251927752123817336197295749851730531916448534117811020137268352937799918160147996003487221937474689412642455429703365609995162424268948279271033546553963924180466923722014805909092420800025335760944533473131005508796229585497309437622860282231728252362556965527570666303522059367412601043038167730787506707008673609116574888205422772619027537107549310404343971400404246647491654949382444979971128988039445829255350314040252237087920499520759636632191959388898074316882243555540480241304757187469992805542105498517094924943684329691253309804657445937956705798540361266084211675160667843146303161253692930062977951079092974099807134692065868724881720228806063602605099791491480868149602645078903363094424413614233276943466454821508974800095721194420717972156612678737399053767141257166374672287342879369210326245965200713058974507564095578881060444427354968607625928973672785201671629202521942699319741926021882968787968980841936979193095268267639651378571467787916664038468966598646784385979876107861527616663864979801247897910061783667833196379105863718910512132592578647558977237006465966244345647595653900752501834126111920140596230136562108957258160324859449504937694448986923482821642960826949270557662740562526830278890177950177331570403998752870389230933427570699643607575488448547130234386887698740879098447723303202798700412253616396419559989465766864776961104341385619711119382283603996160773527022675599524959307952709602872679229739959990940781414590425338946416284604204424727294530760487663759462523465817254467769332461434577339509780094595441225920383157075929616408162706706208701634193151591752917903127551720197941537433391889105890965659769018244918839793366412422118748146983300577305850540467253434097740480259001618969263363528155854675624015405987313202777960648073322161377531196310655550318877881963468346152608381286629286110698724999989051968204006863765694303620093639010930923227551657593998742682295425076937621950941538750862065167045864680694683380995617745479213191663622769700316259181216298812465113142305218816813508043229321940571637609463315804115717250978675433067737147130696273902191339018984277251088581709665592072632681925304482936379776057673635727222594677283463804891573097421013100176374661775903590697673698940091189676473555433430211639424816545695236448412847753786884616028122632557162418179393914504404134290926069427535287956781821167061943578553723765844519690247704508591439120962355732351853420535008384982097168918446154728493260560600517782956605318972305685875332663472967370191348514975383625127974380265196591113754831713783686859561528299348833943403975594520498953594634922031159567253357054026429296860310479391748339134791055213316940117268753575743828128462855691612863660050398099998498814564268718792830232961769648883204482149913795118553217973640367569206554828167161374469462734746663246384104341647755323609802942609128577102094586718771320421194926114401688409021711194079923004977975393515528645106968056018564224037080320437124995997651222317197831439616492307966038195549916022548972299896874112126253595317962554089149724881392789555822875943804477437809031274045515502217498792380003275454111472724694672491358823367117977493679068537130362891282309666148423074434327424402401955602779748880449402970996490606914259189780551604841132493771815241569652217792840335357068902896988694529145710726404600653240247214461333446013237148176132471133818863364621053839995646844027573125013863810906958226121126243286051733657207802767554301070474810668730927428498267728857955769293559260637655819788948322462664628348182524254860390235635094138559593564654328191901235187776861117778151763274757128753703898153344930640090405320364391612660203135798641867745415328927863520418167443273246645997710983679300358670656207453726628000424591466734131415734694099103778217811379161493009233302834495643243683039842603811050837262345452622266871772366953109352097875422633588268743736869366406678838911907516068580341136514852762144554434175948778954748693278881447144553514761510614511057733111611847965905449697637849026608829740161155064886764418963658540211239643217595730493658276897255227010760160581132108820634561618324901038685663880760432136920382241415933978462086946917381458675311346618193185513312184159939030550611571907624970531348395133447090911397817013704620488101594433582097793030423102766470284356143598600103918336235180174180323297080941968486670640844732120649115808281483885041694624438780960431233349749294456703670102216096971951920590296939092454567488192303024972083143332201487996325493997515957601340563987427640775200442311162572976376005350975516530931397227083089422520372225007556161270404979649432436000678923302619414317527550561717894343042061947735029604353687587144921115431629665213724220079194824191012946983410484933948009587655280629758354442122554189830267708301765739680814638512712883166962473481918956403355080604205014194514884552264603369541321708727957656194316998194351550633128748192347420902131513150500404577141031685895503788053701901292691605304755760004920036426331386709465785046968476173680828072180668750294251639825072399776449356234706236802321378345367748662083819386690565446802802834199582200524583513245129011347780850557002888958921692294772264617933130654366771718953837199791752290222691853190569285485774321798634629763323844123003644278966818324440388705843828365753924103581322667434461066674779092821193908392428800644902012470065233206007826102914757014611140625708579549462935557693136555747414508126996369434118942688980294505654554296191014747377451419092196145933202246545136076327334448412783455589453025521197797195674278578802702769183234898987423523007847952862190239808344618433310033770504463108918049191456925931932029534006376975385518328552699004471486810659217779100631680849595699523706761825489862626135338717893404170939000304965923700218233859836993001609576868407757527261248329158031381992019392192177227527491200388767582376018029263152140677127221881145585224458635825809002879407816508011244033382628912217995381985451699641900760858090990710252425418672946366756214117064497593951693205575978712155350643735428530507921354661385004787195128308063866555274032360496392269368868806813927197478593292151565590911711546268569842157010740077567087040974236736158077038305801167325538577650854534855420149563579057642524265727363777124862262148515179284588617844270358678569464582817485297301012387947366339508484728729325556486517492124671115989088507792478994151996536715656446815172341073363847509043458817107350999444680377037352086371345266813545406258280999161812923417222214612327797365584289424318923070467722940288572523361108308182896546343252400978787281492051578049008737666667816657578946507409621525051762415748573818191661087969442284691972867472316108043734143374955449678563665483717539926870120009481683677790312282978435983822632735372997002358410233056911229185105618433978823696701953430413203991761899974117298361201434374826855378696049267668417893700677080590389485375443034838796077396643302932664021762531695380560724964582133596204784784070213156561217296059521136190518036255618083143493019256484337950618330550390269417455853821556452218303923653776353595657964504730761250827174358267522812525129720240389036245936900076586835920379207206474865960798174573159826830170700870632574673038440792219243542828287043168737090593587298546188792570013461422292926186108963824764047796623714701169836203225881511371520890818258863978232177879288166768333705099771635424616685891062276164590356493680549743847525502181324159584357645985808284501205916222562767014768579260196261245524288685013640288436788560620687987912538481633436590009007181321941121340190670246693204461212545999474099363177323651324338255945766992829540950729141274032074826263157491935796274996735132718580886008941105542138439841909565773516058374652581943529708837746828496808858577969979136280779920029252776064625316820281647203093715079112583283037735968587515892314232982563686370465742584020042271681855565153588420805172061796799732486299467924332857930142223167695885471199576363847693089193828233649747624717473197691292958586551637308692865108949188953981067557085355520456659785865303554013428273905123654203646651212191983687059433195127583214790002924950384535541028023323498064168847051882659971235432214953489887018335762851888277322341778476010253874553492948152898703138041454019372296096508244864419538150896114215989326172790226425462247761648339700033047641066353422578944920812424297201331397448536659588800076290968808348804831404555357037872422719561193011320691523363544466595571201710021851273462633241835655152478088048113753490916752035481798465230352035048032777239160859638093029617982218675642344834416972899893148345762480206949540909436376555537604321599836795899214849028366582345908413494257359541008080166809525576428662594035180649609180870006257202411835467406826587415775350073306514847672754754496692440435218314218438701518983961097515035696311676916865646817731355741792899700535537683432914591333007858630659732309859353899469743203009001407013459946653518507216791762978352013957488971980865059280978098950281612924588144754629356143343386733429616589882350229618704074690748809222080125249578646495954289840813994191695102339907025213533213256201172617025762570015680775952628444494624534659622615710337656582540659584062280202443368010409487008220889385202898408223332077055900901301712426944661471699209021317222401264747647969477523358914909794808551869707606466388415175418780465973276140632904179642003813017110598942405980609383554575073052612675629013549261953365572165182966639718147910537054931538518412448846161901497429008617786931995107258828584122216754978859954746382158569609118271105069124461440575258734981829980404375509082951268960734525901993085332962617535738273642954781789150458186320091587956617247248629264932903542269117872970376950968257978627908297846187664107411901305657184000276728372039253686790226636097929242723399046244951196610443664600818289311184448540144810062983566958221706987205283999238320047645734090885613568774988225020356160644596298376366151206784930212524379271755942858233499020806135667971263515722320111016596669961515514832838316891394612208721020891822049537474244510594320585434833638718389201283550423966673142812012457076630044133150555950881072432293198459506060160299750984524728829456844603866393075530262116156462982490092598431543123261152405919617203596507729415114631964040629943661600080130190746920828067928711218284702104592955023346322242483979270022755753164283795086043213929261448832973382858346907150067345088334336711201688245328133569477785978739458753030577121691345784030456458306362799695287531188676217834393362204416810024742129228737588356130059909069342884287885963010879909366163440637485095913851591071535652579946121523210164055224677398182492213331898994095323851985620603132521686695372907715995921995597515222126175805689164743573570776813659078409702052636653776903803820461544742559173069218580920010390761513837349860985997091331420167754617194606290834073892009795105642333598921371930285664124692765366090787162459968227570856824711771452657699220229291886051108979045343935269483477830966518820969525948562286263879247761137192323460304828449027771252692318317928830949130829342635064517684225695618199580443156603361886039067577280565074677688916434953644024054149845756559137390522943164314778058223148747710283327683461416930012189771057237517061972310776883860177146553220777937085725520993092335558026894359579968607093839784666451163043992096079001531818879074801095142645643474045706201327562312200980491362748569523945231877870021941654203470393950738713348387039319887208558189555688974472624561346392252124390352391475024090023165315489373787249016769590524146879591577754314015752031647099540211266906735146284304568359591512839927941403390228674735207380101311029067753629193620519614726468942176142700479706699725467715325141436174307744839232619408561561503573715750286118514540497795215029550065370975168577927106146246158829514464976432410765655336507993863032092531004527831747009314387363982480666775647497620154941343922975759235711283763251732823807220112697197599299085291051778603610226013850350212279592839509555301729838252087309492392730022238832105014805460129704647232067189848081859190763076472511488740678399866870716774294795019230309265613478783938983220737048177843762950681522978218622930708520805460447716907596185520458007379235310907556647475303149101065537677684626449648956627055520470331621965432035079217110862243240092492650720217150647659785361412750162890641841491678527491882979517329191411021883083755594916926069598288124904400737212954137669536266246406222925543686912700889852835954999617676152381006194917555203425418076585094892123252285593031629707576889019418818182147539931249809527617854452994884473664851567795872932069379140762347149484144402719153166940785075213905473275604855450050372821371136778124175798062827374007395749482904904852093739131873570550042764692701156780941217547137900536435982908433346775785793406701368151851489977408141232363661990580696987149031920687329002509898266051247800196032437677489601221105115977773353270938257016191663110932835002344921309421257134258381603842672336729285483517223641172542367817779490951562687759690255172718184216026174923044953907757454604231996455442014597457861710533249682903896370942039205223026157757236599738215770662288358636480128819386220935144026703638808732215746018202643958063175940582906107151480868930455795057207623654964624083225822220030029036948930494182235674131418833923842508093370215699558303825409209522259470926251718535485966881942056105607714244442552824694615167161504650324776603001512273206683609581640873048250292078415082529308478017053883559476515173765047975420472755868984835673034105908212245116756737809631088493627886978003097635781004469881803318750230654764418061035266002710291738270203709993079097156120778360536593006409009485700661362080719902878016080602091866090831488860793284387677988866529202966829894358076522414505020555486036880689218731264181932726687848564265295356110713558396645080220215740314333618887304352861465677298294036033179388011712284272956484014740925767176811444490012711925173998654081754316794754591067078020174025631127165467677773914944489196840433527727276050914181802231410896464550716332446290614541596977180129991395729231234401400315284015426634606018906515288685848001766611233548036599987739064552432031876282378848374429961188016764257514395753658388375852517558561221101150105597357712824498775186459168790201102445359204727343478710471604112598960315160142501261486684650188116522419660331584891426384903532626747595680038640522770801605343368017092332634290337154994714535033256523771173334964351831117962754018409216566095900645027773574445940518028525204920262982597605659672039701404361724107224805833182212172834965291050224692696754655917546208810328576728298782262795689704643299531993247908135476990491017247751310298609266050028056622287121819629846477178803818835455992219865337744688047761127602018640353098890317462832120173371784069011122184635156938084924341876084159314151743453905968164955169493779624553597454794490667004267223342754180097292831585217987900541692820310764380754472798787885573906373231017360604719349491690782255296702725042443463017112130253617233051284157840174900841590244865967250555301887541722484409505312489255316590973821730689963787792564854585276243833314212891352308152857603056034301478966833984097502299387689493627263651685711270686742365897764765997922073146007571831139613137370319691977632152403577860511871299093263202307763645158522679845363427304864802206593355861678400232097220545790107136392114158775077284804763644634004551158816588670584854830296338259016909648646303033115703069987395568610439240953671824100450769471260497493028668562195968069767223505133241072183973782009715414349416060427309449000679080750097408595474916592537833449275885750371993516066308884355828731791144616678831186720778473564764965582557035857810101317527099856281533881205278104020142928065597805666034636119687170547888268248723856124351647838942476253140106153424868124978194309167308565454296517955721790565000794976127854655833648090909483159347701649193772482477404390882482522108994686446892577005154420367261941093473337675015311632809433998412928511034085691861642385626822720141218089582983446505779957631132971739166723567800597450896917518094758181900859767977534113837287110509161020694071227800672073774642264688507059070258390891216418983893329947688862031764090812769081250943348882867004771262871026074770700272287967090684073753118731329023983525315721687881377736321656138190446149386627643050192989746870509692235780501988987131890706718414839151496476424323330710653402142716283909428247685948760074526201898060624967204459622860601110989553376866878592727075293422436591548884637507936678247377436598525913340522851220077644960057772630885499146736829702380281576832671326810664487682473134559126374521938740977282326993564707393943438608636082446241221587843010970085112873033223819303533565389239305505710626269467160181167068898511619189255112442200556738196574504276075878448845587322458310888103026072770741496350864346182421367942671416677179973431367880357197846703840173626330797854289514139439562562936869511191379899395356887197377025135798786092052422745995647129440389007980470304807584040276642180012720353956871830248112476148604170248362496466441875638887001635356558389098976781893929590387284994615354829295913701098595913657224065989906903308057308658325485743157120984819954941094386788168894076360031829313972149768933668686264932360100205282229101063021126208941994298099183678501211514032378938148061759570332731382413410655498345149764755373776290366625243488933829461313693390891758842808159127995408789619088801752191224640802918656089436430842341745813946270082647811757096485914487279663729400536930368812788118666430206486584898000815225044255471114409512172602631992003644540993368951082566154347221221542489896539331921884013445942596489506271118818135891785727452871537247564677838111451930302547162193223578169704138013892207094110790811959155384742116329602850145115004657463214024547725155533856418681712881536285574523092204694585110350718903628588766478572996392079444762220313313169124780346234695532619792254172699321250053878404649396658307965332325210078037364360653962775606177379130407243908142212533407917599809363408671909753633152031603575879549129827472435105540370326907770009559138098222964396049161715996065356997504295904804576658596939983538847911112469783712367538634924155461917438328546272254968535858729353133397275863422885069790458774887006905647956118392586511348959822580261163178878797150085627416789721657820800711417695256651828393941226299296693045271069897348734299899728211192774596723778180443028304330365478486279571104244935415527245385533781876260663517443048219250191853784070759037417462225044093925975178795626863794023269199318051002551518510707685261551557049897155782220310339879700891097159574081535321652220901685056695178898069919646136910584255500761690463051739370621553919472652967800262192792210775711206305603817895326207367556450277040694178251110929238317006672690937801763856496428442091336923054125929212845058194638898049480275833695741206231129024507708579351516087137526280520685011328246139321434808639236825792490332763476260130533232490753475553896041974476326050457324058875568738710586397756012034173002292049816687470174340306826199684932744244443293730871822497607631016026410201489334364708044471395081904598487612162737907291035112447319934164212621801695105818276384962325992562036078672398215826538033644228731142008624484458937051911628258884193357525040276787885238598668912377647944803178696492655504708978530494750378722007124756478892724204023835337823018560855761186345903682166198492129090089464541949372300535932345283230089370977791305431470524882817953635811438607124458293091260456066250556286659509383419335498786954842135751866016952794946159806215154212846614593605161074808297340458959196175222484725781514583486484009010976850575330440774913062701523054561005893596515796009992583749180822300894074977552197535975794214456867896383452542356722676267082139834252465948284182306315750672858113078426223934283969010791396084233362585003845796744055996059829389214877160063392646787835706536508512632788988200947114957624728286598388947866201750031932474197665283977691268508109797473540609238952474976374933356507927702312453208325497145303099098234463030345710428403587073811990728192819782374890001325189887056441536772221336644380399861741802139681186553062841484030113105528054580246704319768344907169304923032357859058365195329234589703435105963993521636874415620754990083412143398463717625900103920352921141270438654932656458414585741767092120118429976285775066751229497392785016551567889324201374234988940005174341184128788376393157658832534450253320583131939144676970235755451950192571327291414047015096535491867172590756034910507344350151595873751019129508703835304811251043004486200454496407327899328015066930669157178462608743705683629233065762461340182952758267735217003982499224314236313788669645222625401233719728078398203384184704860243144824428237876472709933708368547095557218581040857938014910936095005817856569259397332118879819174857907953466730498330927942226231777042319025530309087141533601987150703705656459006291690861873879048360005864197609622439184850307600874040450176416912174721568787554826624561429685407599159844403464185665858182694191630775980000948079872901713103468754845662117191195977145214007677678666688022492962903093392441648748213994242045029915014599347628479222032852323230335714153515784643590924974633045805440802164667372755743335611414363605178294752498718678603502093179263174569800595382570301256788578713367386656634074135212323164229916977013388088787303266785296165617825725335465911449182744888554003714763153445823133065438476747604372038951016673974031310928435912188276431935090611605320865767590979500652704748748411397336847977377979328025596439081988157385321762119591373634839227514528430200780162121511435845751190431003112557600970203695650882622224564997498879758307818865942612954070879490679298965636432566136680897631850655168998795929215466646293321208354217976331679845476814469186721869645080636210957210063696427845819209851002618012691045468848222908515798628151788551914508348009812544316993055001154383396711057960528660035733739294043790159832561528467031290802324733088454599108026139807356205525020003263927729048332983911405062939161675641671316221754799867451832848463527023306240746834558297947418492475093401640590230203181011676954164433388797701936590050147020429243762967360325068142364991462951684605314902842772095425234869653656858018510986758514896533732029239169399273204952300347282198366489025315308118683624242346861447291192366279987208700133059186875373169486404090250794731252580576816302617382073007783530328006594824658808200091173037449894025083063599661310369561608862988871546232526150027517714046868054228196279015843117892268531152582079433698786356280177587476999671712285396874460294085322969499261406054104168793945921682470420341005483582721301619462167271408755875990299411110327728610656239711876628755239926200493744371005182034177438383155525133702666250477895104295765368470288841970192788087382995248457086087524872001357687922095219720127239362821409201962435714872125553036534802706442934079741369308367568097031673702383883681656082444382567757896369375168449173262572230006820081443900801541695991659023916793157780482933236538397650357233535429095796583678244360601433103098905866839452282510115321252511392390672479902305062948913075355849535610909652837164106493799194479716632003649765859873557216646542313783190913605095058551453352248809026045128147549613361599216098127450417988312828186011013723769638647939808171604147158611222112454664581299191272619533784836503175106172534700374468219814228438376802361133911752274122252521457327284908326975208490527630990906507442152900326606731025479609343642777347013540087933280807795495995910751365207876557460392065343031081811763480301135498901955299956680784552734674020845293252344045130934684334792096681571142839839528569189247111300792174837577527458103135533482192066400386634607556953195042423086609451362285905626587763178328823912396705742588898079310278592649120305604329614273562825951591398438926104579384106792199697803037878154697045176631186821474220525659494387015107865839464629259726524252575571273210762801504279483248314807779812915818344137546008304694692810173416283787903377748853272711130391427605603786236564785268712486532051170655118055243582802494968919726410542912468961901545232003957548014359088864012839823300575740702470863926518517338239861744854565886687417900797136207533766603710786063860217415429024476929053176231832472844635184078747935281382046991508204581487588109669375595288143461587027882837271876572914485848235393202490697022086105988429333889389335397946355271846191418839703139213763405683986622364671709792576141835438882557383714005974814281926772231495000138290594066666924779483881087888102138794569183883501670754543288671781260733190753740106774671797324401378136879095054529225829572209723358270070531111196971246676968049448130482387860526328540961798346417506889226994634719278411818017073418435620938097495697506126766361035982302265643045488153077356229888049803044008723551349581635808080256370083862464603311855892993252402550358486628605881793664153029550266654747398057990004553394410089854512088719848592259684685402529325714862026560100176958665614673034827017321385238401307161948256351540799285073797889552197305022153124248880198228140749700702373187848833666893549186754672843779851287335927102608291289495764528718226053998052641297047011562800475930272802058942903792189285132446943826521054798959598951512849330135461454994678072074825798598304948279831752166355251849122556617494841383428489404049228117338235608952363588551816169996027613468458079949404919317430473775967266589486826396632964643721280187978982237608188893729156882923210106489440947862715752048968862258585247619700626671082906870453723684318520120443393661164770947753266130562952352795180662468665319871501898290946981553406884348106542127199678163973664360530866217117003928452043309062937496320318611189404874438659427082788914780388624433458155811649843623842338078311807475007685761043876839629228051740902628072780006386464500841795887546238453391243965936471957068683451249029174006894680924355453385003572318028771293450297901211197801341301376724728703091580092812160959858779687464346818125689203066610578612941318040466721875503062248585161687598683655222464660382358158316419046202848014482542310857895517545076945787226234685583515490765256693741378080796447212588906355714305609755741341880980852257234103114696197955392057670355291435466455982463531680803302790443595850375979930125863729727275298678840904919159790784439325294782161773652059307898316564024477185555838502753894513426917074828465611847686558701632754129754572625161941346764442169880664620236262563014690542678655872982175842648315101137279711107835016849380453962493446272686679032857575542921158654528830203147057486989763444440503401051531158789477270970540207552225966837553421641143313672685067884321081946258996269949139307553178202157451178076531520814799755158715343108754855365946087868301826557163755021174751359309229053952384726837390723802695960443679131264623458473420875602094611903235145513239858621240465788442769656934963443880477155386874844464847846755451142114499004569243198341211075761821525102712701370899851237933249322868501046386610527052318271914573561131873938066563949915929180173831007799174277628500376660089306065084805621684574261199951884743453588372489981931489059721211673769169941230795387173320032027185015802756176485341130820244286416276482769772980050955681199876215094816445540341836100107915847878014982532101369742533455515280628194269427874108927452955332134061852429713785217955340387330361803762167691229636589616430988196230525271902470701973528637046429942399884190734322079501192742401025352941413809616301227764065806971503045164514660685842250666486020506715709509206117413725229869075540267968094389851925243388649585248265082605986846117711571498193608427878633182976962508714532458197975822875769737213563137060590417299185891147209915260469516744208991248723861712109769223113925616730154854245927702017430119201918051376717912973372374455763060034722949423833612239532387074248689980375159974758532516918783768625600173747682116569345789639669884600000884740095914728506838280988128706674520619760734865805037718537592591448971556002867176853580708219805093350125229665600983685828854842435952648723232973385121608497118288971096710036177654099724757897407400372638962852808486505147731969052915379230078945391938447348018209969124423183934102077800219904839472720712872039809625737072609568489079413838928440006956630493593915861575579636069197135234282010281082286368317972413570287021969443011296784591550434923647493041662381493658438848565597222388234205049906002524498115368149561375147383692560093938995502770231148138432856265777404712171290615420111847801937908356975690249973359509680208113633451531918128604767162894380239318089320375172541796167304101444589082596347243164511221804124808487102442670995066047022898795989006380177681863138760078753123562552022442018627102714414805859601920627239727903423564346612619508383228185363303042228327626661035906685357392061013210649763594161589030818337207403736403559203866748169367844592056917963670936586779245840949644645733520149163419122246849020777893788204455334572737058991306442597448281636169337443534767798923321558642733260886359348570953801810432398649323011982606128152377985349715227410397151766370564071336047792686483207815044032476686096514469401947696386939833774228763358649268793345720034090803450596043129760877474792008238707078888525790138896581073424739457130034685925611485023238797510572128958755257853110402423193780268136155384755956321354536336050715494432208393332670183046201429718695874031184208244011387294637331483171123251937659432244708405303770019555294182174763130488179225057791826039318278210260551848494406091381955827736720186800256616022293948291382043462264600193122004475525803679699189835994843132034183427629962961015176247647853076869732743021419835142404726960503140535388410951652378817825064138915679809147521364790095929400244578275723851313074965850942777548763881641234466068011560679186977075820522811524658282381831036031486151016948091837774091722957239675114674704334852064770445169118811892254144613528258639801641426731556459204983570337523123255003420187046777840133621705238386388904979294040996142704355454959358512409239589456693107201003124466700270989397847341733099811817016502469343509676277604357158906881028375270944096692957085130418571004746486538138978805814672016968252267753742326306716209102553375950241512917528080490262467078036098409052915811556120561225173733616005161015637810936000803339369810104758134746826324981417380519883446485834512731206051996719861223347879914398707345567895142803480779749812737665339749748248557245147098105185728354902491818593960037262932291120656891542462497614671105481680523944438626525158938043209929825858771051791633213088484735613165498861961425192804501363033260991761119382963971546154608705970168801930987358182525832190361539290726512832626081444763920317584476052447620551430127724357645241678104673659978994675073726648563535169809936984742662744922888087982177393680698811684639459464856028973944266622457105295710994862524210887566676845104492097171554705640692434116833360722579894902039755645944816590442903704027975779186361503085256124408927548171724848621805054612191556873604784111414729764237208458996903035476426726205064280900773863339712373486231847163791399036399428459633895004480651317895546455374064094670301557391595086788140826867298433249892100636546021414422046164074052369983228853279347026996294234984751443111455787772167661201305101791233102032061267584774997664613105344231112161122657465000579208423877383092650934694505643201642255173544834407210652133130251921354358794895142741735350190396755900670865363259494782269274325615647009751095840303162854824062666499257551113475863836209767045431290497825426525499746741615613886908628577224545720895524302211715380068404584103923469164478627991909011832269600586486040450363595130190040188161034787896326501978651884476982243276395531492724201638789134799079677460260917976518554556466306487533213331503968198669298436790154445877598376457919476758698789767325652314586033595400654758193561992965013188709637010075067293179061494208299764216498784557814044081038091550733051147337879713110864954820299014377749571388184822042661129943741794288704992398545321797809167854286099625636252493065089464979875588248203889104156293200406774911971402811979784248057886810746340580832192883027001261230210149281850051855913248773542194562372055460972382718368899804784907132160081151660766916504901727790035591335650902762167469698836482186684596893616304542094357523579665440173857079314226388675485698861258044130927603862952412357280479380595602943491739332204179490570134229632889135213815478568432239146938631470451487177781638693734274086917283812072512036959203727578960942027230277874441435085921073215120119983651793018718301815705994626952565262168632698576838742884013173887678297475607608412273899272484314086686719895934370790587701952568064627170592611317834214938287304438620838435164530497912988875699825125000021083049305535956946684303466332748472131877042626288748712917510313442708461079668434599361752587962354850592070897027706589965775758849635479975924948727658510571208694113353730245542377101625754229494169565811536427277171060918885574074053035695379156105886783469603100597730943209842772855848799660689955491171750372271779031619262872442590924965938235305181305929983417945820186317873698459111539151056237782420269705148864065741208225739761060826115610720868491511665281813311259179489005811771644433524932356596464212036447138152423469892254483707275553046794167265579026508028965121488777984232366665219696070772477655384590624636430256067826381193476602877566291361477178716058745865983429584010690741513830277622212044926903484877929541252957859945510143252646022010092283576460847184242345567915786309626658969413154854584563129496296657413026907653748776210067222808475869112642512322234549776423309910140053034120798834691228381199490522591551008268513865608238660489660005924134001262314794391026100794463182446367712015610675049759757092030389388654445678779492884620180792920092274446408951836541946661749402921407219009166543663445309717799633631497454986713183328077433803396573434973782279646680843284453746449981999336848967824747849095745717559815828573133013983318158228424496518698404685575863694641422993811362192068633004100897929568070599613255679589182917101447337782859553475685473482738005949280131409334802503808599959608110162186889228214832113200299941350994966187063867096995930412854435763336306430639985081449558431539853426235034644092123850106796781877641132338801393881804314363168943297748721251716881173743428660372056353242416798984981418691805958415778126032772839964237939035112082430651115146754293913397923719787191914322861928567517724396701405266280976096041947505015196285566295516869932122358945984123742982162003174532923402501336037056437160435983855236390653647516432490385079969241510693330797133909457651195303119906811092593271169220795084751767316526069706233437248059446079028416222204075658336730488081571015361318700794773095040698094629771513574182975390729577825223628619389093543507885713370939531229940501525293128164969909825606353033779478692220299628607928616581843919522021028145083158796077475656720323964057175990329696907977971139369219911024370528017458617427402163515999480065454075316868411257051191304197016831365612144498616162321329433455931468432618250926746918485175339090616183343725286092372541846860663343703131510894856471409071644970179364329770262251684076044309150402322927203400058600436052708320533706834489271568181980684033271112721802820719927850323199796180262542866838102945270775328069407291514815439516097497045044452606243116356486699347664033512618319823555967596091778132733075292608876571600990230820829590770943913850444443631733209221767857007887796840203561787950644869017062239837022630841365424902982483470476415280368510425230752594067686495655240442063873434470759104223866936537056641773991012800988676939246849768865017269418654115645801471183300421480189315539710381119632533101349912968707394826916041838965634044901911811622616038093470134466686711627981368494913037617910378965940122453143936326520978081724677583058405388888585552529411429530202850155095166299470293178364719448015183040263135679347051516518503967065073496768052094894315554192635617476496968849316295606811811070438898213095523442316580003607679945367695381853626405766543392718936384309514970671068047009561632713409322762760096761182516452126016905465259628628522623163657534095053173636221676326200316207423589241014121104461010786130115900321444127942389123778231746386402188247625657328896552348835249461202655662045929752572363454567348994520385340730536796507261819683309554666803394001069147483503165441288067302013761396729867741970250536315366823964726725654709318784631741359938785632057272597046184750869174277734156064320663490972736605777935360805442892437576258155523663837859130717925469463793817957884607686008957255850576963727944974216242260939809945838309729882510569247531569749900086380734568980588095393513587592812272612312959440282068395245947476256012964215610459645664856366525317067171814070768951646217102310281458701529984504328707921023727632611279464064243942336748194955687241308684638439392284426041545218162511064994600746259808988461050242005029636105572062427553192326915898229380593228292250997128179070019688204106223954708353089715224550059647073361744172143607915016236319174162761583661346500536947551617152360370895598973153756989123509963153284446541756193690568806552373777808497596777184787246415954845110800117132534275742188714688277111998963153460948517383057582957813088964829801193959992327170396624751853688974224071551150678923546129193909554978899244670206778646916824346900352667722084287965440571320840810077328956794115343322583801258814847508160406954092553392025089622142571485604372450183862061455908138386665203016965546565565553112723328659636396523820890795272346816872923615890678751418186880602318420151324366632671613343471776544655859279692208390420099137327300310295381215744713459607079947218976394093805030872026245709351670429276045614645841593736909524329799863095659563897676410413433196690194459050012580508331491755652912792554363832045636305769920782004755522046964535272108103673590547727536066756112830937388189981529257734833258343922095401725310232828512673817171172906291480663056981729522548546501573049314866190548926883332953347504130281886080481349201733389836237137928870046577304797674553449441884418364347018853164770852412557245649146840549650571404201360487568372497124059805305557889033949146133641077093247359073162526555707040003756375379960574313929906274951218562890810908492402369872427783177163069069095730949163143789802738032078156783485983871130407536689812725675637164685034630009162881991127600058267475666193963047727021618861495197914396493647255438742393043545096351440674099705577744636342529550952365209581163535659817528481025776346660641508690410188280298162856366910599650579402475597517818901154482758065099410651527081703988342333991396362357762666937848865524924887976832670575671149084055022701399346653130708109769806509892208979698063015654493729802876797628572436601400999295776715716314355489704149022229794739518208854741262474076518630015344858421301134735503811611670338442597035326930955034268677504753099398315123852196488232772905012285656807763059318638860404359741308396879816316712314816177801666567032782179009895430447408319033434392255489796441915337472301805134358282890236031563067503377945586930493326932108490218018418790051848774681079793160998111093929784610367345570009414668832446420475621260967951579236295484011112224624569848378592655415465728065080875367334227563854320098888789604705162642618246137340099159103406862185514886328777168724808025390202263320736413894616122651965129470002252645476630953914309768824712386445310457418603373335385833195345341358511005571572304356356653011000562119589757462529812615895731369816170979651954825194796169955105745851530950830786341311798112021024752293456901891938470211630755186353454456861311906227819552775771463698575833336493016829051084700736781778707596440252422706807722335325914992732941937013283814226841731570518500489891163675617685643734518924189984355008884628088289739699312863969327393863751468838355899547020603641420770266005976960083791409651712158321332651707090786797035568271736592715469294576691535545414201675910831369913725287505675751644958569657615545287362663512511344093017263152044552456166186841516366723010006519689284073323608007523269575646850946252135763098782923565869720127466262730320309346170055290646662611321714443766220017364888218868547558718797670858801474452594048117828173931055258214687719985821488605483616197696385716911743030092891455714106228002402362348248047457510723915705187495564465989296402961655948499677093912664242566228450150871588276237406323287465970463022455836080796954539188556687484701722106800710078664063312164121799791213681049307212649950573279199065396338796067859138801704602811411688800325500007606903011341594064071501395246635698678048006121783249608432869239553279099801342936684018093733087466998502385344603992911261446091755546856138025042978228843203158161826835224479894581033661190086314146658876206219423123100926651483698566131750305488723884352541899257382822797799964605706589773153351685103992131952631449956927462070430743585483465300824439035831854361134143816733451865732233643841096824089519143685593371861518006972094345571077543044175225410416819997879296575292233529032113185507350266113703530284416873181956772260314064562646657762135646790278673223191398343985733201750396113383510921728466296674747309497747249922035051665914501788727302041312785121765375513831593935662018292840385689792961800861741688169669558166888969266346584651381184342490508073895085112758284058348208124474385201494603377719200695863489079722687618911573740672995206158132788780044396161425180241429918798062108016037118967422841402824091924540475708491360569929300891093344621376140187102238278030639987100912693749024148221560911911153531720375771848988527624856804121313297134162048134063529710210547683274328905457068279525496490598719968403468632725676882328430010299917968568102374119243862024866118415662277143040625657993410226339165779690774140478349839269499787868132292012798915638493718526526228297559310082926705854930263529411016844665700109625827831132455055965300603797046888394040726024303308828885987254885937511274504841170876309418093579442920987881867134843402783066636672565777843885489052164418512139757518527982721237590966642461022014640529359028099718646672036398485561947825563160835782760204423872483019228763749943086953262378471745823025712517852787735543223543881012329069664110375099529389384033480476949554324368348770433207454021116951470321184709195189374130509183659123823788830344956587731268336640516370280256650849979007687816290858413960829297677823054866425115403687594790218688356807135999033157745296470751195248891647376845792929941710465064116168016420383031222396655173110879219617712934443537808581371008085791526132903823784685884927244636899688914285105852337649078983017276534819112862489174798415162286364023319872314570754698905810598129969459172895383914790162952780307300439282395121784736997393295228818885534647131343103436361799590265328991590201683890897407096947124378615319758973128581662169128643380214144554975205170209525860042043617617521019105379989627760687865565897547201810291086991778822284981811664971578380108106047082478715236537873103494954365840003866181176627391215717618570686853998107888525628204198616552271823984388425575153262681128756095990586050452433759964857033776372482418602022094843671752219763875602688682570671588076326101447691165604388868147806936852511813538575102576779235050663025176384156198164627338547513630282552472361279537543330148259837409968028143630367147586773074931323836042958144313799735389289427910761046777255470758117033709240208532300732042616571901631025037075128980261130073046079239458626667266009627006109727502642802470342453089607192111254022063655582609091512012281455858755551277773003778921488917114108015251281659754244477713381118413860693569022496118143218337293350933644871647203012585677137325650518227232095034844299022867770065493328109261137420103235334666016388084689470788569237551479703360959967099153337844207595587332780105607592887250586868652173339764652438650823892094214522874776440054496142693898919624424261805184714460765356388265302802312831663440119294904455168128498008589119771805503283683186913647133089980505748581550848867615056490247863216638210041255390097476932485810287590739238683209945648218876329498720935996642784932398325422750929597406973455436336787690912712918878445799875716977061928431931493118223582851487189746228226859019068861731825352066529656150993843262213408329455461755127308676911641644807170877088589353915385766928634036033417898674690459442391839576857925635810026324718151359008107993531552780101184414886861580954905033011935431854378275467406546108836043034609613360643815597656556686193718695744674353436714567775452673501102257559597105067703167802199811367215655385886659330122250593574948955844266413024933257252291432508424908091097324652883052686894341466493633630254428665517853600990677096582733159507482056805396697331548658495303442735687442759651399465917487579364937839080732963290487081072000873363919689311771018849222851090471385003000123944483034200944534149317606816406531981931974920351073240417894985403642687256966080890728502021505894202921046830156553045025415007029663711865015885751923564960808766805209914886857854490450926956001906402537264981444404538157877302058966407572271754729112374640104631337050345300048348890392560765150550503289268345818645483191843662763582078747093380369194678909800462803051646281999810467503379506339856098945543326147241073331591958540161993343671376511946149018992721507951459268349141817973387291153140670722202304945952086738723796011572334935465414988399199930061579242552465533554389465221790075804397926604377159275735495931729023582469483338476326230345737901328686966475061211403605039250551234077134856681043445498459081390842688104228557496812943150401130633809074499915617224282114120536815952793035846541467891210540519010517833164800460549195337119688344976219806261553193431761770876541167661645212870760475490741521453272660816037442736942797652605894180010754869274202341293408731669777048013732796025189821460696243121349349621387122478631221772665490796982124248122167185035833223696401122583701570244772220589932718775513361555208846342827415189098276901241952622943834837519418127705535469447719107541196190454908390970397912983017441233439483417658036307081316208062306959782129214253308359455724696147222930339585572528999860775413625396276110687281171486393127311898454571034456755725142067027147469194586449199918847098516053916496163511273177838925345158978034271169669593797381057752339509661183671562576567453899999791702155694623192196971940552858621394144915977575312982862644745851499858585516598020547304775901673983992810302800686130820088296790456022457584475383245409914796937104079354424531762885793995559149202765359555533639249956621420179961575387020587108178810440962316711115817548449999802965412244183859793625388010117311581743182765462318583663549391588959061294478748573807421778792186471950246453978975189086440065792933404830776276901220903096288355794046522330104992832403591357711189358786720338093618581034038679015767546719676378728653447112912556302011194927541425190759133162316394476044825144450807302990915668283194408009658884022229122273717236387794258208774836060664510075084988766832069852609229805559076903558323206401027747392135692613777417620269845558519880403610618757825359270910974520899310510530089493865082982378098277896736327466097714092337139206829686413966006322659686999735858337547556911011463619456712494203546560021729887671916769921625862807263538669028907426936368477478975427088614365974514859117042853051558914970611951428742770751435716507027152663739487636468874987335227535498545583913024192568411871703346335470916707278550772890374377376283454055172066494588150167583174811181005223523780189462390474368699880690973356203404230579948742804835773988812111280379926005808176135533315063369778020729770440902989512368739924877418331593268595106365882966792425114148930088601894689021963120898835300467088938415294643407750564089313261003216974018186098155961394459962147996638924359497488692172707013300453816336412239040461155872307785781108240644500495958848582424963892144411001365245158161628306144009348810252573473232160738667008241527592174280040646805356276326801848628074010211660083676106387884206672518497241442651593246761825764943169624324675103367761327076059795195825666335536093813266898187723921099510439001633833375866496534633925093859877599208925032999250510598845050206500878230064183481382326567215576110262828795522669114153284337741152152627147848164942349070170990542470702377610754063016508934843173308401130905339145443859979839495197843501745593956576589387084178068928720628830845712384095500535890827418897852620980282517174696425242079223030821840016207357616729390281304213619058407790577873548991679156957661717641122470678833573895680231626300108064674932084816492258878322705552334763116372751693788517297436928780974019091983094586333122512590704139364542299521256973928411818017928440826783066850030164065658882576184332626925400575160558938224997760873226408672595130061509864638071673324364127938612090735376933236228988832289830395904791981160910977923432878568887353051128590485501812308876565505609370824141710032626384477981226320256343110363308676867031823167434546395542947112895827658388779495339131824986232656035897834393599037465489563315491696289957784777541632905657300011339727142006390429291753098971424184513244014956259515053575789393310638054894079115106415022685275581406819625815381547156772921711848496522113569809016878158378560838846134650756095415543899524614719981222695963892245939089880148363513338035401118239524061779962475196426108176476069915006029352823496933058916085128273532788036199185868351663127041785331023898975074307346817025761732269020612814081850452267676150508171961429337428547395825335119986605854489198027682676358457579882835990561778323803581781250770614096492179724689606665320925798059554520137197230627653665330851226697913878653918301815649994946583495339764003077610836232614042898328833257411052616349739839891608523238486868183911508735873616117778527551019449352463949228601094354921363499419026270141592045544146394628611596448361775353276991587317111599056596586615464825346492547962300921547872097984952959732014607689576595468178118623880242346472179588644136596842595316013115970510846611834173246385250642360188002429699964910941689999459417840997256365570635658376226644053579877867785617377272947087059721303103708162394967354543387519062174222140038239519882842335673835724085874114333400808768071366898985525125530231437936466432726367816492404717712285620256181237194546336677838642822902544945098550756106523157239751784709852013779250271868909581316731927781052277459917088410230903828888665147514664372097024049186387188508724061648321302607183464423449411940287973590557316709641972007055609834284142302891350050394579093568203116253019962062363565633719080026627560520347519924495332519110578799836710398414003657186079903795151421985652339248026378477799787924749171486599641622132421737203105234727732830925793522131567081007094886740611970345823477087705051383153983376414392085299318875844166959400283105914524233596294911527223988137232488748759476583680333250709126969065665819918398132392931216885657920871809562842675848175431573817127573227246915025792976040055727107228105684076019034477596040795946847120764032210756492811498300737499395188528238021839008670861314056922394905282720855971488517472288521043207379971201774335037841697857427860248494001995608678541572319295234148899888380878368488720605095212987094191102254374373316475789638915747790089229360810883967250835787893110316429294342326075886050770825812991191948078285195273731504278588721883860277545591779295169351618925004236464213776071638626448796854285452775658594977194874598399621658593391378365296462857301534111884975604326048842726434869508548418977485347257228753853206654218114265093197080138630011460503075389392943510853497417098661169656136604533727012613897767157202775380922362505355761125151374196232846139175466091458440168566822363550729216219206636532999155580209469873010148118401718021926213605584221781156040242855956088197598626547892422497452183239964500945202405607123555970407858784349037632066067745491612134950001427279251429383173572379109560446671981112900144935495314823881349011533517687771495993248632753402165870532752335155379760154347340860918572772070713980192787207611526685005836702568743304131342122120158525869403160933596281159313749730550064232454273134689888257351450522677655626815809493396432621815333419698182842738348292276212235127980618001373089468668082581447203126838655711302979280948925793710108167262956716997025023605251925361302906023692233944436444541685011717969739813125209274816165499915011376755986544052792973367986973607805983334441811577293199338629957778113688505843250687034673279558098584758668873962147808312431731555318529416754438607139424024035938655947016301812483707131917941543905112615716280013741023474852707559090810653189317641311707666124685993174470831357744923490318933316856903248194467850355232878308949119547507564841636040033429365089618524043144134620671619858790963795990200828924571005664511207259554675108144903422339798040258497934709937197968398015436379315210321860673986376634818357419557842481830989026797288542499673755008099933788167863473357080549237722310537028851252991279753086815129100872122309320041838840716974466213339985619953374820118718938136413095356959988981393905643463728258858346515089509415577581876702613715150251826198412301829694743112843500981295277961740486966209649452804805748898716354748436236965385883227486258194730942885295186235808505738847221613825382089203630182393241865926371882753741139832955676156349126191171304584805313996416618999989189160083448400388483922645769020762503818458284959515578955269368424924655826444114855648675891123934878224873177217581300173386340332831159818214599918029333388461266802597679453987968001963053836959215777869380181342334169599141030449853918715475902312425324550447393458466154311808283376646904768518711187599198409069153806867876208049893903397914408319050620086753727062861521619093901256986178921593299350579564719480359558638915345379842173543119060068375513275109233621808217724054733238424876152556414181064754828138279851639383608076571389865380312941863910315098862298962882013531060804932844155941907997932235056528174593458253343674108552970684056668744289786915803568197798776970707799146019192241174262306117189702412093266689812749161680702484383118653556491509798567945176664021221445020914110228023690589241800591962016514651703748574878501766940313571148496955450763502488516273424600741114094723866039472352840937523553715557358352426323443829137513465252434741072131613171460241406207539978141652013430166876360197221613203031750939178824763310194367043762197893119527623027402522557715718572150533980079041340457602923444410073365496613488605851129716776499943052435929092833648110028794398067509513653493463920379657797437793232169928669080448857088513949220178790171883964821236020949213605343287556260525868671703574422915704946349589514094143769526315881980146997008031856933324796901910317416310523016509212919444803171401009782226633176141594761477914635744749372896207145673587138555036021825488723651525978312039243223278385868886069715357785922083752012554599096536057024030020097948596495680150106073309524817816821774529715130530785610062348644827733212662687951280276071883421839388774260752200586184014390514573364051244502711807002620095744899332208698052651916069685618847255476814480385282154429469861764178520183208589579595149813236675035352413116791684373157667995208781383084578479030604882804813165116630090189854740714257331222358697798633919515539989408921904185906654049653920234919535316276503258843125993015891278127993209734152563424302820917581584832757562092097834631397897356278294117373897343996832277951538793947786363494173767287265834696389422354282751541996232770040298924712131444721409088781221425313599177067816622836909373022429534422513957195293770762971245711570059562330196620425832318670250997330689172612123867060278799232073504626439858135101019999794020861178542145600656478121617291805669923144683503430911471466689188393910051649261551268160687274440070646377663912790825946485833570116983563407966208478743048410905824959365467065681187445110368167445296630103983589067812787573435752499284923484080698839448030386555204913791358639974246141748335943886597073053066904437046713730653700584496030174916127257577369119962022055924522929237741899458203027431484349630390161013148048310652314239497888935980926747220973314020890569896487967082092743176692410943257590286888147653355101185421660601429439659592181945952380940673131885765500503611372661319233147471768014249662992762438910331195374028497458774279991693203075021639142752205838560249639815135917781794975373969754501544838734300920567709691771267357914593073836303739320701288413877558472057417539509723316390993491639035257789642944274560774950838619564050217178696930555694622843408714088511216262247071738672023719214385886851203795651470618454156460958663730913008932182222177610398591732931469331087346503691520055050098616658496512921252330878421021368157416878130662155743680608306183649482044872907146961165407991931759651435428110438518377122961534707535496459326768676742634487130175733886904508696218751220115861516313560307327275510292827082997439991427758095108128796224949348677069033564837355546718481821211735592133750295246974881759282519309965387389493190972686460961200186334906293800667524555153490467011432767288085554424706357581683079992903700293455549894292193070386532773129859628778710115147644371727193459254853650806156170542341176672935139042178217318889434388380013677246480520821853596191302209202815765315235641494404169174692263374159705698023774025320787025194274913445808560492735625190510859386105429033185040830441554131581352430206221358375884800184311854091265654484524506957480073478145494387490343202297525000336701553228891743887237502010879601392177770684536293447732645773099839767506405508661175005358147800628829731632368561270589983393079231840340451321889275636400745876867690627608658354592625918393609259478574564226411195345506498885369804413169255557992683940801862247081963656925588149284252723696845540059688246302675505409469350101438562479027711761765743669739052482689163418205061593264841441471588865149186671339375202983118299418891364988735149108400048483136606834894504773350561892471463670485683324556207192476582477080692804606812020507467950074483343872975600764903555911064849860408406659524279256779450038421603361333114846037809753876002979849996344732109406238941863833697863181059915740104142852693808688501557753770241435523569468493206802494086419480362073658681460421004839849690903732951571251986608800886438912380701977321802897727723859873929381960566602732506384639609414366905598780036846283343186982631135351116799575765058337918323611564208968398649774218902190405707985894100486852445899720220673313120153073152975029612118242641415015589202797319063001575465859009171537250357706075270041092464574606972399608291300376030526153994335634561645786368868062873579384202919329736982634885953096890942706817424437719905862272526054263554459170960406951018104380730251195925527123182015718554492435450810357154350656014627404318447546689711873300752758736908438468907974765239768252444179101165348555109163346536211923406046198197766962071011815433969240857550212785063197007644196611143967925060736891263895985494357573993440239358046539899723772444940629310403707937547739344245043837709544929158816694613307472273716923833299343206561076756697902297352523553645765499295770375635141937525384940184131392202819791056459311749291728684884098963065819691876522660271876748811890886960021032653175123262872865679487116892797123425805112509786159736051479055794762402775586500693109403192511093875084201035145426294292709367197144238313387998250609556761355757016927467878696353318079503460736344112041993502181579494598308880954007444405739519578860874187439767287119332041615050546164328947867234923553909603704292743615259062718227332758536752198473226087773581041250669879504526056787571035877639945189710306822555043768781267508889814466363721916319180872909497029405003296516160414524073613430169244072530567831529013383797821020630560262614948087933030867411437827058123350586089813386257657381313175996397940613937769506249088187519840004948067022290357835363563127450706926643922132926896416432170884278703331525498407122146683303485424118980099509681729387809059133251169339713802111967696290475364424968534370173231314018706725741313611197174496542120852458939203782541551880592238930642552914239122190442307596496732760601913608026818068518688911372598977369327696821221479627223536157486951910528944956042536641654790967304951234494464540783728146891653471444578782006846210764358437000358486478815272756345939503018358488565841329098025405529917405114788194079668002012299687440119712835318122395734052906226769497504891626851402854055533019881872888657218888580742367833324950165213076168684092746073835228073608952767295557446639451334733204438172932299490489518697958224003660383695593957494799243779572950043410439481213955351090965848051310919733363832981236822306739484924157454679618719654802234299132307427683561997110606536466037306734201692625783848544729547583185477253107433741791564076483880576558780716183903340839092876686113917548298400777250892468798582254124987674368288760099156298159259178083135998408248630855164969532946038693634963536867763677428910068382305134949531442626007790110553155517411485533033086735611987097058213085314111694662545833765218952432241266762549533103167327829610480826198366225963959145105311516015368212595346198127236904404200603576918369484125435939986503845344554455709667437748433690668858283876615845817211378938072727158383093439921946430966936778676813964447118227655760125895573865368373315149761596346645347400112918953816295926722847699645767547730788323771827622957651814472067134230054911286074404270248546616008147113090847925984620540194256521245829706744384314090122971783698356047102723039727044253017902948198760153973356469330846774955840733613647314797123051222619934494719992580410656484419689878337835722804287145760110816732800447222989870894100335090028714039583420056603732943536349478164928286492531546054552048808153051886007515747927635491621492416300495635350781438995935673470930462103086977954754776529550740908518062578008803112151813312078002172852869226012823246742501118142135646343209562325871699061962334506204186390084770244497844456801845519427015588833594877378252758552610176106285357135581698794858247160042337418131097532914537909776630511498862562013655231788186795650383150515867785959002835804308218312211486180192893483501104626066344550904723142861024752175901861751566428416524626979320813392283900167240847439978226087739613708850001777633050265368719152085275004625093596424122661981958950958934493988367686502619598404275280768099308869666413999092189856155910880002093722751270884248037988642830684291725916543983455032985112549579106577542495155541821500297184818578625016865975325585816812764088442252418408170848864515638082899350523275508450778046645915074475487445045073188525287770087478153589322779942094883893310932808989205096584410787268705566199812342940551597760514515857980348910133331956908761733196996900728820505748652908948110689485186107229072794381904600500260386533637877185197782624047370632012201579179934137541840012375453543478317127287719938584037772662157342671993073214683450484025644190354998932611240909583247575409892110822703240197815464539018762580872914210647716726073383031052918810563382679837138423309507351856197762915310190578092658971629461956993031015036418394349701395063851615737257358605249788380028545953320811206413799588267725888955638321332739697585738285874990001743873053435938977490460039662139023479427020153410973453294309253152975832433805847970224894726822546277764911743948917623848365615455094613240875833831956969875278575582568345424516414400073861595419578135773857283915674956458873629714514205739515757732188331809359499146362301643716853769092007644638993499869373799883731640441583221685237445561085806067376605217691952650139979354195735618748776577743192290851348752005869578405815689642102111823309267176421233038071624787146245252141992900123968598943956121445403858934403985766771446328392895743017625740418349139111916800804110856227122925874505384522440051764097346667114451108055602209909443956355115274039357253189921056293394213251616678570948817606096592583589655650207698402720454876971445261908589864932679743928904240726695357091218430533537860588585142089902126537515269868457986649921946659454623003021035784492016855404538624450359531483906384461636596638229391426846665526890597840305660525195792026029330574023721292475282391730082165389040737450556059712898466862794085538997194685539561042993864461309019134120646733590870755146191484383621651207601408989754004289981368421968085347144110864234120494488098336552988610923699927904583649837251920065292096465056707862395888609159603328986230414430473844388817642649906862950523694185906149340875404701406652579213214949269069444237886487340888140454922556404810703075165744622601527572592074449589906951130937519544403792906591056626601449509403199586534595280488936905428527041857515554588068798842578080242877647301277550879033030069790619476013161592783515660285068791286753792772803518808365525454215576687272780412585246528378869221878270021419517078042136405769756547270354799140442953542317748479929935801732404218098552369644197322349680401055889703631269102309696569701217356911969112142141346703652331347208750142736702965838605612903892451294298739570619000359315710336027579225311958498150142868343825407080710476021310047084619957205235850462204924079362767226672143614441152415811643170288853226826892437253982792190448761469736622786960452184274290106767005127790167361952545551386075661444405999495859788477942211306437389281107470470102792810571820859551676615005353099682426804444054093018302343537829218294762231108314827949315629933245040945059972370702863541968067536800510744070155078265038246872859178305741120417459591134085103668984734149219642684015196122208592360702840550716992548839513287827174921990657517117857771707310446129444941680543016002299250143650386392826326032836550983937851958492201317989695301944627473713406243719624016075031818785476145982056629552080371197105025151352912577960114230231414347480156474708182671487095121385821264162109923522946016347330548857668873457138184655838310504296067697387111354634067018567423670777638139053921203541531917711109005214477719938373290721564824519062684145899490348273961094216274484263081153594251713262197702182197698038142268264767846421123062397549760680161678545828004426934302252487392177099826209774921605770011935891499122743617965431701886379384489483157088820401030432832646378697072636978519101814803762732113721442620768373327965460281523578259402632817806780316641088226768794573156436360362659659026296471773067129048386164737162086720159592754592341234089765228114702287326112592931477931719221592790173333044554292803538098005930581575405792297873100387679891621069372056263732608778107236404023330979062573647917052495388837301591420005311220400380895576358890467925752646870875064028716041069058316185366982827693052538058199748135895050399488593260379136893363598342470736438495619841649572131806484603492693277715172094598071799379200656327848189415133243881469951896484253242334380767502634601646965585332889335296262519223229064402705634434722023267113006260424091794588912988610800577168552902466992241440318501498499637240425953674095670202387291981037427336096738993034734573769082286604756337594325902439799888070464344281841216495019778470835466327386100906011048220745491984429518651336138375414961711509824782188992733845755945412467585311818742022098176176908960772836882475088611513420546753624725892801741691906264507128960623138837869098381364950995170600783944580897693865612771218159147713416403396010034969611063578087019431950309461411997037443175935596616440046711418330174280264761998942008013298225835343873599243278443531361315425736699994823865139442913223849693739353102069397333525700227926077058149098213655478856234445660012955786310031342725099332758239333172829334964131289388892663085697797584320299174169006648153234083965034575708221650296248434734312579059679291474074636122025272948933255273440301035523516067260838600607150558715438428893185638845179343168088396316235774363199407884346603495598872411910667203140449357633094478246432221351238011997355256835927011317493911384154921977149833386230476533240371437570227813464831996144299429874124799275603042614676869745800883962123041141567445059507024247413010412559938868562385947666005618638229335047920560328496943597696591708394149142928493862991725724447072482843818313165129166674615594830285102627796263246809390314625705965638616356521684649065057318893786862395968100389879593175476034601694406930756657399299910147122334547921582864071580836653540468321380777734714847058810646673594314233908913716093417399521587431447412926578146336088010629119668442992909795531683306710563433710625316392973851373152661268244041460439326713004281917611875842584823875356859120837551089001549194468770156720778776808734146327211955703538880871594294989461015175797990089567437485825188478492511660861392363038294732990561966956700958111562121330685755932134253790793371503238503402372419468420222514395812057458870079041935997359894814786635517876438563215156739583807859970445300524813870343141582961501818450116390974968966046561735840535506371045824685759755770454997971284595293482669081914980251332313402143021694436806382466827714434994198819750191290269530577965247418383794444753769833340492289331248624305701937093827714031023432215310470960997907032139033529958116520005932832514534349426281021756704384428808677149789813967215281084614694364612708591021340072437087002807929579053844524016743406777573764118027049600736808157815637659279312669379579487385207566008669740427125904867225511597239897714549185722857461199849925602674741162159995044086076952506661250517874721251736621908705272855569940664458210461012191458694795147041375265220452119170045545733139126538239642653574776584004625922517216921610278470725996107376924011139012397128816048415778646069378015916938258444987732491663500735213635835561410816127157600774352344152732751082130871881602597808863114031599178904248946519325355973478983648025621914679746365513253850586429539112400663236067358010621508806262485155552561663626367848958619869859390018453222587985597469632668224275882673065768401772440315512256311394246315892492774159834977706204285759350119795903474844516634385576823119918984378641640567671126864138337422317716477439544656697795895826417309137829790973451455580382722263085494372712354088888538607775339177148955943048372468414824247061069943638763718452178525727572210321351934861059436101360934015519518848722296807091925749749008449317883544128864351382408607648026100224639898614221375801895602354481036521835940968135499376876045435819620928813454592651229459195357478320971992452794810342729715405043257957082456951435063959496727122305155130182444867922603673408247619249680028806761283776577283183445183536821181880861291691008326943051073266106386551856372953162561710233979859199128751037925741510997007599782836316381116767516308846575064450199816456805549953340415206273431414457933112128261489495001509275572710258305588153666133974470696843039545462551999464682925861295168632114460090754463775496199739997283115196294803048051939519430745701927633105652538396754912697106281042670043640523271903034593688941359166768085605483562955090382882675951255752805033890152453834251364176366812256360918983627190190548271186592123628597880698795207301648851653313483674237550820926755565115642562462470703993943020730951151922546234646213891416985626130748320390383005503014492943577881150967223184533024241002964603623126913285602646164761464111063077955158679315448285002019713497006352690640910113215391930732004186536429594769936575743384570116830894522355824784811997042095216467325548571228402224813284699431106301734908390838911238984206885267503675141018769427587702291713586031527635408659553915960765788811789714637190745830367897386658850662312498297106913831964787174478692680835713713907850107549435609798633719934575738601430516814097688509482981755298796486690930088372823642264781473984257261210575670200770053020529995991367647275838574523007551584605646120879943879712340106924821918258321451297957635969159508930083074750325019012698091425415545273406278433547633852425620451845881375425086484635590342874788314201751540665305264847603461293466021017310836797099496553408532387459860305553446365463970326990888793387822962047358224494619292344827046269628948005726099944451638153073460883695811468177699026811327120962523956683475106991577269224449291754674468024360227384968736629903321805850579708965717542502592071468266366404388227312940818227064961451092192616867028229145170608835318212317556917099986404445780876999130526775553859799097644315862823061090930353001236640151759936867875607674670714080065277501023570212475097676101086908162339384832908204100179137146037007407938278585066211559813882133635447034009310781445811953244282213197803409864524241429765658662613882980437411076805328250321372880509695921046858073988104758681445089748378406275234591346617536328326502794992010815143733079231107927250384619410007537390799487197598066271605555852558976377466853046071462156130442972881233171043458251507847466332787223878222511345076404220605620438833959037303156100460875747979454436775054381402451565120352718100824574458048239648854063651713243842545269319818718621300684403509531945342962747728556833546661285228285485846056448079068635657798035907593522528589878861803307061253784660724734525000744594442441141313231090867719059945145511529651870988800017667330574920384736659458382701261906011690367725757247280002212611985361775617025211622401171661170102980753226034306848486182137366731931298387403362498365013516402161207732695429738826832867844389106163126397679200400197223163678852148430710504512784791725240425550168413862927456876799288134487956653884584308188826446058437238621500244002413762599595083591454342001740974571449694976499053183973350122766362580781331698010566521163343698177444462917210564496332181060056332725065869795331584572973935917105760042270131668878991091423100453885224402508955614636249005209187650387530128342823966131540291654391621949752624695077000780204187537919197020709324745432638713198886482146094392006323372381565508169175619806719596364458932973083688098809572026826982629721328958870511240580117482445775901016039586470228528306704922968751221168648665093217134988041689136286111834384668218961110272117826952326133875435984621709357630269846786555989568136205115187591311268289510498553808755555489665518735120064249656639700841468660759744774534777556376544322268341353328859903710971880216735479139926168304465930436931697091687399149520912333554366399950095623439663908261190606311594522774239839923540238038054797777534044658227964759541636691919879563985205979443841672757372636152036370720189937476094824015936675528262384143397922291280705578889207964156855898878266566403520790573235715699748929400960690622406843171171609284040031496514123957169562652876365494616602099257097868903508425780995249067207849151201778612034291935201402497691895961742118928770121860763295423087999653429055270135020732166429842439741012589375669340550220147417530942571460085302148921447231814698351486405739989808442462522657510482400894160320902447605821432615572742533197452509121987202595369416850898212982674301149137223360290942818760728527555427030320536616981814840331777657421342243098861819916421960443650871993065416116773376290838815439458277338954524443557696927220741606288357367468409878725158173809170729760489274113213595890356889522843512897570912244394439849309710962762953056872184815834542129659325511275169266461613914973025011622701373541760051467935618667586534090902812073486505444976989250885959796906496057662033660094596335675097957216848051071848514842494634159499582091345779517314964380618451559180339986422023447466563114078024303972859334952594424466932645833182122308898400553067599859468997912267020818808276495666521917106595793960264375478703632826906846608300112895240256886921190237576089636771446022411093536549665452870317990179317483032562728932515404821283126528063067034467552823331819054327417874803310351272708052891458784233813231847084381878479277384740277147872763734303521984612739696652183552992328526962345470343225222901153729067767250029068678558308118904691530045532379407428851426869515081516749343430191553893643686451844837397614795663865659873394738948285420882334486607535576963563739683893925324950195646601205100274826437822463827837271561655019984150055190849695859235789258160931675108068341428309092403162307713990746378711430152252719779737958578308202682095473499164365264267865958929397525450930293606586467310068220063005297001211684204377711938638988611866229192526111777413538098500308377425714974679147163840620277704741139149416655867942628375204513283740513056161129823044570478445302644185909999152415588007406877551682563129236643183311193465864307859324290452344598175934254349294493954814935599714952975415286720479489173874604309247294893079932195827434269564307119088336130383845531979015706521745217164808935130000169057436928046360074864361778288689401155334892344682454622585625731350093769664624431599428861070426857177849929362100341181977299226880530171719378165270049984796333189522026147041262878860375422673478038912740882743579633832157111470302812545735273219270126054251077517867350036721531488999493512213999576947277177199644616257763803233764043195603545871029372480638318507726218423016338649098717119826340026132000838475878757581283400714850667994104512352611241769967205679368788479364471437971599723801369475629231617498570352842496877687495188259908464438318898084375683176205430061494095696059814727278057654356264817866210106517118576071142840292231382287457609989536022262008632203566101347413888098647402018104108579109147638259202196008428211045266640938138097320414709184600275047546330191612362984288792554318077746898273257093549366604047330421967712913463747329510641196692216803686451059966932813567019513343013707209806077960317983403104112362442648584388463562020811800133403007577828550354210171673700689887258016449627357241900901659349562849522170179566339836592053067097438963052394861974821624720829772757778691101973468984277010694533139164134630297946283884918547667520402066452030727111133069239848651754610964356439302060650595203019941466523155145719981035404830406310145509899922004622653412441910668099821948138631321445363379127324543667082753705540560146194610895990657200716068224668042371282207544505791638284429090319701180313842996213230653384810447927252105938201580681614845778538686934460156126794307813457625228366776104247840600699095701647897449724639404274366694969236547317677419964780144028474165253100132318289932846467159210297034657353405756602376559188211829628498451237583389383379560456666933296977169164375561240082718962805924375414662769365280390724998803081487320227080163028297251296867703898615431927738164315465993534150803167113113292982004064887001380340898416955666296944397830663367326263865459254004306671861692947559896076073845876033453912131969393720686218330470105226287803898612785431561538897401648718938386187180611499219827042621414525680275849714042537563783942786980669583646641467736365828702143897169877630472438566540307296061402354518658630211738262393142795780769201097427526816690476459140828472276730139835669948310384529201721273821341705088970524581668846868849089963958610707390449104007114678654702185264028514009280339904975904184334433949554604380517810014808040461958117930811251307859937586467871102441264224417241561011306036031798711694427308893723706639310430219327293874433418987446137223373838682795832464664554773050067632109554528830168071443550400068038604725216285591151262544726989376853806987480764927884052459864552410908970929864687896751283355126558557185956004705139917189739085389796153332364447312220850836661244901995251825208517102576588920150030083064738085302921715620477853269107456574791290763530889601388069706736875398737044135648534618883008751064567811299917554817812622557074000430156973455746746380008876951036884579961918312620922551977382948012367100626637647583963769015336994333877158068811697127321617566091468496015011407229764155784652636028834267437790814637281211785616131464149421670092460306720773047429226690993962765639515343169676921766840495466282927708336084581812196629836306042886126463919690951092302215765306192933851251315654943993734298074937602934587307982424679214059481690429198752258974565667763329951245742884688977819439087225289559713566953317110939580179005543408116199606653270713889304774174409175718587686221477044814863030390207472933312788998697973567203273250239366532167930525773082054113486795850841043443633274821758673493623896039284113813314868931860820935823443556636593759918568393443724473830539784163107302227842002785540384035015036560513945802476840924849921288906629190259809134307209382053249836617111303698668362034067649649505173651182312209591567797875592880484533413903345395912066189077587912448208753562641068772104525052937013758343411967027450802487055337707082426309770402647352731361068610128845136383055737013460808989841162526942911529189966662268655449059372479491750287244831218632706234570997293434066828962399519598403620325509065058878650402518225955384578300594874046365820053099068970320928885865978452782016384952947676324243613493164512175166160915963336949079116114827052093436091368209599240866546478864692213935806342631934452693237192635640141289695625781488539712655140722400549567304891081956697239172262775040943453695731791029315204841088054906294117090710618723699528386582520132331439381851935751140842572355093420114182091597104856192366570662226869817428066889697621154850904494543746072204957004690956334246776947772339562932436883443910674463148862648089602051123336371570021350076229716007310696568312306504537116191037915035682031015704034493381886214659992695517422281340515143871157451824142825280145691696831717357190018141188619610469314270725218463384374455730371394216892858747410134025565665943566070678514071834278337809229383726828194474273253303427127048436186900795091005758858978894795449183396538150170843900694041237464526651657176085330476574624521177160481982511954948542676066796991162289672716280688075409105139892168203284141334909636042871069184199833551833034521945717808399418864018848338069224889251651751313850482858452125531158600872278855605031977600717570093922350477091122170387384851210212023339481534790521029967156532713794924320624053366073413466789590159391172646862402430956188601008085157158747368544622641589581787767175815459577240662014261690819085065115328679241920679466873314768000354703925387935870250222688649755715330521925728062307199070256220190718962179010746423052051357537935888132914910627348081641437753917690788867034657211037855472054572846179371807232613763205881628961915159874646349053482597943922837359679133705357105230743650185713489625140806619223264823937534864746142987505450121441146033833456338715737458347128273416013909998412454274985159813022817529228922407821391805074635015759148345636034966462335300425613493438852660667030885242800993520895574137719897254021425262485888704367737153637626689592586729081923512889586966202406066124089256416070561932752156825450684883197235335941766231454181284944240301991509148737037232338531370861682594543747562025749068972502802673020313719907778696455379632324494148791569316554640324744514370662926196584200696395776398168022152473913344438997688112195382849850219757054518337028727430492224282187092983744937829199565637645473450656641408386615102114301058292447358047516987649705737147985486566212438445642766496016481407687402228791292138076725921115023139687478144043524402794604723887367093502870683615366430798064516541247710865684948306857472954264467390093919857885364261061196236367392750181650998887719164346231544673766848557082989802409821108821389947250771912345246726896889485345838751898879235988072592165060765806997127603913178385942875986753680372964786293828604967101843091496352642936773123211012213718710205975984703763844916956727900960173742316649919148235722518047960610364771213978385954135822322195346687415683291072380657699206555642732326559148277197471014006313507505034257116576746987826464806634427144515421931451146041657816068077088851854880289143925103020626190773371769163596380143541903986522395775358629511129331228316916395417327849723979161941119323795074778403708509461207328677253150070283600430094341381464272876416236856810218558384082778279086473390214925941167640951011066042452695518525679278571657194391230322678941650388929892316141199620053772208825492324425296362792520624303071199550387567652224779158881882068117581726865216899612155641046080454656657617126824705454638388567835333315548522177904643640932347374593873309320792586865399778909738043652039159058192643819976665595672227516673427070233241285840843920539291842622805710208143568899610846609647166885493715834647579559877006479248731024649149629989628679391610622680648804359088319727877257523087546577110920089855232923169275733317613434265236995774698338540099843442782447547449721212461714206113418031617299482300419649735910183850308271266606345505014584077552052124378947027729294455225429294880041327446768634171477787726243869924772141043332107981877238572110979006942412118411918191720174569035942660980381658324841028149529961929632418245328925722097850064004440275728226782255164706690553444912745914915105242291815612248772594861669455067785716615757244365281567438590303252924726133734100595667278362978576736497193277513474454975909913882503124513867233720043161634960513791795437737303536445477035319328835541277449205661262897483017722580907252320795986571594664446936665276588977978371586428277980089685266852336445119732784924693347956000653022895572635287133445620482258401538715861722306591465049944667112096329710799081212123307226019130662484477830155083313675137020497498999367968826702155260302865714944320616738541318798024916043451804475757403267660843624790257166894827038699982026074812339887132684755239292769579454356387627452116171877646989930155009532026134744119329417381835251244672259383753522647760887199783011051004026703713270863347292936198875131666878637795172256591725022883968016922966935517398564551337759500542382651588227397863624262189480138576161947101197523008693934717776638057426345623741361592636082994219449520919019961812596942487196689176881918598866093398294565157982264914858645619453577571762250782623314037380282767563688061928113774343104212892948102686559296086666884939980999288414680214077792037135258348829880221627297843197526728662051095220450239427242297982679564240574706951758602546816866951194011772005433524349312739515969312949080993104289539004383532154490131118627912569345567239087288890184247836419724536238908610222407705044803904046170172268035753124195842419759593108249625778006615739989597945386747054711442123861241340371449761480324487632685095300456697543085154927348603540872045770842154825786262270352918934279546805627154046391224020150888166679063199279188937476352351479386588446818756284636778775331176455116370959114244270802016518374187328688407855339448794359485012126744719772243820789064881866745595577575482675105586774045447475304639630462421874027532220003530345470359225111913080373413119832518356194294857104689608335645949694377117816864134284495069908167404031993916782993164303741412843949754046680905717984649865535648759607812936547492786335282523325935947218633894513741793898180413914014392736774328351589583268876968598547440326208620004377421512452025534791255557658663186726672958092716626407724928548543815330859876831533315221027138059975487060229130910234890489173944232573872327460856739952930774655785237808414498488421228790698198030214768418918398175419790636842632092301557093160775074741595837017645723266516042611643457595686527570990077702233023830944223258140988184037337444936638877888271514131429465212172812986267786468210331365150111267558246913617181797664868484257065302396327669883428607595830800827570090602985341010599657247946380694784156970696845740038587436568476653094018000462268232470506507940654893082811401012442144280589561025001943373047485277074605642284860912581088138978043307737348037247771016285798773297779179089269432222903194108181399375290070850233812417102310305889695461400891503071323018413748388094551925626164090060502479275916466381361945011533844050044902551280640727859580841861622800176869638583821447409251351518426316234966444311087584165638156843751762902236860087791517926119667252149146521002428927531962035593317921869161949165770079147607594003466969471197153076105264886078725607284544953552304605446920523446790894074320489043265203283521037946556251000857850376247782171851358547964890352295886599093937635146615104125298211615730513277460112399513559853057932365761310584430816562740019110151170779857983590641355188719526681746771105617463079554669520619828985054686439344271927186168139158800931120807401331602372769587100903342815702874184745679177542308774390253868834581904049612514785997895479871827337767203402709451147178562905754454830116682057021540903542443013080526745310210412422796860855585119612602707262436335790297537829775900038581811908028183710715750744844362589209693494588063364580233148823349684987083643170316557283381953052143741050285041221244178053687324721852306918916842296470202020006840199854843334431297471680729487390014456495532229781263654523391719880468563363526941729829619598131281687545295395728798559396023912539071869542694158174225315544833343623785801184374659799931515820006057995432658484104509655072187282538367736301494005166435084363358272813450557108164639156644478145593493605456653247589390658582962319469794758749202301110202367677615857585807815063633683503643125175860064277191609444341489483850924492461893215605869852659092756274141636554410156446244084607914811672170662139173653900413840711129872144402103488715036944021213397666203741668245207317259191877387979776197363377168395984504330483412787161670749786783896129959505535425281998346528961300710552383406112091173762581918907563794199106309427652654682522101276208873748534573580385947656765334720272573647847444148238979912993119834247418049482601231745893827464345105980255383988544491144902832716617665535812074753053805384355940699610995886722112395105436297845877532144069591478119743341748170422196172897714170356330003741969831944763475109254224029031151989684516738216766981188904707624589306437163411743050237794979326559844342045703956025844163926882567661834895592904172487304716055073122009951573141225462421091442844712130262165526543396411173486258194888633087177396973955662339861772801789860635814061645939140415388546986911455668887838621287050640539572966254201072901706049279460898321782766678688354217605758754886635989316667882978140846230720256862827171550866401956198671223104037009896814767468364231638706606990434633441123285284643364847725974257617259811711750865638168131621077192806030456116237386605879974207091435507997058022858262168490186918838909075478107854017159782749042086555592734671424307376261506841340539906435915947807462715146882264338899821704642497675725137406032942468299445904803838861480534804204292469351506765408134692138011906126378002675999889471307310652663570637938862761041259764991178483389786403280727483143924394150878092162997333116490921510318245246951361002449009106976832094412811162414150670429706251256578907648114542280391289824178755255569901200341958297921314934029339518083742068218795933802976074680173013026335715979660765025056941952794170833343349312816395463016044043375224760364961312385500035362601876270137417157108766312349692075989328027446518893148040140794804883065329082483051967668153441467004831564056833441439171775146020934586214310257808461948359225139861283475985598940727939029705065718517184940918115593824385163341842158544933334935156071160732096819910137917854096921524224868514611263325548279487252094749651881953206303370574651125332437135159199808141627667066138844651217706591941134942534568211824118550260515048050003829860027450080832944312811915300227384537440978963507068738857627413592479068968641512385769271133819391062590501580229496386115242654519304822376448277161200939153974442331230151584256498092619277379978773124551329582870335066514509790638668110528223480674609546287382941258563828690194213686900056925483806571550764640098521439860513068714840010243667833479572441787048636812519132903533437111318554583705615348206136774023208802031116739582716948591416831381133800315339442658824402804332340562692651861153434687270209048290631315955259173600147443543802866422431035050167450557853958219151615260910507301235149131648286551102208639389291543914278729160235232212827731330265912929124235691781400055664332985978946386062853777860417769206804336163449187729979495724078680150094769013555374348100438976410886389683306557957598753894185243985919557227105669777443064740687454572260738983093831046675123169853993792646882530198972455174594888619632915455018157809876435534450954773437586043948443082534408924587518958496413574719774114512346676856262941113651701399998624466093982549621901051136190687464452574934878186174651506268696822330102262797228738073443720694561142005101425209846177763750122140276415758935085867171302258973441946291447721128768003018062164240558060406016026448592936935699260386871406724717151236950018896793859249736178691003170425873796054229043683815544291045924204715610314386132653671095443279400290988768213213678910489693361138170716036169052663424099491152350181047291924825387531369421522821218281443381493362240482934211815350798998774711195074410084919266428292896218896162978696539057836657314050427040387104965221852826507713538555678646524322240555983269664621048226127177485667943147310286005553555234463455610851674127283628859712931075388339056849607168896009132721435945483629532713939199759436985631760289632508189170574747841441297264888752684984531439299282985101563789348451949841083644453327379747737030713940428367148452279280991557302510502259312661843090552400171751539790017283749313197282554148534227851609539360207433699791224417979739208696904158820129306401779307187246025120176805461647912888044838276957897340469286653914846147428272332570994966040817136605136245433493450055020431785646763550413740449713282754363893972286422613554596626923810622170522274166752964378175863273483005453527742139403081118914522328707802759126415029132551862535892110169424237411198609245840493971488714726867020362600251981775143047662520201902133928960501038107551299585158914453735160564690500176877316579719098943123427504112300729263593437238265790777574845581302011555209360829321365331231299404218626352820635384984122679257045604620277796613023297858271605889734696515864236831075607912219949198194410573317609627468372659233481192532406710748563711719212251503161385771016176818646196139477453882703514939484101989608653173210788099262999635347540761299562574088266661933020620152637634314936243921278367492000854404688716342664386219689182777949483260139523757310699560048222678953226285637665755708352258265998447636434993734584349192387367889317001775543365631487414266916380099965902293981288498916560013902043834107359544389389829095681117034227547138028642753389049891069463177605354639755001607223299589316001652853384513713180399540571406290984039721210270512945310088789932504404416625529208853238276847568107249622005399565956673867807462115381708745635788354020442996014838260981858758633454203622819767202539608235273391851583294824427420836376102115699665035730179457598232140266801381651785091111250302052933598657098291408231006455427324372061300296879693781017658810295461654868182269907594417931766596364939180873844966139334879489850751423155161934600846298009220289194675897708409640197315891971199570689387360669881156848471276776119594950419467678017626109796131563914062240739963689842898151953880485729209460722272197108047890440428641498334180590416278785116983045552167558822911223179821463954210468872872330876298202658018773284483779664404157161120390873352837902570987617065150555905439784281111763229048097252360530379938261152773169566537151113226318719186467624409163392069277101202982702656065614163440121954859383703860751580474491723516505261761065351698300747895205215947261078687394910193254407489640592449696975608113521172913724835135063818881919515399058408470793340108874704927886553656322977085823014108375245656140898032656701352321518152836121369123680609819072659696057821719399057139768135885532875701550476348089222643756444331128773701161685426567610533837681918001039255025788085451009329449985620500546143203013909619729848765778998374120561283412284096192121908262115870023091103215490018373848577937388417311572290581694283407572836118621449050770206599981311035050335980539898026347350948026561644693717824294736681129007645200595398928078991470956449881728564907231842653365715709945275347912465908509259844992716542419334453679594299742642617301438934899500768188251107195175285125282748531303607387096189295303565649746993494486382830269832209370944534107874705625007118145888642108443025284851639852873694276050514931434478520386665085885371815295873326328829031553974805426996594058466453838382032315824145322407219874383119273154212753167843738299212018917520949629700368223884314869018022616245171214262672695081702017851842463616090746876166139637264010109647979828794827425612612122985560066959013727163988194446195544109981023732229711954179959191523512428420406188825439610259360553266738826232644136835927180984269626946306418532798604674361875035196048824006389700196901542217057623653116605385268394452227569836310288884865214718264425041123539338664893062088241230170381377289360026637151355740835957691966569684719599486670619870258541945325525033140771009751593622901931738122241101470435343946301495551991343567052699192667003440447812982915548339553947737292814426534589042275150678665376414999400086188308946496112702954959065012884541550493139018827507520521053938793771991383153663308363335603193823768769572866951211749829655223600739689545158312593900122792859004557692902507576014949256656940072434926887692941364426172092833595973943779836674713298511204167677817308077486026698810136997640090428458799802139564827609306966225828803336422936787658637372242331322790419255972353887530960130223248389211074462177303674208394289469569090345926874264639500613123766691032762743602172903738072121883594344901776967227569268295782411932311132586853937476232483794460776588354644351563951761977197982752500468717931020160836788844501850721911992060100756364297043990866232328046498399285216650319749120613980933644594826287562739386385669152772034198126802083354140485235113779315414327141509496225353499802322114915289685401668688985209988464800702818224818675814949942679261213620703124649687026622643297419796007179711839388009137362385515929884025218031178824227590666045112213663639517133055245588920924215225983321783836348921040246170954107292199575117938534167790236053077290458846319629834741992616831651479699568230219561441297696446530664549464650146174895835949190640838735498567079479906155511455174391835697608952807217294670543521630426187470399123896662482227504479731212588812034739214600509917333404134304425844537173601975286278672799584877763542584945178535531436559737805122359788938993019250056372277878983721110963282560488487738354482383826112314990849817598417933130926839672805109418723405958766609546836795358184426712396831623741857806204134218910409437093851361602687419533428555310186845706892391638138823617332782220507633822875191326336234991971071562762237583254212361102332814141088824061246699892132770180483247549481966059370152457194533049334115579208145785087418202274145454704583081165307652433443043811386904332007640864100654743824402552185531541808399123138516342222433241175013496771734749366687278222225065302527784263894853335859796486153767336321205415498947690424074975794872327950061807242628533882888296162288179285378704054990265246657981690087889778482869318228594679064183200278495533676612027956152700874840764247901020384390016802836609146594439198740485054561745591830467128143898960646031250831733233913679144694161014348629739737926163694920683009634645533397073758247459359361306467771657122349117027814542381326789521818027748476028753020511919819979551227577871036833200548461868435093092096733306749651863589631130622364769431525198112524959681081032128771314620699675688398822733022195306206785021753362517654471046152170334994954243374819619674574775668572301734829420883084818028748268711760731410215215924159993521495375918594213336186808621775605905708445372294341805779240074638496973397733161642573577554510414559824561892375259655064222801942281479093269088479189435358743191576551860673707980316806652179044273411700115293024195924060583015553912895262981006199314407076739921542082028069821269067671155391806161758796950846400835502549650318914085136335203991195779413964380439654371001011945078494719956635476060383944278643243818604554287878540125799996109239431538429222631450261129190677003988448426803422513216274319021941654458707118423073737386273667952251413918181690822425008107386326555313286146550880317418055023454288165494661106924802763492008376428827428067971532772281053069803165992724073997174021089954065367351295684463701255960416470474408178372005168912297860604824165965309401483967082816059843749465967993550990085997421330986239121503899096943148458888283603208287123343130483007716854225476419928373092594151019510997952666848136878375707069971435101611674432923608329946569709309690521320257940814489913190780951155657866402106854150044660110487801144365787546997678841738878886609551533134889934878528741985775208479794443556051149012261879379037416383864178986766622357827911529268433892487724999962028179374732394611640736078017536630497445776002718303366014847406713324763135237995703066473057917742424044785134977617122054028748840014219156383855792434754341900172592801168316735131864928809206870541949390673261396657995049786635792654702201831526868931913216797151443774044023592298986093883515034276160168643647369294089219950490475730137674470223669475783159447846650692718661968893875161265418935205518716700678501619829969878654589950032855316340774758071057119091362380207992388660181727520736118225307779023282439720786319587116592829940548878386572396774704801990859063342036002924439608514973152367957019884848496615082990863915537877859882735633053842688456762332895888615866184867651842603698955884831185092737675498926703230293839135026644567570579312743815232470345635844153881454334490626739549437248817522274864584567051882100140959715350635729901000976365466938890610330518582093654307408819235114226752840012929293617107969099769204212507998264146637020243786158510113513287718630761912630532250785523666423581441119875566160240877915785285231444882340230038442531739622856602179319805881510420522077123791761130054577745899609114939122017335237745070317530017234994046554675798251105885074977636532708871571634851322431928594245335198773026747430493237703198710090164784505416225616985927740263128159005405158041270691203006412849562076496219905304816154232501310479280590875978745470553773043840364064333432295991110570142152530324800977071074913309028356558062610183514024117216492025006258254740109197313781391716632011172862537312428690001189349791483746329696916953558804590119384757335138018153230825857810593595964846882619703627658671098555438843970853075023359652625473079371665964817214367404975061614966887285167872309252995840068689191870993465634910893795699231274975408110402563694186665953337239565269419814963901032771177155252393049235508494315777330983195899657303648918132143536676887679323375873598198170701606471873552035983774393466801918372629830361985662395556700575138565937405275117807277865055411140626013684412219742689913093288986780684062361525640917976066879056143980932552486487199364979377189905867988142596548267980156042426613048596260197753777824900733150223575920577001068283209052665750916517821317226938403652805491992747177489035923455519131504596344763776295828412127577232647864882919108985088573739440785379092579265198329616628610358040605689535992707297543313711984855397645194036931697814285093724488528821450948448499980113124484066699277719394921981421422984031799830716256446583523649811122414753241282527750857468432844949315486238292587133801742760994200337709983586036178459251777621914348732533937155793277294051032830132991773929956604837257593040776743597318449694820468272306916094815725650064931507017520537781529487023031963786258108902595921838439846578096888951760703163871516938879585097338830177440743713093699161542848394719302249030879649909193926109978083267994231877567048486943984845515850620480626279756047801743879507694870094723837603339773502872515271596799715465553807443104893607693948967141295427039066477370206316665978566546471782972230299773049913081630294520399748015538576775331322336731269681537601970400101039716490892865174070730785585598183017142071347021908328351783158725602847110934336462992665257651670569659955316973869051331845901497389101870504316563135730608105317488206817303870845264001568913689032404411702592177469935869809964106580820449067906675728467074724874700897798265541007215142526621224492361336827268127832366837338325664709300648455338732538417180162112174171955321993627108660183445820115343376196940763798221496440394250149006526161037118983062226308493300618137216842879169986601870853371975255365116215776781973735249678185133226007172179756291096541780798904763176639457819328355900387265770315822282226983598232290916986191631458132127489709084036621500619945798735686467054763622564090880554647831248404548979582250955647368367234806517994058849336069645640412550711128312873954720626926773095141827155210962840431266500607931807684391980001725502329340017467337914514995440562532297595808141373368876653285113034251652508019425596898945374182901664693867268010588727957757716369102499038484525182382196678143103516490328808264939609553685059268098989983950945724113307126664677376841418516211470344627491548539794030487608598649817269807343445489675921187808130926651923604342615809858963571309309848538476932353259208011958451070052766808301218645488991122446534168496554947995283176375467101203042239678454987751732211366238567521031887374858870211378277240651131620602720076239694530746150797393099494205586559212862454982288273652349025314074636838642616378677363521507182632662905003074877697095134264721143813318849817964540440610325557410819238679860101726619432957461072030255302824910103807266893772305935088163388375542376114389640922086593323774887916789690995897807878337559355945130770791825437298184980067586447213236247566647850609865278445745535975986415779633143233689264252559854633331525860849393786951568493629045478297009895032018083527914507674684203627684069702364467907906996213980394160220774405853126141821290622960712406059081414006733914351042896711205602470840652258667085376904715751522630618016852897457875821995150375712937713124658157993066901641845183410604195204596674316519470760473321430093123477313522621448480151527546374379861938302838379775474923985814422632989514870860201297185733391608256028861295093453751083858108945896884934290333604374327870196757667653736610996005764966091247358261564979742827434340700228872344629381465548382920671185965147330714571039710678051479519343721982309626182017852909267702777414541594966853731235455487764715810121371768783081091415342059588883716654399004819824954202349818128296692519913052477747904320618320708377127456133439574463135389003482687511739693332624732557217076706641481747710218596580398479726862306400306850976022337418429530304588620746945764748784253995635150918016416164055900525075129303427598932169945663765042801024933267769622474614665218679799355059439487435306774427098867259059893390424692051626042676153130956830070051643696562212914800588367454031458069583421662768049527441970200992366104630376019146953804544416127737710729886617191408368108485710532978243926254798824548236383393309782891573047497633065219919308474157949515053188370568028895702389600167570015355176152253568769119176020497581757317456186260190374024141403506888147131620556410212478734768730337969080978202664570896011507687110827784345151058575630903938533185986004691817531472083412891787608258411085869263513445510287584593295117521471056901241175339193827409508139281477694661525792211318339747053518357018820085961728401414750172901043107955893935557753684450789074835682410119207786795936904382272100284059096911183130640930679239516499106553544936644796321533104746667886639968871622277479835127789576002182171079142845418065990324986508182937525835350485135442808465406173102747323883966456703516727672801649806671915979189894315451441506522391767570388942592349638657622853329237435304589073266068874416234591750128788432127718668120524932377158165331889990012196526826030501969545288222289908233944396088470734485120104773735035732209900510034900238505149016912516704136638256346861290292150213297064025192687220237809037863614085369693928804968921973611380436012584630642278123708377627925941984963194726092857185540409175073793224236196433687679189810406599998546274637043730711225034873053767431045839169311048030863409119167351098397015377371435607217741678093474729590622998123051787277048143914356502651292913206815607866155315056021552326721962879384010302967594779575586208676748509129662984737771161969593404882548763560475675861185268531110913771386839343471918058067485012829595885831279666773595449608694155680104526458258240697755812712303150159960842177456395800781407744670752978385588511598753017455090920356989462094874990844665488388467879162844216126710816137247429954794440805839496121415853631655682269983865756466994111378698401060670220970486442314517062866548604336917333689070351496237732917157332027153272208249990041058766813492800769215148502248317616052550057703190392709446519469438119698007024094942259812031629538765062562342197457835906188555347663962933386163072504811185398042765697278181915054250732038063803663460630206419618530343612283489999130037959747655569454944446676287636009726942228614132598026001171486155697598413504004491299447895954037160373054157162076980598003569311949075353626583299168001478316543667381133485559401022467086477717298696978943477486848300023111793994585507949170648396560080296620242383904651291823899225453803152905909659931625334445507141490190053518476987941787393748820592488443503490511814199852632063619422055983514380235800111694488606283360184674204441281471513202484112465610516863867906195025298511310823093322520659254518345252894624409395317991358136433781789982792971157690543658213791609486068102253613526223546649952145910341586534268651815048072200177866215877201760242612085202315029786618637474611544125153794329118194949939565251004918014345104440956205630739905310537819428918161253668602968889835652886473700117318762636891807916607604890839585213003020711346588450720559065660018931368896736029170861428807322711848934444501832273217233042681074758479096898660030532136537121415897809177614789898703377573713789812921062241475267935217719904120444959389936524006271371920681230367117062974042350462684452361879671968322445617491702356513812835241178180635683356420999324690527312605225873617399527663486884465255879672939276073034873337185900648357814249228429005440602813605884177891515449131591670387765322282244657656865602496734100208532810392281147905220364296505081752816332735825663076449711692685153391023306051287410203925415282182167868901268807213856571027580180446068931567083459790045148282383264198659068899360336170232108651918133037290835469327500121527628056488827165746691658065490580063229782563544281585041587650273671267008093082838872417581892576845989188843873199555471650393113395480172739606160206597192498509420831502896156695143348753295859800145564692113787463461973955462899108572451810606765984315814685434293668807856138797886635515447250850470714944879813281690568847921323212609140449012511751487334957018514964938071919437874867618790232443968679225058947319881883942464754030605564612115115274152314929151031670433039994883788176773157673394390771128956897981625305706650800653729815891641812031305742486700013641044346518624708676647726292376236624841958325030250778032609594342291761034630322758042054090654605663568604488636497957812032742111323753115156585572272229305677715396916856425667963508893245091390539034531950545835912981113298071741576401655042390533856218744684096975048084326124864052664004315416104292354225955859062293562525011148851974067953076711471227934863079838286673104525314266679636429362670078306001154955560239030948900101166799423037062705372307733032439834502572087783874820683138740628128711789737433739217456014247795209166028324209288298309978223667777609689323029071905248939516977625055228055849381514917921207729681584153502822196145634274188185085282960120627418488417181362740885791494650376017458801338259043144825297941289751622376917255998637512112517208224584584291956314058427368722851185155353211319663556528942976425800945809480583906295901457100201731135911976215712058095470630050179959925037588721701124474182492000097568938975499741271705007711183907886963855508240498139992173976008297328806900812003592797612355740919771453301536912461046180354923657077808711681490691577355827751076428834379648925136722708177383571819055417701540380009566315215330989462924461258680771310424218447402855055514836167579841105844043636088597102400651252542860080500710538764537232928762259833099036746966183333275265715690848935812887384469982794970454709318512729918321595912382414202500464152887787422389081158370004287043804142415999420908111626946756845768368742492233460718560769814778206164906568453176723215026061725750069207492550560401672789654075653518011674796467231428303788734343318936044113017910682190914818113877857539861086592249806340986590054921965120060927667999592798528860792170449054696118079503629537429071628943759167948591976039099247412486014205517267061336639192069666286081627764829809275524612722725143579205929774335967887723545008454515500509963624226876371640566870654045456766122813758312389774934322521130466851389466053932518684722090787380417904615978964611084813418762740542183824641033166611975672153137066193276688849683630043182168828969864051872789276330959311202383217498039373735492080990700449026039512046574922341039045793532797082772789725484422249944449872131575884193995945835038595951527122767449822757861894379232570189711996139232095477626271149553218190958597087811611038053052887058248995088829877369650398578473845857748293800105889456022504146966842492079869095436338819201767707577943420007560670307228154368357143420672226213725385247044791754623504980542751237128022375461811426468220229672759041622783692799414859185700315608839383422295138622297067154520778586840462068331697791036388970534081598437655416709336276403443558671030447862860546014101010836802804207991114298601325679119882391350293990641746366702679062826595917724369849659356209033521584700511921582974812358662838595093639992590249532866439472046992873821327792971422057724594433185032621465970693242807271841573265047259285190180863169044753261708802610211417343145383745887634557730214303278971931681620872204641475519510365288790577898380045369407973079580176839509134349724693041543789299029303952665245636100220440758151724884757738755405493388920345387192102763506005182438162991859374332841360069502236154861999216072689936878638174821320524626247715625177796220258575694363560667841838038546066427779218576869958217117633547165816855078840700510156039880424182420394332915647264085608127044973797751097263487912271451124675524422298646179678409585374619918674833197736885165783045643351684533971988646505621994530654781873278935903429620447632134653075935159153487083500929002770213405054337285825256270466384836278855742342920383458938452306228131513935722348901021739807589980268129670153307915121549838687288216001339956273117027197943265443304870109743696682203634373784916082509913689731031118577308482489735104063574814892071262142101101877835138591413864915123624145283726927158890437625546188537238619533030759917724730334129936155251040915994550742431236154529288595589587338783246892224263508889013813049872664519390886440736175338557803147812039054351642344087772975941258688948252887570416141296112749083070527047348271481106664577190046866728096659195857837262998037494576962381242982492000673322935901961579900198989358802819207581030825687194910975511673954791547652536518932563903321899530925199597350700615485561538949816186191408359395379295192778493178858665389617005241513826165919817381256102044207147493500425911249874801832864494175741451818553324156036881270168052310075964849337139780172420858962753126203401433270176695398182863285213768115245374089256262018125627820951199102719568460262431542788342201531890214752945028468919420242754270758211484510019290067282922033254278464317408780315597476616382695736791198773061759401359199473583102643892681022920190838603433108462543811077986948001747475710770582329168991040732955772010073671835791564393372931805055849718408953484905772673849833476607123635667349593697596663185652899294501178915437753552081296541242364343193904054714099132320022285566438965571099228768735661031925215879894144445104129346477251712422673575724964262699368037878381789662793936839890293443653005069983194727741100728345645565281892121193266011062057491255460668115316544875472390336389442401280055759374795086661248831712855548359761031983253532176769600666936092578966691327654058222636483208008967630443649061421002130450080762163179712100606399500958202479576785343464112188008216296865865953145302294504328923197648185934019564017985037011918322565612563936962483147771873249470507907705411664680488518597153265579760657433421246512709751604500380097556976021345149351177975134804110750223971852322025216206029179491435925638206140124070477789655959354096689531436023336317763125347116008723693886807096065587934798235231261888915694395760233707564414604397738296650470014915913147565850061119760810433356019132940665312011218393869172930918892648552705368068685697498107776372096044023004844379517400252145704310605353700190493921320444270310877966539133972486879964680739795350867244834263384299268565387512787400193944890606859095066991061001249071248271714616614454083048656915852018942222809978979000430109280840605343780815280424631029984022819929642094445308452381444604190381512662555173614179094968886548905787931095194429945328074754575697393733069905490627982952077705533663264083025479715431359424169001973665818788703732003677842412711907513357153228382818830987893823126401905237633668142356354487941571155105947012216286884140908002296341792468545487849908276575291714974614666390134564780400008754919450811512165614862405197566482162388085782099381185433356179509163225096902501211562465540197606632344529250533991715253814219851109019978255331220384488164599674201782429968800751401676279680861852232260187311500672767003003064267225215313808943760139688797536471902523170085593778264786841669393712961083792882612101488801680613394378026476076653007149755186408284117892297842174152022945971925567624184582030303627645117351966812182916569284105261056921685847591903625114676714357267810333447149929650260382783265305671767375606398661947588255425328798190534876330118025932447529009784843218945332160484410152785908163002412102859817264182659515039362671933903087911845228960860399238691300601755709370611971360898982222326955195415972534696762546453994653451105011261080422197774557203831223145889265813001549323591652747293637585143674393292651265991141350425622758744054591105171332080772797250083340145869024602298696267956644185936390578891559565094730531902662411611996543259732831619287802192403297530009412354518557593993256728056944292554776056318877875647976936731968241718069431026325077122592948051000453796631304748233192151933393576213797290603908261642333944168986748136779375965309388131719879005481085011123244837180947785925838006328458946631367285287308148505891619864152134772201234972686734551589551199193167886272075402046878273773462753806320472633253502277371860088579220795986193046386659075914759380831681778658705505817369014082612556539784659519848934581761775500806969113577113114690769250224801188635275140208051508707622286134035803114265484075732923117643334296522293068271552786093623638714665311346937315774437524798886286825349893946653754742863064395989992147056494551847460520195965481201394412634636275879316233756371176073310374992558746720831243464014474906472896919111319548413084220356248896455803940428002072512694660143681518074453237697375082183800505458794322849425298499883403195517497177290392927002023995869263050093515300718703009182266490769971163469137043814391808360017325772625685304048452935346635073071632760191917730085670083279325111045298490681439131972200311106847051191709709631688870631116625448343399689063853709812789249349117177277420187597543224295311208403047491296835292957649853442666454329327830049597390541667106224734609905425987790970314751707799087141256766902376882135426363474595765569591511804098377974605432964425967459034885300438561703681109527131900032024035083001513310409521564244438939324550290634470181933836239088335473157125418112357242223226384636251831242542604085972797896581099231214149045332584999408963755010168014409322496642735699908105870638737395653987769081930161935690939402786920745546525419150993911613043567578602455446313837459192033947335321581910082597439606985849267903444304604757304950170033480015443415400248045170854719911801481636313572915922282694704701219785059014642452161755166607962850458959357290208213854184131935147969863225826162103755915633173317284247835459374372705758099713689017280199801217231753115139082028120867628885734352015056796691049789943544504084223804278658924171494751131685086026214456741799923607969138470258926334990960033242853753611263806043467171920046552571619326422926394395631095201132655124044937471405814429087297509951506240324426197081451269059350033990142720289394171189584346885514144130043692229101560735647301835653298926464007403511921569251377410375649807889701157341455710574706382176410134064364038254663183349396292780666323881814325344560478698238541867452623388676482819482693598556243436972299970212801487036280981121562519836631299481998930792301410419855765637088261797835203412822344715968340263318706211099687621851835983586108561997771462213855837962853605644513340432447045412845270077769156303805790638082138286142682896823968690015432701370571023546722549026869328587161109227240814271135617271830708891858197654544791967138935480039584993683863642205111713936697869569845528692723786798606760265291272627587500736782729316109279409053415613545252381237580084300563122652092699495876988116472828375255373460433664148177332564272344548319928621204830881733966633314704966509968296381261678498915523244409177475635712400011531878091632691540416445143808826573489890922235532432687185101774893140952155539411862547256142395639355325093512096673053540685224633842738636740133799476521460442787109297174326915233105550265897739064639574832696907370402099012476210355839131219960724634477610058033224889178614603417073305102510929448904849908353546501592507181875362405592946340408671229965537860242450712131687646220268204686158323902383478774428931537019360516614320332643212794332788710339958847355763834970909201937683530578833585628856594706070447982653769518962128781680391821373383524389652399728844017192308862790875181908850516476686599640585241204367268600048864121185543428946370100182383562422311835903825202766311063841960637341320276080564649255369428054578868930833822191937979006760590853086686269203368957281350378477274586706143511045532162915241638739368339646401223061193892900626841537393812344075527158600773287921192659099157429324186864379485780591013699616602934870171208264578274806666938860455010433438241610546469739307693905864636214150608541689207811239766380109800035295407997140454625752769554202938210330346129917663631354904635132578823783455205666773278476382553145152031930027130505234835029648245813674239946484484366566381519198618119582473804884149046577606488427079859242456882010119928961263797560683370571950775155448807790052776421632153671194986111844723665183222544522000738340292425003757564057564432627003689616721316777174575185344330538957619645672526514920312011078944449573616046980627931672790642424903189771969210617207422821246724014792566714469263759423120417299050884665089068637203955206317822835150507057545729291639686789288053284028216456308256104900175107133200517154195545430450533429071631960526287186160550766865387075556706255149464749664447787531770796118009438039225666387953682817399102087800075982292512490470269621326446971233815274485965143331453731140996109202646287916772248379824662625011448080418572347270130226201353490355427444216628026007955787071867115466225139172648720300795680342641961439616115208921742552329436855259092879196893951027794815205812290539382117618462819851130146571795772439301348137787205931267850316546995328819942250629887692082514237832958881964180979889522546294876222449108641057681549672046683328346440750725236679115076675241448796553083872632105560269271815263936225480582344824552189804705145265658432008454399828228736716096301785972806806286334249144902882802763522118982134053626059860917160892980104107618679839132501414464332960301524023879023888565866703781091441891689790169311461466196808993689149582341836975822622372571938627444529124111973587731451414869431684849329205325390006279615246536005270613210522484596095508991238941884943775021020903762299453606795628345109758308328690610481407649176962489627114750965136855842875646211547013429472019949741273024175640539422341616047440442538221646011485999597573422371371764731789072733358826347099518090956206576720620561826009479650911680473366209395674879437484561480581041635359993127615954188006377449532838862425695802607578785437740830535564774302407848040783606891008766475083221028353158380710614491482990662679338546717799233006373506673070138576247816652308332254872197208141407450667690607772673374325529563192604425602441121197664637038618140258941590574435611343893495231381305359010273349108609603202848550054852020222320097271727983890442957546799197362200438811816722896201118312811727050950708078373836644030182619161649384400301762928147966489146985369245763370463996345163308788417257216847494855391476147015397077141611384200393789106706501807930592529300933990556376805457443391699804163052879209406461508220799166933450472530443999986561259217001797410025222373767172341712504501768216279611938930815861697025801669463599613885137940220034497942091360637346389996542547271527697349988571990237959066862790474345703985491909852633048350313427120948080465152035517354758275669886664252709947186746209623587957070214306529279023805026576346600214535540870027650559980483445384263500257439546024744988705311682871237958579482099750123318964995793770077344377269404878304242579970759159684371908377701557280953144562595059854448810906238074423397791615609844114335086645250512514824005092656463855130065271525344328759476660347026484569998175451440882498656450736305031825135225529380509357142552034457401873251962012571944639777622250992807343596471071461586825672707399440034506685649189783559084424097119076229844111000215664855444191703396169170309884626608033378795392118990893647448308613968845386644015548129725493682293355231302686686604273022962529917429893483786896699371114665108975897890009561615321610242466420372454625875034400427663853054878232708325241329122050415077120233967386402266804724078282530614819197798574725989447215534384306103669886821827909124974479882833934687795729405073176749242124031524650733792486603742292095547778684301931478432333372030604175166479478252041747563553945490648492911611270178593699547801425701495795154229966400671681216412466452065631028496500963340485981408561182884246396619094258006699523607124050084633822084086742968916936149535353306491950030135576281275033068861449709795190646174967019959142347854524119539617494247874327597602585670696854091580613058198154461561512808926092787402059596946174184897002522818427794120790578687634855142495661017371660610105186051088011874676147563475969788300157190052376321554293389095808774605180791175734878361358209712089233522064135548463688666027008448214873812686755457317687573545303242821862100854025329229443250722089769802844238959396287711529693023474693347251169392736932069094621667810196664036431814664979426224748816177948253910029477571608863204864716519000043558496907771461195918114583010234652937198673614528718488251000978612512671858197720517022731833503914747320076089385180798026170354081935016725288486514335754770805263338267295546970584248718479653723819410961358523968917890461491629648783515070343019479464078950746322473495422472102056803988892881523794137010460704887516042766062726533275901947830653740564496242757705483838177109005916481108440296295877112553874607323523909004163536428503705371631049682045838512523759599279416237807242107344855184222150153339612637385931088324727325395996024773171501825071838770079699355455099408743715833124884551646414380335712254417125260415049147900931022633878057325604225373040373455103972479267977452638917699971528430339999656915426808872382831757519794750282853145747183627926114057083364067146428762822197909586824399526133833120483369763345752599199753582199530319857883230922101083451213143364257112951491427184939754834782024798284397998461684120257629177287548111061504154375730529569053984718221848747474777984840565006489634833915812986609206281704154052644998935258354364061116349893382759721112987871948897110646674087075599043140927145553573442955150957692422800969768584531768595367808954282163454053012993130801414715587552360591796848496106545062074203924663113139159151432501320302967769165086644042168299886740669552836551524995870859089154840334732795332477755879850857437515716405287701626372135229335559230245402651048056817666736805365768646209789754188273824261097297558876253683412849980050665758226444687574544952641175008581428176435296559335815662917278859163163761055281153704579636118523860920770970052722112456693448854204107139828627759401724491401319305668325608289160418399589947988759011145631724483475751143885396898426758402614237206652615655494557802757917333118502034088230256937925485309821231556893309042422655428275835317530317920730054127587859217875482743075650610463414456562600367561294989066477619222649457729445341446184367545680311995974983599678230778221952043101397295506481103805057552130662980556831361163901687084164639187839383966672085989141762042693882858221528261894885889825513687488766990564896100609282193381402940210070377273577353574342346609862617548225472597807788268340434052787711686487107135743530803367585704903506092052567879571926573865015102411592585886675083417818354243869972864212301477741136587282874615080458308662713876859224780540576295715845778338065753146365134567147437837346380261615780539396515207188050052276277837454301373017191395491071713460696977600144704068529930071333242650244984607796043727417541077403857667453736144834038701019330182187097519750530120306610441280974347031177672054209046871877171016048721935172876739601192880165569321869028282996026128968696183502983859102205664678520608680960290031971807835978288815841258767857075418057256003798939388589624893804855297595871945348595948192840191671414576713832697897007845905625037442888027975534654676610210477599295817705579197315761960884347031472437278171448417171274029234425248733070005532819743334108654901299885260385285671795981007706873738619630030859657169882725851899460541143130902634954027647698855418592158938014271899346842073213778322975584903539598520648197671309099428078314423466695431807202770244000058052103025619040310454754413928930697214759475553691108248370005455887433808616872416591609335229984931822554214134147146488044460462191389409946507565541520210689214917746148268259365433438438409764923618815192977107800947158871790214752047358804074877056968315062967244955561749262653803608295238596328452696411886944375956259801788434339767543397063755503760594148046536633707204330077857184169195223374912169377138179839817502611145265116789305111231248132047361574466931398943949913875101292923221609401983867522510979527451476808404882982312424722336638385629537557883195078857943189351917974387560424192042841338857497795092546160163288772548398220049147099363533916038892860893005998278295993693002117356716281953683554201085553096974116784618902594225020803263960323978814452640829131250954422335468430038942030346684745284986807417654669775652130619577680336994083693793621721721357692765833323889211745626313667002442126104904268213029014109220499873315645601929090291054269201942223480729800052269801938218390267337036140133149033460433224581456262809055513168878558125278093642416382398059609539550005709917792727049495667879437870151194736925056867085352264658685359955029005135311951870070279237569369883957958250052499434559289696216435175359498822976242692651659077936496760745172658908411975096272252395207353434064675233136717408381340265264145477134295989384762232472994905053829012013431301164567295735349478567589809596059778007456617131248772970245820548603232365955046366065443382942978207270438083058535252401158436616707603573936623578499593839937502642641129858354851318268134777747389019440727881923001781217637466250217959117444764113949885961112714552589499168243904869405834866983697980134791431748642267608912306220738210624370784357949419012037050133522406169252511757835119786675358557938266226726107983232524604418129431244679994638886221383280284382965884194054312813182701487774041968766127800266715174571002677927500194094607976739024100143136734675000967704186409911839890768040620216644413512178257040689064411087024761787182901222339883253060384827990362870673776289657061334231820590766331044043387108381927467075536186099332779909199690769605507498668792994906452821900591136575700485369164172967992017569640712018957246012556759807786110012330427943926447855868017643180983367635781418904353570083366163095088404201673652974647579532605128510728569131429772790915054064914709606321010725513348622578229497582111955719800738955018118964701827475444623982012928911272177274930809898668188607633084284333600612106375877442614292719821192110165051876180131627264476620117841713090481488234157455900339924297941667388007596486791346278336094551867399435986637954856824063631921585763875215084266232758081031911199289999106228643241552050489700750307313892246827594609812534128703007897572582811607140095257889190447374980573519238848658422311004865278237097214902282688367027838890059583176932487011910316064953732364374963926268222986426482700557489659916869794919432541791382063018057928749906390123666164555988684606611880034870492398855051936981404319668972705405258601324426800668405992983350565300097046346143012765554016811222186544710236771618222922878007449036032264228401001332265371131091081401432884611539973120987264744957930575005900133205133798588150721903501612776325788547296114581454502920138105181213699970113587947114082373909974493486677557257380699588767744404440522700337592049098586897183773722007958196352319613926313433145089872877014645514083385239153961635231000987858668680061002740669264624457408488703493485949871159964453948886365962830979838676353570410885391237828667485023127021960373169904886244767738909203828878259652790475002373840402704445029053070521119629041832942185100652206017308596423869102375024406448640059368191157365485335983791803021243613045756903448783825368898583668539665599634490323184577162133078703724782989322784523862177095618419422998562143966831479112912407274839630933184624736329927026190068344327973404550915570369740044421796790349989610910594536893478402532492353303439829229588023940163523097459954203282669541593732501888417921165984260656514076402326202438263606931384978277653545645354534944509011972347192201502621058736968013474333216311575892708242673914609921460037617140572380663683461896876207467602071666780967365812048529121445318151318904707255264357113242524811422463036878178521532526596440378013869227629688470174283425740241914841129440826548889154601721551312943729145127155953611091441809653721070491669535255037063678431800303494422475845230590493679351214129649658833519812689187315625809461978926987589330428121811435888730365617607511078756928370792173782565580458332432781163285084474519435484948795269597328810359947100064994758418361089822061613678754961668482797584655299588396684305954534032117965061763740322802461866405599631132534288792472323079756359734708840695469325723283064503603805532430772061985415070687599462639697861268339031711712579670888519157883605419834248602156518054606529224244900561606700700195674455862718265369856607378420518158833773212853717577681869428651017156337370276758116341572769682687725247631248777930538805748017820311070485387705061337920511050427991690107570267434336704994462646304385700537525060262544646365210053983794463454506561727890129498924517344681222053619989578883821710340334179858610175134668475868464354802905121821120347061107384758677807121323310930056477105358060519293634387544528798259968459587155503747866887928114526415539876306896886823594414288772535934065466034533036381299031765397019290805374611587355847721052899757553144179640488210001148879200419583884664303374838807106974441250110009695505103022524775684350673937432916345344062212977443568482066434929639388223202040770855551488710961525089931042345929781538382814478702239517946590189611945304136862079631656968362818301822931309751879887393888687813823974553911461532154327883175330767586084877097462069024020794007786250240055153112244844269933403504348142828152617088434760032704772824758822192107006593204143571350406787587803321455858563006049994237621053914092161489499529122397113357686924621063334723554540067722134451896834279076615163587829806572739379094499977642452304899801142542247511640520201721062335701917652134844907742345167522670033221997715726728652276683564714280399490462663747516477981602286044892528390545084905273426266935695329273985553259794823821159471446222946110750287093513206044766536428327656906356260234520035782743421618257835652335206665939709905665062774672973153213123643050339402616357286450175731925681993590419690325236627526109498012200319228112427438013540095165608980844500981707416335016468840084849152149877740216644375203562438678868068192913282977184499559758922758730829686825449388515312134553063884618625940689895282923361047057944397061867881330038482743387382088988517766664116872019891197993603821129064942322919774642127259214574782055672674927917301345422856260221983717247454358756161248279780201205402566109837974615105575632031324126389361417547783485623899606089438768843478232454311835003086915670751659324935268800775540050939226317378854541771631083102620670957894659750774830977370654980879505824885616532612547813283322248770826051094647037954789132346746810136313579840040770805220837167417663070623511778738405837949016066287959960543799879737050316607783937431655067303384795595095997752251888940420329456849385284480311878983182547761509160425596666509778686168087687080426937811792524819737678209642135408190997617395763737066535339287390826831742123014139290575195935227915030335685442885273707547716479299270225847251314093355111004078997877820515941816379573717909313436885060102838135493656278219242893384381619696337248577216091330070283014399114071841524233303773412951069759853736611025814557470102200488805918888804121483455529013289941983373779930592898249259982698583618666394786850878020135373966653896270414120990930702445823007611992039006582456356781818647130670700997177031609752420336350984224265669031175688504238052360577731667561517436468008423394129458162918889084414168837775789308227829227843529515691155912921336967060133143928596657310654844247026657322740901155799358836168953856859610555509549574120037752939025005995567908721526898251213592081114826866736739701219058303706065754191574878613654868381382022593820167970837525492958819103918639747261531448864733673317078869792418339356817020551439977936627440859007618336103010272860401735746460440557658948480597953768804155038627588005610336581457553621125312689619838499279731310170549343143739156941088306616858667638296794072701436834115979271204510088063229539761323759246820507377408140530561072607552776739535454813020151380834183910060025018796998293398151035787131196581922445120266488003627398091246906268152018405139540367848517104037836241295567865715204005697067042070514088520339584471613122858396643113088819317420094870019453953377154363729686241770199709720506237428894418710875722916417394971494045337488458776144857038487205313176302252391057159677775029220871377973005575494811651675592065184941496301998813299405925414247158902689184693040490195438812777370773443903880945123223450334210515472065108440855243562290799853263259808549317308277019278170862009826273020457824593853081699369502506733137340244078353647661393293574903160871318212402919125644986960945797257374718444647443851174312665393739693574428042905868851185681777992902680313513007507526622552708211171820852021575993672984122107889729800887374720178138945988732306786868540351285025219499781495940421979500816686863397887306850137304694500299596258004971074458892369856721179514013639814560801178286320276948256516460604403224452664527716072261330280523190609077486364690122022148905570595917717110140344636516507199596775323545795921664068496958403475786157155858979678119704743317890403693524366510744906406690444755575095597352093092409785056179514024319497642843006816152333851739891726567135910935177495045926647397049315297469191741713989870009196532631714135016701129144981659697814578186707793520847601357267109599939883314034987688234471148703729241179822212320876283663280127316930857918618153997921196617697411803256114140155453453387625611543313548102906236562213826226628288804056356063268153946206548022763591953150184564533720289807452211271403225652864087958302899494263263171349347003819199442682236804909266284977404454354872305903887791076180060705713712253709763074849720190893331756357638746536913772092383117316978422273316887677179659669683609519250761320452802976717227854659539713478521246762007630998012012732417692659424530141176593993103130771625713594614042829559404143474325981864560405535563564392612906774017427234088583881563617302937836238041407385358061660305660933544405884912834890273475461665402396598990114611752562013870062430526092408373592144452687314657708821501132237227338749566302673346349858755669461125265162258113523676449855137370809307015507624599098455772828542448392746403680874100165110259852568552943495430100363546683635471329721645555791655167712066766937406976212716325724141640864823608324681646196840029502092339340909877701874890445748425075665814533042860647882007811452040402403991273012758681902217713272187367974515194679219395644178699255615171732802765881815267872698490082807245197625997026005299930330013582354999948370113564901733299729506376756551267260357593532318250665178577353025273830463577606531661456182616776965400361341834294365038386901094623541900174169360268072287228225378521349072071864181410827885288048931731736190227938927936654226622518382372901680986249935242225799539046828856217533396920228256529188882962136099145152045913781138316971080454723378051441370208524397530487574625197666763814702866124243862258858209342804823282045445250986998464736954358365999349206821896932558245741880879036311800803897868063112791000286158228319626172348705860585392615210046933572938523958408407116620562342062368526564490411872893020887002283422433674586032542967152595067913649368967655363590469513720512428688017490294597791954627398956405638940289467741476561890322626196056570809440647857587291223529646250457553600127477896481613321675642201607055234211670625135756915838558207630773078452510402124473202647051618585954291702287207047569700410880368539340312409163611487374478568635506518108901061018543084935936953975675561580318068277225790462136412607919950177122319724980531876290132467559204963818941255634019380682306310988018614129758802682462662638300394754552970226535844230743834048414078753855730851676414627289006086185126561619953752559264077644317393590966580872581825743190642629733514403198736835222672813267753985920366078273854983080354208374877175986039927849275030483179588314115512973112044011903394765708580886645862979973886097209507606992964176675265146192918380503899769680085788298869748873627631145046034201904423319867667172973870621149535105619113260613413019385277676235168826534700487830902370966476703600749601401540845384833735562093464631461306551067307787066623790006784557506636762987198539315879370588874580051524966330330842340779204637988548619814453573759611534796221050966463629405783096206357008042758987305994562779703816132455381165555729371633565333593300432486924212727525166172190521010662376012071882134868470466961104156796717464888744061326691550626300234814790864599561830691639615748652974692369062737353441669921462441880949835990570455436415353308389291266401155146694310315124830724233076908058858516664531061674012053925063323989310615696226010152740320192400425221937321424187122444658190720624684817894644083202008633322803217542705152453637951710409902713598930024327159359567530208468357804069003919166588799964535480908995242731096636682539079248633245128791265370196543483048737161401830033936775198524467989008591647790876768271157348960915344458726976223797305377186706875337649891823681452813792706550701075316481549602107484209871265322390793001423228578747277924846742385059650473194884527373484873592145711473793462907158864401905867909315922687506634636088471336944393788148352612935001143234540784675284778539657849759119279330881212964624501782152708250001362500347723197178346419189189827864129063550633535854948359343452964870887266295765817545436058999238262930064085330175709921996270889237974163374920027232503177447831055784441584834170244259621881911987223903694709987238999570561796449637097522637257093683987940586548006846827500872051395484403880762778698894245314673841462235904994492742446987190255782643997091959224860462812098706151592083440239084814395700879715148264712454059868348603079274639150638007154705337590729586730813162441846146139595088328005206202405103639840080576013955308133046283516003815339019999653561463424723861498117308685715167700268641196006182592320517001404868475046036504570118515568075882653120864151466642339970027300957370775373551121183759202211318388137631612342824443123111772406984990566225174603651406353539913537828004417986498934397149516207883499749943502173754257912446581459405756052785608075647121900149659615408998247588383881386389214007923248111516534165497508816212370926943294708251479073721004912128941654432731296783148120906860878643404176458638642634720290945566115418723710922603619032815064824780186730068964264601168075627814282764013448527766467963026494046457641736872910033632314412503860702684470334525975813594793542207812799049354682535902389685278663016185952030856018622657974319704129161167025340892541895615404102976837413794052369080342513088165427503853405339577588143637207949632507238323246882908559673762597142917520525434240354163759703403824650397657570467479590103348878628188914788377267262570289568919360358245233033592219687560200857637284854017003776188281634466079361754550546478891862272257553783331323127245807827289519438665580033286252132031770185559267652092580832472002226578187019050274764778980015020771656191466983919207158689845729236409821452828957682240832303111275903552009932123832391608174554310535450491262603202964807069273598011996447169837638696252349293099252261831148230637845912138208834227192821556838672765104491200550064360466151820404870634506982179685273534454625165419131322824980114010786666818775966768188681709589224782629718104447404760036807760853157720134961256443641629156676837733661752903551789261643652202135284876296919254767354352961901094539779586113747826290890665765380337278356454139763867398280882458294693910391067814896473273101734082023516037439510371968668759117905817726736932062895719705418980864295450639579501449847606671275618445272524756678104963338338740696249499710779672251253679887858324174732038646451253798736444722932665877759964020517408506154731180362152180446586888410259758582106775613957937276429904454341696260648486695306546242539480923257750600506410871986677462058737518964855991272352010103800075670569009484439698648308777064482018504335347153182081640272295758159199744162118097514446287800473602172266006303436594067949976139043686411828465294860888925244737908710892342544945986660407915013028882503313391392595875630855588994073254607367714771608608899762508227107939701474715453165198289360156517127399456340136044074399828746115006847434839575873509115132676901285942129198008029640261403973527368956201853414850957534845401219545279793103876714766426136085959094328419318853641200015068604200559128859827901383947541979090640815841749612304420333604636794054564062800634657255837221769444944710226817251999547763074960914275813015347785336828308044014160242155965943791127017397087353780669073292459347026839937701365996496359629612827790961882361159023022008902339790405282683263896173532057425600662695762230825244527823791993461778393985855700205155079262608165768282131132698305852919411906065551944358340764107721223791314261366177765613059156707768916269770304227520761574085037022990421006998823116912556539027448327739715512532609527854090405763111698437668778573513543006158952808519461459514531180762392358610497509575056182268752706761059196454861206816335803144433153907375462962081050908395017751337176686307633908444734955729879568457044909897288257638659533139260811037826778120764471395172486057396050558190716147826719497950222030989567582188922877109536572541394176165754846394117603813990808151029762982947820485874898327299156249812807223686740913496693102086943766963023201127542899578706264949315973897342381224420894202058537759351379408511041849479921644753456243872188062665915872327961748469984804286749496153635095011662379043427766277751247589359076269444111424891294805153320004003610486660651888153896337617050920892692801173583572257563206885262515296281598576914128453312973661957569936097268402036586267465983500333839015033797808388512809022693338997111516910012757040298012137194498418408777913105039028479622824948096846030176240061130804358273791660643096384264188979327670923696898766858585591745857702653803896151928081698891031759149611897045808401477679270813472435643586372085618338705151570562998772429398962214030533197434671172157819429660243256896220945682555975894871610574444968848471131518226723944858866984894386128031221222015245470254439620733364641834094035812890703011003886699966316564888345376877207856492037859625839608021830543238446851695916411692103307135590204934422017856480458697015599419627727708779181847047964110387610066478410682228061268973204077347587726580065822072399696282980944163449483595685562358050230571125721892209127878618180667531848202222376419867773018212799403999625676693602414856331840527452289842894791477661985062636329513609480838298026599550905066290463533225118901238748504268913398612873015783619498294591650221771170806766287777003303277497643357695649570232938731418392253743066603620863929469834967321169738200376386347041554947756481308455609706508229636236757258707503524791588150735559779069783370473365851196902475614984679129222546888805968579065478350613756715995268539422866545251704271888578678117896889019763680317719366291608446191802852657516542436258766621664750572817581005684065884395694636675058093596387057012753810324924369421998689781233022415492725040104331407960169752455312077605979114314901172469129644678761283984119615867748082984637704197035095656189181445394554717370762996663408823524122989060755704147499478810274389340205385691652756129320644039144453700455053511781437660763295779241593707017970142269203978803787624814246073324247882087040555154497022155764843144721273538733984774707495052998383900971560516235400914025804481666647490516124294406019879156946266321249817261330246076882057078259739797613889414861653554304904517813331860329471606673289819062207107230959651250482633065435122892968428660316031532879760108457479232393137647124185976620045292268584579864813048725193163739253882848002893384781169873305400714266737246568717147389537424669644898194024321244646481205847331939231170885979729546890636246003720945474613911625870648990489331348954060045662662186954953029692001223497704262142006854818108760348329389698330192368831476515903070100146154417910759111186245388056547317624523719019856154682511329391597371588830173349674281743985206235342481479615116023439778536880554203811687260181337357670192456967945866813276199637563395226991163685595504420456165945778783032555433703561218959980986537056291680220235849350885380092821343959822840131948330563022634941522887119845031831088794302569333856970282259895653678194738382433384588218392869365092482515394556596414164833756806928568314783540881449627045853487311464053480937797517292450961442833149172478998522466734051282911746242608316562485891630545724348337903373767186210708497888173335255739490237701669340196075611640146554115455150259448813372130014157324607220409010195914047520552542355829006492733066370140682566928727125881021018901382138095628146792188448722342258929157954133338759846583266354893468971533816378452526056173226571862768409747194075036242261444405836353176498045327404277481077290543633323737220343230747975860708647192193011661653876458369047753414791261180895393032327200674905781948222452361963931189405046143982464702461864713659314779583218883376273968874707224675297106970524323403968921253465722870540216633298293607582236701224473060571814525835493624530993355927842267723426367319160532889736441933710734382903465074305032856554006747299878595778928042910413047175480301936222566076394703767715612130679961264094393246225551733267837501381682446250666587969031861282704413876809164081276710045374962439638872444491912110755115554611355729156062676256103524625601108920122103296217550741666446703621941378453444671208567286356337666779661994207989083579254698122508629352084003814709899292207462339949585823869145074897674112183209638727759549690815532078385411501488912625166851747128065198039701585691543529848477154304411472712427568191176473947960203149846948647070661110435854161587840233842544768960117880762900624192801698505026066814309845419359672607061261613389994526953495391657039822951902094079935367936767091146484490949258116839587926194828392576218075239658388719311855970337368890081782800535733015467877473407846250807926595536944802077546397688347304811264420760561733735532484925579166007030760022141597107063977712168386439497521836462705307936357781238355445916680601866846403533029410999867128941134113985339862136850349575099874142528600524157528561746269141406337152733794291109943465486531039148317446962844573288112543434518319537818146592788869481900532991124020996369212985773710356962939854645252094198638257193571174580839248504377748735101205504465046628951642526592761187831317267079470274721414243610865641003973609004654563046564866646143250545380710060182045361175994067050691169992810921907035925077784894993941804455398884780706518735370385797854807469078931770679574855836874059402048668600605991514061312285841248231109501817783891811037760401656186858072705915617649693936486537647071453945435028277644343824217173170042149371577457308448597914167047800392947385995689439428274114259236558503735511466963909566955289684717637253518112782416689166152536939489241712939106575432790279507888143212012045710369691245372647040491142477766079977544580575834394354632502463321701397403663798339622512542278372691453417439150769227406991786564035409546762911182751536186788217512280372605361945248416952109095606030549242455166393095234700312710910166589298558465936018300937795964886094344531657645064351403602696755137716294030952179642803853034564434947909222685127826643619637286784581846486597184129364814061008353469916036406056763764798095473577258566463194422434467011692191811828714946814101640400889334219751064632574205953542060575535954684774704132968357414987411007196527492976041949232612192883100247034564336756882448279500356256165248964948864573635984010405596288060123100690122892247187093533786651701629243708995980131871286334693271440840664658178256720812547953106898554483865813968439561492748154754315956260033545724304663661447738170816469369054963755101268923265606761077298151947122670098458322748657264535083813979906493044708247544293936127636212664264708254185619556555281577384650013145277633321469525493525110155796150926950128130532423636500120018974296133440373744021684880365431017300397841455994902113279345304401072000435844918353233325533956403077849365861415044462795700503920660968638300965117628697592889073369405940651551819325576019707992295151431163953210845474335122817450097325417401102495439147005180406477015760923119223340606768474563532271148940876704068267502822897320473856321157271286757807353821799117669294288954583994915662799458219498555935546971748676539974025973592372080442388907506416812856829948331405906475086121290714782161026031067627351478217291167837435095360831053606498918414051222869658504480469239094593349293543080665097653855984121862297429246818967075034318893928038791798332603406899695551879470722151622711096408020653408137774016896138994310075004942365352962341451311277745234205222327343044267290744172031467577449630540092488863915614953193083946883116234042767265066277835042277011852775501029528609815437565392262214637105718738574977816275105009593316848301430600766485718486837338349260981163272008844197717037849578052108457314354777413913707047422021348397180522129377308226234598315596616898223197390443200269228871551235701176078872307035772519722459369540954502499549901674285166417569365156434301466111272176708758094240375644517890355109497947405040395958174417347181663346559321544292948070827899155829448773012283162711809649836384381072921406139996697259260556672578013001452615637113427650368113438584565977153575075437418700135690541339940325750641699106719421826757815170415013094746468316492038967770611036397794910185967321259679325356692410311361900778891025860721104449710898086682519491975050311728665363706346529577644338987516437819532133741281035325135968922015173396050851365930336184334503513684516700314510786118799317565708046381953109304239686067996528300577230825878196501113112409778340226557503351509479999027214440924682071412887398852882829881218314443785402110044830409068154952531735884093043435189429449997109531834567596091642861566704342415860350062420314127659216229889988664247983710174528277985294858911636462320194088431458607964052295633676323612152139533390834563126283492998175473158668886899966116586404101364259478435136426947505965102046402057563745148027221136331153447952600385188070658451790573561855757282274700965725769721179208413143601520114241211920469862213060128422877000768607502012346676293084246931449753336248743816700910408532070534156695472615728562160271501986143929891057954564707959895734828334672408643394971471562283669474741904708152896793988305058902480402403078849327454666586711937015899546905806153389938939250508902702552663953389414236414116633412754788526106017085243777069176473240044342561086025365044904719380858341552277581414166484244260104853588399257694417458301919532518539644416207960057119058396521693542701312383406694394178588849894494947791572416302027532290974842902068410155817175405439750594706652096070130623007365017933189532078793168837097985757033747256128633883838992014375857597617968500740143871650742415748262054340731803478220252898308527290346617635319207408036248383522531119127753010602808917220136148547401858450961187575705076488139060951387667507358598829295007516669521337200852445178092673662789020949489003914280137756566087806538875104402561878534298473450501975000305126923281056895694569637881385876231115332755358359337172908680532699495715052247838128322584733596014212676614849092201229410467311167291653376081668309382339056958038975577786090081887415452673858520775303099890372681856439410326994827006552177737722527346137046183271440282345564335456162407058382998248740474754915417623032351008659367362464417689211894271827943525142935932434121912950067747969224466808014884366944169080904485774570417851585968971115957463517761821772128087169049376064509717886786010045977424236364208830599270292547109310356570917429164493390049563172808384353013234251026947550582885986335038385716784446206055246416989007830933149742211355501537057923699102352365929349034799952715244817452953465393409861215307513132855603730516874752116501646611938643835216236680888139901846562515913272920179027786138643816926876837422257510206305218090167422511142778255398805509581129805587684627078078165036959018057685915903935175864296454629786127869807053249000177977135707738125433635657306242539598787756081481409399433838458819693918832051661678747004929216819196117136731810345962360924596172044184272358991502405999567551519961395805797203295531759378642582102198838503630480150887720548978737398306431609952391697672359131709429251040079490880033694095356609073231611706239502383575372934381349441485768913150972104433730381831608209555714336373130615190270534934880227665070602390942765915481128216036461085057170555859326456855951464063527539974049739926708893936539565591505487411947805051577797905359227480535999551146801787729993028922901918157397110404158429371900156006613985818320072106928516859413833808030821981470341870904452668093333958805470023063755283415637281110816614333697871155833929599297173345448643642001677498599209480769792598289095641803604151389905054975371250756327089993236543840627423726963746186159638902928187003767908622064048117994791120938340812404203388908965140542218337040912604891770604908567685736460512637206234301363523050302905284733054596238573694176000778190930522230698312644337617983449804687056302486417015134229038719299176685724483864854421981751040747509014652287372892396769571966221991643163432464055467864297733915448511158328522488356308414161148251287004943495196438210057239205501867714884213756832715029832835127707781450445957839251250873036215483423374763133009941750642135784299964329971587226818648094635310032409361991568784736893259778580526270743769409390349546610713216775402911143402133387790441414583035243401290276944009933494390875400849120561451429629284862161199640464463558497846275122106252661158574958729918477016378230838927910479121675718794428902704786101796306324529167163233875221821814640491846392315271332486870036004650570401632685086186836366797365281744505579783169138780638212399629555170445536064054026012137081272050867647154386070387284664718374849937964279062021928673095435341233149149721709860138442459928181284700279357538604152918271897203776135043975736939683818701844072341410571374038950572530307282124227806438275922133462111261492018882991020597406014502931037869835624981756249705829619920762508039302514804884138143956096918172691630224362212071691739732198412729839753334611293674598052863902917838177459784315272153374254092119755567170408451097119333342267567020265384984661705233569265218029099317490501463847524643781964241741428330335441625067246589981470767520609821302857110766016484554132979088712960000069605544586382546075605671375754053142877885127379767347291426450976295575325459677870007220729994770309881533246361057415453843771212879127332548906540850589262604801576679884092488411777319530521617142177235102363709755137293232352304423555087526433240370672899112727506039481373323224516493575358047751168081022834160183329982448614168971462133851556658861836218690663246228575538949530028599109724949373348838776988533228753101077589338306296254253411988489843010824461902626846865109731005310604884490583443072778339458554523111754788542608171760114299452101037664351591817886344242474471487913005792526564122594747194897867600783923875983790970043883616398190060051547245725502875859145489552116952869202517658054319530240054423920140347877192467858232681069249121730505836668468202074607996201715746257690176135923968474542959793705081491317958131187753199738703584125182533052956825329771136676547654693932864492521573071393210807733006031772034215233476231663236877512315226758337477753104857685648158372681078016891483679086300559672747692306543178785707255187661766906297376021700715876762929381622980187540227768926660075753167387989019423926092016916686134466291076135630760649371103065469003365336430289142912251172367823823796667730663459951577955160557559423840461468259861645689801428217440587373507086037348410728176019981830636893390548007542987937348835046611298107895100152332956728550602680486968307366267084813282911035932076331611624260676004384346632273926722405145836961780565736709142403822101229445196977407989143713024567751115664330409068796381229756110641457020218870168428196399532031386200430690557373876578895930586101944961950533035544494050750782954249611324421894385707354290824069023577205134985189894506936785583329607092975590192009371534186304361783550208244475945585852570983981230224619610233049031337036949981391562377560840158923956623107269540175476084876087471253561286455910680742627372467542643823490811707850557355066511907991211076680521455456277723998712741377384953770867397389980654622816850427079080268009281339172988560637899931985052842853858967387509714339698777809937583511939632601596143997951329145637393615536406685893077835541593562509235824375275658839233218651388164720660488228343381766756030281122067627279160946653645615982951929895594666403188621210498583766788925259118812369743258622254984273334260314528347758630288519698908567010789486857708402931677971799010269354932447135547703401471563380882277043301607782779638423967303997418405124709429853898187411655952304597588153820417775494039215221914088685089288131902222437571082842307932793361728342220797894061294662596323115641537883620726590355120197627425328502431135451992545638924227573103080271791468360504755201338606678856840818249889556554323118630014197961374653864679700580929433066941475761583414956038685839839526585069084378148016284613788120258285148197684353831009653583213824990975343090747977525119963249683914107374982621304979741303858071822306853359087974439659339723844919307894253294011739003853926662805035874794159833889054460220949220015337748631979221186931659440534026237372176717192544790583729192118035204944319132130433649843392157485623760718440595002212996323614228304914817562364938606916999853482185918008405779498460893056427872149798679897670377192593083714664345302048997321288129367766416898797057505049395145603626601327970669636909396375333045822979728866127254361397432275247870349685184721391199362179235093446591537926877254161638466299545154826439072452517452553403776238408774968320257061693858169909179277683032898231765310520359864067282212697393973210746448718101681606954537291093745250057839388548153672172898429999098280149835286796770070888559025819049393346151737873442159670549186425219408776718156321508660513244907807712835267322883480968543950772109389299377250320649944216187095369818460459674852056351578298271639848877534313488527589478791913447708155808417815638458604152008466570374386034480645460825790268828428580399255510799888659354876978383015358056480774123053017897352011993969810781827795558787027968190045122129355375550989186068226224872404247913720491984071350639887213937982993479139538346554985657480190952885808026377516468667073760361305640349560053329855194721585849926156347369275578512406755443825802120449081964610226537301371767803126875499814180258531178814196936629628821399647889650487783347327385385220214626555301596010677609251719483968759536663641558854150041107514472006796975223298654733494926636213173844130122714169341469509330137554065188138818862323353180211619052908409955499966420795005564348800879679425836523078501841531843895752504673438812066279059331568200288048241778620839467239072010442103619432962989537201238745263950247118060294802324415450567533927396921838187738878401737741488293794434086546033813234243462142759818367910050687215361435464314837888015932555814460064375037351778681473384775058631600142910684768924335530662916228257679410862160353835746673148465731832660549016696296051150700005824621227734117991806259016336264139893595767619472474307062617147037831822871737132662678653838169621684913368597540457193480136672295589413701395938361214222728388185605265214160336389710106215303030144575196734044009320642814452634276664243605486714915823015451686269149539423979629173767036989356876223131456821556517329070425142041262410935138574543328601054343623915593203616689743666805871755299626395044102489259073426074674331174894293370747072601346011851082500189299775918133066022776553075592326078346615825533790572328509713991682581987765086994888540061062908120029580004235957886542913676607414818188644802252025964466805324757015677020806155559229833969771899318054740717115095165368409007913579634473169258409774170248409392968880757932139430352027883361140907663457784696981973515372386856530489705168703402490559762246206710313868576717513991397531890628172368528054014909810698372266396162205850534875251307796189143026806499628690593647319762455648616424873071341040402137411408141292337781932828022785787628231073924226457041219852832598338005308170075970846146606505770588278315658041175554265875433601965968934406807012145879211345152987938561066494371428682497502672950162512389777037466127704105923431362783747143610037549253085133938021940037415157886017881940093207413965794645260123950316734613234194812115227626775988902951263795126982086813522246617651276021619028179073221004058447165911136572367437888418506660615369286766082891717286734559257197171206621074954827163631269982339994722856631594515607319963388858092141633598363179164050523942799142806741871541557267122253182418046861041694628764978628225062308126671435853261121579657398882350673034321300712210001717517190188926646629224313760355275346945543730375054706261313487250320840799445110870552287841847718044669232819468711906814170865614324011876884929158315106214887805131234885436951277488842491266177356266108299814431571102730164799107275197375026025927700027997146282655139788487739250519183429650736256907793372408654903059058039882144811776542547839395237203850954959212190847462074832947421476685910615756579100429259062112333391726667091048379477652040885777183799015130867233702526959363886500854777529400731610743493828744140545105862730696159659405846222919053688266679097144327823012087358752816176922048923485032327767877959968256851297389636613035255073004308572034621410411870896627033822252889844248143704847569370970452027130457913184205315820293337577916766581316330943725806603150715715754515907395555564938219037268446663397077048336215077052402748131911569867997860825572321172287816961319493741045487192639156647653631713637700673341600231657763686332440269744788616401679569492087233522521367710413692378532335215989603761955440915650624914626331221509719352001037245168508700706868853955918177774088217681150980824252894057807424910289889630548709774694366844185727461237261863945598991722924227072827291997372736481802556993869754987448046146926001433501941079619010030648950215109290656000186055610974739400085218749988709126500038573949382888641123206718194737952261552858927447969209053298562415712789937982812458113348634306218076150306412882373488680868503523752541354534951931106003131919493827854264326579032731590958011996417821223168177206702953536064586022000278441102003757388926695782630739507775195406899686640146273427728961979288918871209030921584804202623089208551291980021110177772216653782447469922360861184855671718089308437394302016774891935072217607616869477925883835819919955212224034896166553095344313181051333369120486313773824318422715203794978621033973157545146223363640579190440409164991940295671753089480265277055620005499176605492016472111301579280457099071955123268061193102015903265356154579068314854070619227019210229842845052559911343883983356642102484736397824696489367821316356068678063144605148585287306179539426002159298815484263863697865321848868547397107481241063456343868423065031396217018950608533570888317448497261149955425448026555034944802460141997407789480826382252509950331583229124552323937436818794159601991794247615608183795357018890939488076925168891369620928525297637361961925663980975257941133706131251162169858645968267549675403384400618952535151358129438803590701714049951573016968792393204261619958930682816897958156978576427244334700764124120736697503675565110531985118637502219266623709417079392912716603666280513644682974665277030591029312132653347598804498886849135485388274103369380948208702375009048981660193625705268231853420249010610172389205575895761350771054568021606731363223941852087741099296627148960079329711545966778272090888962745391026937192094573147755453176635024939994097539205242194139261158702065454291817889488039606224378516496769454148634968227160862364519800759703498785732226781031983180060931226212594057940506695997227471581280899832323428806100065785648128289033950976400052028584091415497505349933864663895339243239367345655463830619337250026228236901942678462346846342787136820501950852474959076835924952279128666844391563202076808517033658469747305552114740625852590830624628792487570961523411439616398211220363353722258249752178704134623014804232100833792469259557585473930072269512185479276011400152926467011640686448977224365267295712789241598263328455461412125742383723721789896293190152708645198431255295917719478125172718220534564824397710629462086550630115528587762700035131230071074103646043463184565975255815205261866250695035244516718950949996372190783554021472718632776079998408611836376231842028371668072644416487750584055136791239734419828055915715434619157403136845868591912472779725495487095178045797170356649650400932424458775711579152224260116670919486645126860712969263286826738267086602214973471316724287779634525226672883608072772239298276878248480657919425416421308128681401204807103767143509750649476770027281905128261115710931125948349319966272554928059116961514193184372869553988817931581799120391014148844205207382654813608845280368974644459872871534247461645196540759686213914066582419979302708065783218766304086037771067283021458389102111727072643589944449866814022449600810401903129257423263575762839112790540235569229417552955635873948643802634755363070836902079983856144408707636239249100432916521434091445544424734805151550799203891360043913722717059510000169638870131177213694879818775801602090688301459707313725782741873664509683771373669108330279058651574315483701479879193315190605732088879686304374000477302940300311894465200353527094275732782802356835476003993173627081159248009696540671791253161828429565788811313545080864644595098556290738390317397702582191245901811836287390849283894532842691657088128739553926398497786507554075316461820238555510971459748280653768652541718392644150331092106753714749654734856370931845369930886990117359980808873838657188758947166484501842676574468058943258539654129189539983125015441223847476659793258184436932754774227586003276804683945947694779046160352704127163461988729060802724888690775362139435177039063169550053900391384976893806039505067272251658150881564381833357628411380584996242328448510161802025995041644636839245807564666424339967992231971987324672991268294311309693960883412218093357600612128726498019917476215136099065506958055524579791152577125736330602395480941455314098293671957390378329475571438866329404096562241197369847691355690862646692848390857940740194797435863184248083467850054088199602825406212959155510129437241079743175633849106457883241383369624168341041043455324927691410949805850832735837559206854965476068455414787000085427914176716240979163101466470157045021990097586069631517070014395786345368156795031983428292868537835686482529568700759730093243104398161615391395478343417058581590915431530027033492319008442247042465009054253348480052989625182293492956903360490564495403763193707347094257701311430121098423022717000385801942757020242405795003128954398618020982624172464409918250619633656810114198412985467889495787774426440038114580413727836658137244243141039189690165772799659241597155364332862332758932426058653309647460903674301513752855719513141901208629275247104186561254521268964617271323855093733796359220733721942931558796349677813214641855542613077384876266126201265606072105536798151722015617707899816777775303387118337497082267034999061383414198634136563690533593461092926064504098874441563967271973897213805421819188971133397374995583143989947203210342519999268664441300712716867865653433766118252818311686568067701359290303867952216827014085379902198142005683160323749850631086510112439342745011879149288521330997465296667719417226116030951428197888943689397236959482048755201043043420738727428579166087324739319249477166500020393976521346687963291323512360632127169616364977069597708103622790651509465784103690389451423696484265989308791168510537888628533278864229283296835746002785877173598837277412208627000341664904035819177826525368253591612084840144690625611707930206499815447408214358384937572443386740563033358779296442847034134768647907403704015086572250802887070334842115580584042214880335321583246176064186090680695478402305386275179030115320958033675015387932006621963427593373310268766743172984723772481727683300530419541439299440283311198053706572595946534178089396633741657820728801401714710471452861273249106928654267724320891122915852284338130152391367339051267183190968630260048989950142762684509970909784560805434823509501030051956141566739604125140196819700665988566140395772728574196854292849546315444940820500351661676473687994433313194039416353978596026650265160087412147580372452195673802475215787099921845139320283213639027306741575290092148998147992675987835481912415302033724401838069737305569910142410577313981723586747491045107835809557007103010493551003285012240841599800350332684943721507294177166029517434100535144320217993310843875051865561970956109153054823254553341138530739622671117537362603591197607829371251617895090086223449897147630991143899825292234354638953550978610822251911734755153011886188909962503359085455433342035835792213144010890420109909473004012296883116456757208385126858293037229082778505781845272009551916090739530139195421979448587110451360962251656410042477571044819792269031115821273229641800355638217649442103715910768026748471919508086565663052168928718192333113654188803533195881254633633532583744937437530421835157352418117739963135183147102028111769371447746322429239711714481022985064276290956319656570706585110253924219704705611363585711565756852138368316791751806513998809815053579532404772656690818670292800802845805003669480854016385617637581882825923115598503574329796439963399833383018014625136208781217851881989191905714875366554990760129490141577380714240653384424414513132755312301824711730933400294578739976627633055474522741348668131546605668261647733785031121901814886105125622506826615572510212268266521993656865434962094412473515542536917241152706435934617516808480711012178304641444705915972517263929243953070018095588506268129421152894117839674902790878462291465630366686165505267353031639334209761230427619208172588548761624457770579820184133622969064103160851513698384313767336793494305224489624652285607368268042472911819687677929750205499504148590393491798132618409327808122648951846846841459660098877927013507700404716454638395732234027135773307017146518830545112427880298442835013191507849530954008221129570545805530369278775405660693603550948250630566711246714479084480928467466227179015410595021685759171612587520033406220793850830710223980932924210716269925373931549918957176190882676726709621542020513239080478934239137423350317179808578907294200619094898974586706988474900468864627698338779624285095531032616420799952793908654664934479279537507925163523556528789539126426196500002146605976381535855889443132684987605216328993990133280464205242542954431856765841915483927634615479522841446206568874073802239575660635154343867447489892648721778109871985830081354425166451661902583813492230902623122618032979999360990022372168171217819016289606647660158367650144265121900128665096317527066835467224369686938046027049932097365789026671631427024986882956244345752113272174137967272001708710661419602416322092237734474741784555284670496924816327045250464441256037051449255592198241605651327707851884820665678576798796420629511495919439851511939144261668836854997687372596952625854716215489055373539420773939061199310149440165924569389709290279870329404498211252141632125445494839498652421462902165839810659406982084365607962193945058544983074468882036539723654352663892410807519959128007989974149492440955023774732969725413431379002894726589099196404084613641459989553140024068601114482057843525542314009774497615519526259654079605741715033568336395523711195495654543270884289427824381465902556220038493694225214956845555518835294533763923865427766518390705438337204747221658279824234966731627444470779391487814399400801109009651973619323035598378123067557635956864678120804962181310726394380699216927715831644752252745876685740826235556740978130811438284420747608020559291271605230261381724961960815932508764350870429351116316313142603013513162471693288316364708712262994012241245280164693619504934679153757527374559211663571455504269236816578262935598936485558326328058746601074284710270280636223671447790358932946710148978060723045533173315070273690754669367752867321624655258614695860194527537276113019140615907760295971734471153253273979936857568013487614036544486965503379164418832172376904781288465790357226867014360514711233264705083543838426574884447747116968058061907539240696193675710560816846081014995291112576519440142188251013298020833545907372049109517275936921804579980574553994613967296192243250282531631143008419739404806916662028087617310932165733187606371650973137805076911695938321594061579827903426750228653559621258344746931031526192092363069634497775173832149004408247638274425689790623938816812527201765709991449858523254176138976098542149873443366622298682310963763071481888988190359427894974071077500240857232756909840773212988059946646645856930324080465429330241773930511728789582584136309165562649342879452020392607651165229251773844549163178244808550745390281434018206172867346977424429349284047435825828412922492675909380114449393870959731699707528986802031357347019483413012115760822248729447091036488336666890885370095776310017920089789897538981479010900912008573145733135448054520396157411615315049181718000046040002354179991707854565304973002032010946427337967443907875345243846321637632680020924603023812108389675167157574609150271322603676056891897750574815353069731953934946927813941125880251865195101600324200359481578329636184779349668820921175856671709188410948811934050673436612820031902093534601214341629566957251186482324283939558045268572525952782532478021133479528389185471071440752995586569125155769601094897179446091617403190018322220675189293855206809147295195142454741772766037630940887133174079399590867213730435913755793864728357974001629009669532059805326705943206184379961294082672407997441698429945057319753959000243247420965496272544765858904015084094908502134238193467168153507281140440765066192391051255931267886223155217071890305888934282258519572068911100976253985062716673005983105646196176358516905707029185113268654014527631414233594580361412197319817138396507090841815522486680066810184241811402056969442490976491964398651676169464056562833838065873403271840334121732920135323716719572192422234008902682670414671849062854322358123639835190326832100931309071183136021566539019340979202866661238286005183102976695420948792584435402280441012196027647552169080119236271341748236722877865144196300750485980440948613904977572333729787045694506220384686396229534622901605950875791417783264698610379203442804494657385276743866865157062695836380923958383851817816719924035808532071573316452479587401814290137525482493029918220659352475391917215586863274805106980555664205630076098796940263128978650763263665822910393182456433693995710315276334366736731912936318035645269627677553161362096888629151450040546349977855178099931348529004357022955823690406233032333361195103890753772922649395254207061242995638661596393055404483941104030906351261785123748019679277925687364111305983113104455403607133325127153011210202040071304569069177228459115366427488918215867871087315446959401788374242021398940697613643637291096866957266071146047673061781941388050879989653368715460213849690641783038582337203005807769485227353913315852674399117312849491312894767964306928698858356384642816548350318373383534975175980926945034773633330826698388661714919380979870374704685577316163425960322373603285196111291299234587919720302764496309612200780634501254908972556069042951689244340244047923308558958815026707005548023309071136551146913743009307802835560149472438627709792008293107506034916108734821265579153456414237556599637051685305237790242689945612999214391452050660324849002735027632669631044093440989408738514692752297659315053882084343578774750555385693688301681511989582529824399542963232198999269828222270335173119086774158025301744600001972519527284088261383472354549391594456615549855157456122181466868328661798178879962776369497270485656363240007898850464993324059377052582007023045986738968442744016140170082778033870772096698273569075615622723695969928339627628401760792489921667117968977951905665229145899667040981610894200164804383848644844002424526716678407892995674217592239213713886339061781337143882593977991426459784843221457679979057954906301983131194960287793825831902004469722321950814150995757707010652218974254486990959938996839587684412490715418195244533840564732370006772576985234379155487191140724499712780990030422630241616553934458421055593703906429793091080246192448755418285321467824573708695869622111323374371752516874960018481708386243985260175549262398743300904572658479678696844477069086049349488263297157017492888481963813183514989371599109826709602733156478773721753753836284783945707219760304422371188733259479032782736832938519196052275018655109823318259762617504699765833533747120920587377266836966760544364746698276286827017050152996805531882614765055430689017137366075545284061687701139043433978353505315200375759175638595711756859070851322442567958472366383580167036487138944785342281127210453410396378670978213970048680827193061977767066580115138704278690650164755443831022830446282400183322207640059830934215105006340865056568743232710715166579664443350338103835934936940676801870262989891793294773099725966904117731580565269607312903982544052753155472248561185120017392570496017935642657424807290288782661992737715667840150556529228311112919138931399841758592514066877145214282946954005724903808597626531709581297270206682504793617454170117937602025593876062814940133349622655780532615553437133360755089275920627418481564742503735983088387301197371364136942589957342887827774789643744278157211702130401848017270754667425396092868900266846841616713668148164538652311935337200701877982177096714478697363980125933849487266146701308134354334696606438550644566268584948893076914008579702345987190070848120314013467551842528449287629621758245479616495535518384603871561294224285852136728645867628775189381513947126644830215584541630876973772603431881892476850825241871226042363368644365709614909744283631378835676783654523240905051055315056134453284176370127846317742657170390566925233247532698661840193199084151716940160488728910131770811723218854894401813323707419626722973630200287669132731395433748643900742144329180010875203337006279666606714019638794921345093115651741463650118784128588222352220953145526005536482719320956644769367881691638173857694922967624784951425165510018453727524741227050534839557584169547195575149990407945016438662415854956766163947612083894794160221218140420981411214906904516168758115474931305038427375704781323175946041895620658732387131180066690011338491836231751235277553237152042246958546570307831380645024011775481018338441271832914972497425077915231389548791674707743073823640401266789804108002178768419872790381819403067710179090576130322746592530915337627172856471165988425096680052401466138982613914239650957929214046066291641213238782755459927110538048697513495106318014590475712524522366802133581931529075514539140038258506702342858735981800896109580704716514511194292951247810334948055685590052065815701463227276158741388950497382023644156950728949579146932714540419063478090178488081653245769684703372351162867498996497692522022746111123998840955973987110623431215177417415705218330381020616186842245239967002008142037041304537263465816894168937879618200985430538737177441192803789166825841955939103631096295347025775286008142674187761625917278005857009412786207391831219134616281001492964914281977345977023347687708129731438479263231407019154034349465464664503690959695749764089673777859176786636905555936091029957895323600767880202973106964869183935838424771177713883661349615722033831808006451410639746553734697938112131972656173039150681979649539118858168167901889401534224393489047625059981405129254996716853747130062692269640764045639531267850570641356845915745649060923865014149690187870736932280090562892057403793609008695071550468725046289145778172061601847824127197447267644785431404078145841305283258598830722615464626722845374238838109020434462791994402650541364780362966050587227005912412845155466638733700253776014761127359047105328275126286173138014165017720782537361154613311020640234252717769670815991036701961425790078215112385623294617761107793182135522356657825251822922515541241989087288394345000441170378768360560551939779885605837153296582623684228162341293262864088942173800229734315598013744946256825875352010296020769133787637873579750405055712648516927883931353650446102562712736841145024405866203590177770024679926128561463716782238213991328488900330493605455325692163077960404565648630465433135212563542722799037601563225049551085209293114246502594542399224733328249923894892916428399276692958264593919482391839979299950168412544335688269259898967834958043571989797211384118703979874413898761696932405907134242641878107714562229607043637464764411355656162507867522194586404466658127098260550572291318493506660015827062487106628973942742383055904066346434127492317625409355379688559760736032287974943282678323409987964663637742625655516418568691478098196980555434742263707761225062896755862544083340813244063253825257896371129737497715067433921388112983951643259881505452737289709400134915306179126974886408159292825050009922831122452526884275150303439411383278034976812470452659056219627859931162573087319783369726017561320672034701654251713915875151347807124551921274121569374263374495888670602683803553284888647724015343608495762571254234151150390364295261393634883643118258107797974133984916207215312385298003639411875781486334925095768100618720254451460889584402752342740698243039651455841932648995863504362764576910377712279837487649297961072869677140558059094351908311141423952203941802139571672186509770616558673952985992252206932672477017169987864743955257303959348089193535335543492817793468213908150797554134804746505950837405480108435276420376778886512970247449304948112826553607735450394087287814438454831377523396986399291680761022773949830976003670827812856830912809388674414692755836598507184825948881320165550559848998151441790001972999674929813465237649744733479795131431176530289567900769844511949724541131610574451072949634746495741406278914738579702191432440653281408046532359795495587321608391188097927293105593072815690421151027154732752173209865442442347128588725737106405209636895307443780705091187243793377909355469475981014921464746747076894407491662249614032007647993471860452084925335955719543159441802076599949426031078010886013957513313368021156025056003898325735707644293871645323155384254083076449228396714253269436056932142980437759202265246148178901109833646703605436072732526201694357219833741771252273275919411610305709739529162115797401659184365008593720665147549808628438751625546590573724085454137836665696875878560172371713850064587881735417741919337272215139250802697014654386178566551180814773978770783998934171389300793935610371036804286132094536731113394546387681134518907242753378981399692577646753107615101226781877854681803008925086474719718353169468615061639442121949363226997887757703631056389118513966234962919771836522824458765670405346794975190488856530808266949039990102867563473741242439307181029845402154046082396821762576290869468177143698964798709832378620741373143452104194176241723121236078894779782395138688137395105319400168684540014246685955419961550276191075463301238654763269407009484488612292965795835961048436724040516492246339480049336337882966448169023109920501671293463343040534485055043252474197322485596138869652736608482862679173285456292807852749872350451254512519046214432796659442622049312819001113918248856863519511999495533222851076505086789176185837939120135354246036231818354071532483943975061993060558691688315013924600553598681660824331853559362220289406272475781860223993247498643800685235278787449367853855894453834574862493390674945932018197780842480662001324758384548589474207252087964956853438667494447937514218384178535200759871600115355065079997790432390403394812220638690916174091505188868341741306057603700281657750536824868421564438544903484112676595098878490602660739953276789115432709227136505758677865435035212879790181976554394359469474347090696147887266868869535926709994833057483407278996199398309997546446903234065090817027188424772982638628546224975755835434119713735935642315621628916224464354557450300764411681319368549691073606165482125037799700078270859181916223081677443940146584276563505272210832444646360781123257629254078700936449686571499821850888591067025348517649634223588222305815162565175727832036279887030894064325713051792400940709296073168661531111028268253130381213378055808831027198173905593888853151356119992351575230095148825608763981845386207806353454706247430422469939689227475647429511269621670182349869287963786676746554988000947371950681185592061823769847945009916404934405292355290566748160101997710044755849117833550607468592138644756609409116854639770563409835130126796823023567670609957067514047471410543941762769640668121771538551766451309230570660286047517300418565163723669513106097144762954486102866104798315449590339563520474272851456651993893911448299213845011009299888501704924636634880166898615503060717340894833968113485418141678936577594850539765565060113418698604095784163233961757398259847905699453412201330884278840719509133384337964034698313602122893861801250801974660589274132110467664619346033813357616157363181323726514212794552637262329386293620237741646378384064605767036051159457241387345166044303118329079515737256437299563952213534911176980862474715461667593500076864868421828807255982972207599622955846552552670854378985197922229195149872731629326236967544073143547596758973064675566003117212296134019386526746191673046914414019527818810803307146441526097072358078217477053817766662013341807052519049574698430168448607824494384729728448022693554217381446679542069366579288037812605444138888740945885106376866776660354623097305202710396893545357100483832040464154528561089219304149233239918063843858631016683169349783434130651277249986447225697908665707542786971346470823405326902752766212800768258879578420837177796395551331621416142967297635941727630134832744676743004349796123701458827660952376486429806280741705535700980433399389567777413871286074739949364445766725445001101094869236008649271297450662215882514852950644349745189019264189510176125193838969918336978466298025907806260121216385267982340669375397320880973064570294103312676626864609798434592440637498542057585745335647932753295760538666531521257810282098109238018330649824324083792459320274821558477111315087321545079248846575453719347099713210513415574596236765593447186953264618282053738665674803758354036690844378053364453656005273644431437011396223925921737805649871141950083365231579004453029615503786087296106799095962983627029740118267415681851263347988440832186618963843366247270560708995925177954549850556393289752491745396287602008234074688092954393465732235930481291043213612219134908731314472763732764004307901748676939719586985767162037337233699773656860102689579261256139051387524224299520228804746314996501836032007972282704166753938050481402112323032877064200438230986574851931504354601582502581400918956030693129277180770061582557047279498683401101307437819984521775210071113386896922026702495680022257928057131217385099776162945840630940084711977633314679113735270356220212641766700748276758155312307084594610082540815347016621650930475635109592223889467584835917848690509739923058481753860695639017302888445317951612846017130307634533892293017712093111617085978408819234013698362713040287093660756551532375808747287522811937153249278444534642363132975329496815032040694339825463661263168798758649364027200377666653930994630493082771899694974714547315281240031067608023327746516260949877613163070468851890030939502011959249918215061591616397954295376690600607705276328675047739102770039757969493746512570809861806866630383366307542369061265303518359395186499706984641181825659849188085242174993497284668387187967502658418045479751804707740059394669164358337897002995056143686172452517650634379911256287965087762622646564755485108485528848301462646663392185668084068906436241297774376360765334905542030600964441658991539814184557385336874037524434948923729372816852262614740702006773826211959681206201673131251437708876872690720997775065855433705425269660862040343693109714270714966988235733060004693090578170385862756957384690136501806087282160354304005475281933827181503300997544784468528119776570622564409428132936432077952327658793365754880751493257526969720819226456814165227891024403107187385240339287883120419034055644916471506118802049587015107062721645125493710038047447622006413215200598170559395993435796531569707498417884119056830512096617680959489615247853457370233066482212764889655943793819468172041274448220787085760790248856105955297647148640410703445419412403869499919279546715889530392189029998372749859758397008645402979205502022119762681412875354858800075736574637234855933753325145681206864140612624663962919108691487560677069225206326623236539300413846359620086354229258344642409650396020602693509455362532506055187595318887073783527694763715580764224231003113405985545321439155093988683287172975114862420350685679717869566896445968822171135718211305043524729397924249372445583442154461264251436923694688260913798286984067141513481255963266293900545076496709525505620642030257566139448364036589582896524728452462959307891265966962255537286772455695734560432564822787496621302216995292965418604169829761396600666094747054883781900844825462132012463600583661120593868799929668743252138969742492265325726296199169076045629753427749374189706146472008508701112478208089104148979383995882417403430977316723876575864276585864191052742579874910362297708268222769376865430864871511571823313337120367423446149467274956406380657231681969874320146527992487459808195404216125011712187188439289351193108385977706570267865959850822740763162087204500409924388304551597774524236928889239573604656496196975854178377162911559933199366897302709362763982706481549792747102373156699970031694064074842535556023591221752292107099798088631122924222009757113636978631829010734622806815360418627353825869817085145460572948463295674010128158122531403154225002592144023505002301767259015882720817448349663318604857821391602125383900840049922208931198190372052887389300495774959763659689861776408439414636998918540468414673058339127606341312422740634288581081548741881920892274418210683669408770092898845134813942413498871936018919337797434974770876008654562647823099558377109124653386637784661322836561696441703410935811674078635084939440975150521479621220246756275130244514809208552045051675689823606006650748269505348524631637654875197763164794614988307814038901434789527644248072029538578183500770932725184170949390467191880500323826333676921473372122551733457765578152436803773558453754076436634934406387438626376277282971369198607236323545129451680361920417479622459392815575450245669371938645002849676413947279622541621848700423853391126860755993854019758893082333921392371344844399950855458535929737032667367940391269902461520864631874707662183248240355330751977543032898036113569071837239749475511199199330886767191114484743322359155793504063358886848669830656585351683607469219394225485879695139503723699916102864882139649386189118604424899819528039077862363078730938466837296278070175248425475950278787565439918929835110107206297569107729301863916252738693375926170218810747000414247382641381292962346259609216593481412828728454978097758732818898233364975245069811211525437388940655471933341029795845822433941465831276130891886497033724212056724545995061097163543541676885961052971929278135023109211946527042323215351051400619655479063615902522800141671835166661161589001520240994909168710558012211792774983763152596507834323301396186556109655630167480364302161535632432753721029722637668395414487823500620703191634046932259315965469870172482366832285554720152177646493785961139594954607959007391892268046768440737752108835700031531957413778373770595542476890524156838782522060782665741588790948167876351892811663423561046928687507070822048342628414186333766339380723145964172320481360961946853357167781931744745440487457372874930108067375450357242945610326866063054840647877975085549575566612581523109459818187608563335382043668618206759004429269486913276389591911255852977189373878052014985693453855621567977141879272425311172627060523241179437371850653017953014444364463868892132226004192190729582310357540452549017117371521212302262551816629061491032993577862870756261876822601527277990232846940301308518329614185400707626356410692950769362183313131277901996204381564140387827334577751253865085174246801046929149312940585064611540295626000940614711178400086818719693629410350114485587727587077013715821288298833866437078790610226319979933301808036254771394054132340648735065237255223126163164928857998456147218238215365596336466328677069226715790468987754730095464561989344999585750791210896048851129981295704693595047263902080709527032380417511286494293413198895121200165890635772165114247564205163482989242328026567482958229310637837726654836410731441481229180189272339955982245767155197274262161928622939925492458622261768627711597830045279721073909015580339542327494236986275925001240725220632462186077053796360859517242499274627694447815053697593673439892461761203566382113280043291025762520863843749638326051538512445626538890507618774145388329596824338734928748159414925405919442314143896109063144069210179921180140905841656047061013135895294894938413986340891046023646233228165864862220590161068729741935032657894116413385915924597497705912947654454760740925782681581061684987856077151891417982361933859663345581417551735395002791734789511436858417918097585889232269312486210768724374138334294916978151860722635404025204528648342500987807449996161817451804981077671826703527275617747975085445479993355980846118823406474589686031646170137776483697445507050010145343411266736677394176664626822054231291237579836132602104615426537944518725669235044356084860977536425693170513998960294784564653783292377972070052647304760003848597667501904899399061548298353160161729730638518946675439814680749108511951351771675748319840746693889172193031687682152748019134810791472824974488463138215258407095456771375846537879081110729086200630265490159770611660141159831107094047247444980620269765726974802649020084168939254369279385367156014751023623925712112717246617156042846384140458127215069019363281663644174995667224318126099705817469430422258670907757108477828564930258451008261565424381776090663797195211458102832991596455118466917168412651962950920297403637340954179450542125828305393725814459748238800629127612868948471259213482450862081611660276605265903683043770373584250664188755716358097221248831981947815621830332120758771625458982921886334654764365191489123798134243755386734759373867387298502582213947499767932694145120259426262854618157281818477009686814474196909660937339089797838508005783756258373837872756872250182693473394590178765679737222770889158587306943590783006648909574213567702390347688416679697022952386207358557144185067716863909797181539537151402106420546734923427060321997745855296155471576851716931896980015133081725012512305788279516970081054457983036508611409296724851135606936466787298095774360208200522924422411202570809364078561288229569992278404860308864517825050412307607611220970409510004847211230868320615575675310539908164492868682079629834732100688715067959429883756483897572763733657541977721411351050911794507338354656418290953165491992992427727755346525902126446986264694762488431411723628071106629122082610802302352001929019084751326471507533468081602831034540350846902043387933546619163492592484966421220976723884518296182168703993164449291868049766608796677488199924168703779520882011637400868590091617793394034855520130174221466405509396933103024481690783604476624742844077377095249611368716702133046959974811414042705219581585268439302520102646100187484523602980122500787277894247921378200562924671632824652491617456656420061507631625426720331986405929445907974118226688597161106060133340464710268442312564057769175368177063665453919716493161935134559901288305783277617071781012254747908991652857749528862213938546303921721211883839345816434376017647076026512713058829682430332238231045135811864973381056463515088202983945299252376543474472296309534721336868613296346639100094754585370563679588071184998543921274376739243549593458400039628905291567709393416593379726458910817233079322070332217563903208341766708905735641949162141068202654368459796230987743139231980458060934440243420140566677879760686057982134936292184344514658739627219765140733828471765052757786953074483156969652195473284345401001994621541570784446414809023933230380713812207819572510430828964141096766428469083468349784743451653420548459502165035300775999949740232929264587683615085682118150656843427438957853224575317024601415106681007173793182397297887725337257211080123903334642594026582109381644484067648357083314623973329865212035787184334430179477793414954132429877679600407880134899154342784561166255832764833119722266703643619377578244206818647814350590463818241161437392483465199481306088275694991470021964951109316866880091831989879721947027023623529958884719896130051599754001314030765707492117085043326556579507172303134601075956443783244942673909895854935152428421938612856840952217831189829528498649458144423716596452001959515832881189083565127599070788861542823213648637202420121930066699917246460354991740194035510917228802509241683537357152289553579448334314536002449498354806305590259278380637452470989217330189754310045692477209763940328459159756177593275047976724622183850850417837844098093300547596587763513007327686281204603650791004813812747230615870790784086737437299045919181804819463256526766328838537804759672473214092287404570820054574899780470032634024241491132215572478617987763130857305990004635857125931719536888227390875922572036729498902763484048535357677801706451823667009229814753487967201045683690259265523109786184265835086038536321325096686904221913829010230257166311867424718669162493412596896431346423510750844966904781953810463455177403974193502916249812946051210685783314779755442398469422194985349349057933579578187833490956544520602720555197629346946628706084768076673840136244669530424107977311467651707267929814139287699192536353005651336930243917334499907211979353477857134930080916802627649079002808753767649077801010002513973199195979973699867893361387426096751071368740741938056881342307624661121899604969046833488315223173289251358252589154147442168728383806782398116924040035140818121050128753679790164023522972601494252374263773923621856266793514626649840044755656729557175900231174587630229321218020154476297754356034920925958244543996180342501899552777612727833640799365692212862673726427816763592412036762990790691548092890042770820572474544198629216892041541973480110489578312987506786213481975607026922678464707719194882852322579084842928450607670396234005021058519368434422547442249238436431267883473560239049726985152939690788038843520267777064532077330500031285913309377629042462788432334640653107318301281007756671416176877593901000553892893647099596618784392519552324497215675226186962682756884414665875831007914038893522791558415656775285375562490184634368355810493090204987489666007370779633288391366232338086282618707429861130749753851595456749821013068968373139343173985272059465950485106114726191657175503647517959287204791545646622542644034236802723896892067953603604049458221579936603495008491929855739282499882622146103490615814082135984630016368445290965612967019912155833668238548668861075544945431799097765268509871050233813846329753064649636671371597804996301345539078522925147579342051212608952659436532454348556323587669753526332744907243064374277441256906511712756047289721712868826245602914743205227125903942064597073152769230930383898279104071322981306949458888376785964245275759022135663030452837171893525878956493200547845378223249866816777739487203522108137789495795601024337772169782843832285916015589380120744416773494524329213284224609380570230849409195116574576029212073392069495159414687960894577232558585736054507774357689304870267973263670081349533051014533416858886985526122322434778422738249147445061145659893667674515903034064461608605081357312732280169603342801927649519343395313119392856720496192003635657328044753294408292118487612246875304143022187039118096001461324677580592411983748422578645068572570728893284201195924511013220266228592776381418798775153989977261703836911700524175679400864699919755221918813748188839678021149487427017584282651216957854359594767125296492557252893434709620965206969182974501918648789306736866746379364557233423158635183373609159432883163796645283230049501872741332457585497062464878058156244361254672899722848861528474913441562352815033953995385934233848871823610352061263355014875139796461221337928889391542342316140994809444459164805472291139999498831741936470804569349673861370611213968919871582847435492954972285618313973914134849614855736860769245400141143091029328337912465664029261362736513392795920077913594770786833083286696800174575097697454697730525959385111326971381036272594101912089186866653820807564927856155963367291076558139569486864347451233430349795978755385380774440222959895821099412067496827943628321400009225611547949234115840410738455679943135305827976388782738662927290813218232222674970144842431851686540936494564513180097674492591048320604086508150770850955328116628456785083155951443411071827180277168679753915303570799994192519620864620985033050194742285057799741718028959117526567047597344180702583654499747165660711363010974497583891670875681201767425907680735043828189057616206914138863941591345107293040910695554702267524835166230711350289045125399971936391395418650277430397870588954499212111747311281317476696957578035270737559867715784190236613011816145949126693860351144158559410370961822121748938322421818751559057660414801947644532921765885201394198631336172511303038395387238491621811910564143880340124530023426671896613936952535173851779999363769597637269099308132900424451518992921443991689531727042920150722447912808305865756347939201552560625657960025060991442008712744119267435759589384802115563743513370735753502961379030465142062099527721285577855868755771033770616620522810739218200288755108865624954790905837304003433889323836493778584185865433362082429197114094997040892510602157956538653953913607752523653499390432703833589625559441106134313511642320550789505682950866587764387743645130415185040238939996753395016223914152184332398363348276536007094904458838195403786219980435400311069986061595549900024183967393671563345795270185859302941821130515151943805442747623013872816344333092292960073747073331990276286899784278231855318917981102798763204585922787131471769387068860087007969894143093993658371935515026380910313582412892836247390491805089521748413867670489445314441727030336230977488633482712611578849176233651474651873693843476958074412333909785299276714204744702064420072047479092614595997231160206309575351807453643543010786612662124588094094906957359016558283682781256285591945038644355896662815724133999877873337827905776847454536683234140932135448287562435377014842384394542102389041135951572410661436525313244682551529042136507994692984353520322056197081872587427457652902336954375957766236670899506724927755630753662243232594891507359693111481311170810666966090025051127779488314076219458946894609301634556098600840639365256357180716762297473564329425431096546911233219061216792837862462162578726287275049036056616109220645203996656158980912800645045541590211065245713786595246643999085065507942144453455784477684191756515444578844968947994879670840609589155094303089035894012853412416469030295235341677336296073394066571525903027817953117519223757407864958812993975169506969890767657615779420326203051112950604876107990279000066977266056491651807146603471871013054623405063955096019626605465919365183098205765273400847569288491607223639191438886093766469351372075574633170859066647468487690163517383212064589419829501239425869234591975834085524657605314205441454052491662247195941986874649112104753331246655480247143444575056500359681474609910459747864991976660902643761016606024944229729413693835273158626967847616182707621553184676164135232053741159090466360391095339844125023939099791314963305149989587227172989930916345065626407687969381519270385001770109103975586754087132051682118796790251739314606948459874700797436326020184842019678662735890417718229856614963263851354125412027312733975384685634292354872149395033985897100744414316372640305491539241190995337938574151046157631053879740062369707113453251745915997842064148758397847507844075101306791288346710308996521009249237909389009749851950319551855671534960270205015152183074002608892945155002428531100108613386243354227550594803973211563778769440235908228224766353642006696128120257510851659006078673938662783430261854418311979238182250384799593556475833451042849744505028755283266366432374711046711325695795230914570789360713894183949735074704270221941918455949704395037117998035469733528911167085152652539776487296614103692864414743952938678978135184445015859063002691350054167009382219031460344031316241064206455789945864354399943545528188385043213971018875430496940948816980759071461239741210574816961342618076303042565591027833520701696173888575048068034931847402783240848535245294955043312574370889527400847024819558617298379736807578724925115027305771777271816057009895536497754307069820599490520834503478882669690282819827853850365685553331637118971174998370876794191205291063253021582269367920366811807765455461824749293251295501128246045379810349063182956005142936767916290502861727883281771798221144680902873491485936878249571595963519391762763524650079882776993670236142684220756057455591396879581527823992274372113113187304705446947647303612261177639960778848673237124101903606861502800580926989802859020707576404221555284171631589595715798273685482627977478586968497680359649417617237629164809499639911728980164953217645890757226946301247339060295234223558522273165582754051099886648922713490601141465781076226006049131360261979682588546871996130664712348064573195484642086020489239939792456973239865292780239186706047885964643384671228425022419179236818412227261859249997121706076040161405430556670625878684770398123568967999476395823132438044950662878936739165478360342702989508519513378714429676384772623170307753511982818931641070427299424687815283228216072196646489369896425720791919300619981155731765736853013970062455451990170696843858241165162945792415285901318744381784311746244359382786652737317683624216034119171544477022048843390481047511759197598402207589043604212204775843890990747789599634034796575001172881893327290858535923916284882863874649740924300516431925640846705535293619257662692601185014861782586266430731111681887295187452587345456773788444881206570148441863653939185150129793436455031496591274856151396112470383560329790537267678953977827911607969913703628597872773885966079022549795988457044574878575327822304229756374006873129606239608902802593134410214702106717625326415541581826036468814756775628573090122408227502787606603665940325300406506876909061600397153835510218177819970622102899103479725295147686362820399708549629178613558227217935204208361241225912245876445123997227337619472697663390018089748158371619125272438303043780193069548597438357014887514437113196987148248470300112956177273478515602799881384642501873238113291235285175394426212447883412204837989633931231402675789261266860046604719197709904854534759887015587442897982194113143022293243935610608506279478807753586453135733131487065326720057552059495377085719069370957142119681315929044843979021872496500403361158427161440338061516412374055144356606333116769889083951665084565500449029814263076547537040531858475247510966142760148552743922948324284347206915365676799031352300982031215053577718974829286814882124319777688055324135970613566691738345270315073684938231783746255921544739119390623549437959486828066762965516315441528775440390753090504836077748635099098647516139462823231603066514809501419182495503523562622942672426370752756789175400101499846196392737403843460501983678787182230416502813202781039067028956268478331166314515555159071552827909705244493039493597629870508343960275752095045001647835237896442614654851873659764991956093550964988699395724313346003863747180832545920173429769364255124249900829288207473372939896258144387068921603678317784012000832569100696292508492811665515996239960367881784737776293378750884921105269824238741878179115785519647933587703454764365432570738924825468021450078421860418272190859619460158948786831894039395737359682012712846488641275270440940409934941445466654389609042937017886120137803849290222311439384609614905506839714789819162837125132136445953272768683781583610381119417978393456002655282150195644733220207982431780599080297460899939199046074490525955534091597479981466630175473630633077156967100252358996237280405076146929791692936762594274446587737473175422551321466363381348410825442506477505310568371415421815427246856575129298504636104186811300159463973920468573452986629043605684204478071874401160884046075651521626423930436269444315195575043308617600170797648260029583602395877654438773112627773707665445127010957393005819529638812535324103307586004860613355907241724450036739076417161876877627434283698694536245277753003470404872375401657720521606194322954013576153459553662832330661243597051031293835811276275089932771254809172613305520387689508871858176962298434898696246512343891540915100845251744790374362803464551021490168566015558727782964535418877142258301723986696684472647337622768088981961555128804218353247802944702157679122903438537141401011417556704992277468771783979879522873321143511121489573389056562621522283827192018195823368091892795958194849049659273378378399731111728039850247272789760310885801970087320203278495621254304095789745888712971167655660766829566243239434784206689346913876393936934875103202261544062428866270187996278103612657577652739097672987321707196742790406525364124399338507656099071880443647863826125794205667258891923369862496016341897034967176501846823752242541078068423815677135031202210492241777280492844287289686533428520504407168542042407656815838226519036054887359295136326119170888292416861319497308916797785049038735597108460618272883974554431078953091548372930297287524279461345200818425614420788439245687489357834439369083635676391659030230011997981221654279729120271819553455653280328613509038576372102616316804369187362533512497981312243231253703082084537348987177455200143306068476506896763120788614105018650573474658653580664962617406438327029865668191717072004598592109933153514992807604919726149771037736313468587729063454498338226171050830463118631237533820148118561114096143870387601252758016645242753573646671831784601879527190523731872307662719031893765480740757643359164792230914757767528975698778490025607863690388381466983328222329048039802702671818233637290062677843753914147666709431245088467960565617906259879445804418504326401402298848071004072175389400010930709952652971082204367886445872545123633338664837059717539795976431022646038461203785498060598914634725023472743084875132782759581434303065782411713002463532467880262394134083785775784412084153591212047751855870316576214823195726512464910398430549660107280239004811568885148898812316433318863452853838297722377610925225904062555369682040850381002084548493290226226993585106555515775395794463774042847892702704206495046282640170037032376315813283463273940511978661397947611321580687518511330463246707427227528241814573067743530743303691964513224826452918588052506055873783999817241455779559293512730701071231183058839413613591122038456662230755124108119733011678908383318807667107491269634860274051995079584698290688333344111252924235311810044603824464420192675062693394741626085346742781877154707627314415193610983524297260477334066825045729715920460218942619493422087449047133928177273633088851098785430059394762451808028508009138337030586452814271386229969436000426940181796820398728714688617936449022377443977250360929467181524913594399382932063898421664943043237333256272606995067754755777222747014915157157873004723252639031980043855220158762299140638053734796941352000490717231451266099154085065621045930358427680316122027286229770119416488435798625823585622559524451331126859055525672777785399862070486132793646639928373924887164384106639796902689684613918334399765437618859057120822527790178680992815129628364970515221244439009983727780032686190290414582953132761818930322365500757158750106143080216865602379966265927102751286943653144542131921169584209716990292264338718470337069229330633692541209234195778129655448481917249512088603871194486824698193611114128610276025882225957075980177266577342576316271323950202763797875677226962141202278985050152812541323201152126321288936448720677174738615232442996979561155169886194456631067974343226412009258728091150424063511688331824389685496345608937506172014124560853533249906533511901154257331668931944819281176398935211862259832161179760717468323772172254231154625743240381731814049420176089856669191161663530258102453456831569579742502241517900137380386311230539992422340721351684793039292413592501732982791300172055500666313126549171476541451779932367613026280289943473945121182526969961655880406633497931754079626058992876615220408052470997970652867100042151011852041263502608753339768946779666443874085970804218881691907861556458675066954519640065340750177138549910663602756665468697712884498598552973360085282893822816167563176248751581478307478151385161992767610932678721492190124805446869198048975907135591640633688768073390728528907216243600550247327751709744604465115885912968836912071779872622333274029553309174151399949249851947145388057302909041509446265151104991180975846404451664090704361851930017016374679498386323041815068820056243014607298345753259220911816313751024001943152981968785455552247484025103118168571091507312494861743839190388713302008320544721557654261827698838916179577230857767350402690581044948763731040758848550886830469104550742510271002416878892271658138990719912463937520848273139042678072494289951300026242230253441654163707469233769922312809106320215580401819596212965692705881037489070864003050938647454598166006815938829024335801685178839762385478338182810808310592274354875304660829682119486973951684751953760222715826178864924957591148142676893818062722064445600827325322250401342374919095744328760370964251447117714599043432723760944215925018362509913383210853572386960488208705698257582127319372470100959479999433763582931308281991592510253354566203196895880140385437191795556193902966005324794144061078710369196523394323002688529721627619383758525903328972539858946932411487272023456077809759223468241232751712104210893239333796693651717967543805761791579239472513669358669587994604708214349382081405342571487025359623245798769766537606267901693176743172765719505626414765430419701890126594073538332351222667557357242039466674490107466935754187742931467145782243370513698962469465630058402520313816356928799856515349398243692238349317413816321818556021190711127492762400625229469734901230732618904715275343968316626153760283320854908083495014341326318659912483078540213976943123802608813360577509106148769256962274726463258543660111066922092289571087704325646245771863979196256882047937894619075937377145664796839217106585273188361064640797330672404762236573016096779322780308710717068138929762242857418006758419012479994539653040270952094537442286082445158714345500392842822890956318901703997187806783088479160248926573334544540690249993748952609537499564099818236733143433239264066450894146743549073735164352156370456880771865492548091680862129323303222473675004218778281696014083083087208104822504087595149912965894263350586755273098982610457504201798175791181001100426251528131173519838239202688696474129539623272917315802894721973372491700719179007491440372715557019765176156157794848262822943033792723488809733649636385520184371396461746843352818955985143665234462464580004492339425268257373083752704604840264992058488130299072963188634210049323664761665396855107159498588237648662019529736371958320441656774689070308350181241856916369398845463515300685257583585353606360428089030592944689560895953759439279800915376488086268329195622839713076406047900400659894407600280506949432262521330633886421725472308535210809838145142095582264273895247150185025712585186601392641305816477440916071959779499667799484351334128712053045818511266195119665011078403597205647028858033430401240999302790652318219752907211844491294875328312821333005291274321503878277088760742216226593398359553271259393071709577282173725447148763121488977420293257849852090398387461638414972081348085914489058452924192145492090915251872335181187622656997110438033847147870849785739558083253382530582310775072317839676762020873066594014402607271755235105382686184619850500843028093200601580600912592860962494564357806142301951858430286057364921706636335013879388709418995811062255832748335247910369715297372632325849170363828068281827278808193255029574556902300606622133969678267630562322635682696479590820345003079135370757240515661095320624824442469337324735158322874872176364421578160920328054157500800560743169836045577551839843005018439166516691226705042913914412900828467691825548759627463270776768366284285633817179493146351370967552851461522148937933509900748893093086505138972529755610449995616133084936704596594890424137186174985933880737110960257674397763539675292783641948504997716805346494392227664293873523292047829908141908676171144986336496075352396502590656262324812923929599119867950637840919342762451818446250224305576671018305682890790357212563859267932763493406615031799871688176631919088564818391191144191444815510223090306610673578803103876835742567077469134406796711106309928147191213552679119809201338340030323653756591528000227966152547266838098628142323511006667672388249174904738125550890874388043205216744522967131460735882925368600596122704120976576941795179613994488754392145711692027186159217709236216888763886969510186147191636003938530634115627583257915934030330277988462015193066494744677635887282039114089894103243545309645003573657963485784982970029486152090472580444227942427584718748970638936746724687828084086801455880469535110839122973160731650732494474288601127208831005033110893359902979496083569497493711109571013793555562710100471648426383080698902807697280201730603449936368173198660048048539044076380512934042051736589864587582108308536040160006013756292751986269930712559320986068346279518271556090576427425549359281696730620333769397160050595597131133089523869763789867231792050710430732586921676974923886529196027152610136936354827368003091601331655773887975564798996172540756861489874385131568389831020753827608808505571265742216653239590900200161407375005957844805980293964430728130601164288180963643089240161268813985771928987034327096360659093354906765195993138255848224871657661967222514456128908900986172084487013939005980712914380496054137773690698781389334929063415290967779612619285889341878454126474961531039707766731044971915243349459305968619302238519388510134556519854519254183726817732789590978515806780353711579383066923709996272691467521460546755823481622701777874842807667506734442280407898763508382423839854297898237129933260300985288622920116273730207648018211900321302932504366528956022720594342425133261595090773675671407903059663136101485314121789832347645568569750559780785683150640597420885144600797760916293284972246285483014013563689738140074711719844469441359824088136681071090325455409607543252534344264645594326184536546501212596725423441057068390331938278419692933951053020549142925852823008695270507636961978542894036185632532320276561922448537338793106048814877639634377374931287564233242892300376617114699213876666451489110021621454732801294272713137024759238243585705530010772744687332573125487495998056744885505845760687936766223794226676051251642108296253363098786343393655621279745447629218699328976522610855257216841255078100522377964445876809439206534163698457098573329192009898738484572156718095352473108657649675696942127996181509535357201783556281501449375172742529853423273164247778827083681606118017567415511982543570616912610992362738884327951354382671584117094610925319420726955749036603734398386647733075302276606310108804409099543492180476065835159735653218604627179364943248565999979976306848936189177603974831424714278088440643975433490255760542669607761995015213570551146837906672568519173938735395702807491997319777313232595326945509682683440377187535644926734435190801676400867364980167198533352847178216533232252445181944640429969319175616469380915225496014638580174157787878749573307665976347091266178184649693553515336170472732367854389864227748630884491364594615947123805678177911384759579862222175961515529482011855235954780222063040723892147174896854296313515221791029482943572802103462471142028193475574664223796929313807983280260996037372369270364017400449067582833225494213560712102835020589120692713300548786203611738086872454432564851739258468969074372422439371933125900580804434347653254639308839449362870523075350875719201071608006144194462365646131865318780295373893024366589163878730920024884168082349699633384925995310603224761664223004312743194300180573868033794502437990297745211932112602843340886126742337437666362085194129318888276169439512833876228222859123973591518151026375372375003452923460171778647767429470223852043783529901308345250983831289547777246892574353098022954375342047832212931585419323059356171376369129528889964527167857283524691619351415196426914100760108471460922964971617205154751181130684252014110004170952966461549856092872530461945070740194414203633734766652545043221327305295963267579024782459855630145502353112040974895250804156332579391488531253425831353765703304327186868568993448359981764726142891782512257951635721783068943716261796017871828472236386537081157793755318442132628042919723918600936111608145472267335625429866787499350399409331666153855889749358650377527580118547397880326064328678493213545473669194786548459905669938406907377651781037474939020965331395932424986127973714215462720519665659073146914358723052546051606814893829518243610963071137181246418825716417961925871023176132113694314613893753068774919127037303566719756987690848590925241883610116643593886033549811000916326399307571016459904866955597597214813594308690924869862282216828584872088333989137031616389455352914076021601335222713568055150308876233817186029667790655441351341088500215085643751747671809947604902528962224402086756388838633070285312712952746790593393586863615088770016029223866621423734971708677878858109662857994291513363802941991337977289790462970257795797978975682356555709822271730186746080216312127667128401412434512842784869786368477875122840953862479808290815079117040017918507569143552612321197533365484861056588761926419750449807786288357387336710473573450323125862228209542574142299826603043912203506531299399806653990933517069341925265222060225084955652247974533994370633385387837050543976849209945848584012396842659851743747808518576395584120805555202864613666364310491327683823124188531597070450984238591378745329146509124367640358798463722448012750582114205104520964404528891116906514750638124379909593237362430717411906500481576118043122080113498541793045866484423754025708122308239860355037100891501998981004282814952454709271138535823298776281700367063750354925416558118669462416787304478340954045080921627131491823484452675943647061797859196415145903375387614476452891381652556539392388091045162261318305446612347041040139755844970371724616495140694476362284112165378586788541869389001235253419113868049838605188467097679860812311766186617624081677728409151723245976218344899739440000144239991639003706182195215886253367354850509550901796340533451583109558390652639792678752896243885044753048520231061641593682971201631550628445342177305345166172855568845861736045245151481345170324139421517809077648094020657625805244640527737562972497616028861743460129689456934896985832831685753580446095218673792752090627488890049741708334756634117084726904521442209764249722130585326346467769537448699757178254632502147089630323168002902823837080034551094295151591531877834587743469425293296457848781459891030858369475685128820979260709554868770237449165362715628540105019674262819691834629931810778678989625557091361950493006987092480155047149520346197292259685178555065544783438832478459852716998147990430499555560872721078479650471562322613917559536424508807797221533389382188347357077510286165512190648303008576437243402446204263234895597521681370818050315357623486272925220334026042658548478608009650436760886847419168751792863731324992391589400579111869822277467627515863922843077611112919921807803938955482470541047507952303878111670283002551511263281225751193298911316812376902669341815929003580684993354942099139481134944019583117623768603709338382592864175082539222485175670290524635553653569313057376996322582372907646501525792050799783998224930389601991369944798051255686357686007199125933650783604262049932850895859878358461574030327181181839814744730618153960029263059245413468794969082957796139768251460866992283012418697589711059296493364870460012809935281218451370642659147678464009792624736523435693905690911930561045979743315938868067350735488933802196485177341537134752474764724458263605941327764144124333717245621995349153020979698156081102827806469385714207502049842796720009007688683993245633918904566190802545238586377492385738546729747889556206854905903221585765507759169517319328991815752583421145280873471325083983645224715056384124944466359100299765018632997670011034708309856188317227820988574335997384125632477628456337634711621987178972852355611612128967513932743283636983596097407135395702425115348255177869168689187410491084941909994132936451203817760745960158251661361285519105460170715732788464863519788291738907718142528660629530399914606656763878196285662006090942832200577795342086262557147179769900411385318165038902565858931098484974835747491440568056399439439488012236846760839615939384404319654757666066513680226374460966698937518919137999750131532428831493022419184696494386076247821399459678359605071440900683303197764124519904359510206531034332093930717918927630809861160316071866006288272796550794717509113223201391580142500746492496818179072504143809374144117218999574893333222783190787814875834698998729432189168012691558322239498332845970620848869065219507413335378113402661515600620368914438995982630020799067064974007416151317238596833411120984245683348465727930407839367748789472016921748464912732024116631621422314480999684650258141834308581765948971867075335463843131020821283081897656416486161366351333441070524646331205758508419827502836352570558200375895918574862913661149687513324224638091242345128805418468764261108638273445850451604696475050797504367195734928026780855740066518457298623484336762459071791340385508426780478201918741840375817431039052294720695175304563197768218357531086791199135802712377973489730519461920520448638561530933392433537632349395433435696630858385500402625992392440686713248585151839856609114844771542198194124344735646922863460868948611858817755825723988567200693524529139580725197186173128559589808411726854152246309794457690060748587469108864073538752163228451106333701089981027080808376383833160711345590835793827327583266389198781038143350866496500480417057803171050924138828483123075152144463451841487123400005017865017127891176881917076020136357944982506280623258550347384088890314184982407862828630317587331511964090847088771661923290043114251635262999329558884865432115139386601071171577708171447845375559839039264941290964931387431206125399753869073523480624008331192652924382113136561045945377392727833831438057744171007965197841653633575632985607790104743684243113862293568767048149903639421559395061822488360488826031818052899905883178330155430867667151579708383009288807021601744209938055251703040825359266662224536159331080091229990757026281018529659532077351830924059613085945219148006233901241842061563613754654794490549863587444570111114643048439119246922115130421610695748887073538318389625138945378687419237532714063352558493245507442154111226414788040473242193963281776364638015974206070796854754018802658484456276193680857533142729050621204435589167003169387765196826302939878208935693638322090994046300535993696114482156663871818511940371983452340152165795945151623505623002936404727656306681526622615464418628955573310512705856214694942038258048959047659936606389981340078647718665303150452098226427506611581960949049878223022567726637039027559694902863525517818659973284326456120006934270807502821167023666472230195361502263028867325537600082426362341761724620748514944202746376755328884271572706727610110567719101285466004818978829114686990713208820781277644432590779208460078804110762161250340504204858562244429353398357141184359374049603973776954521318804222791360699060337160129781338352657650558161211098902490441703526138293935556593445345045781235129195312029678896981713647215417258096270117316713961857022838884757273131986318875659787089075606326129676276558211059507309351036263846887040563142448374670325722290572543073122280920996553601572385334108187326755779348890812611338676106853883999143220289973248979190670136955259592622811144419185949965110684759177380612409835665976355261480551470635954390476136374894516525440076811040760970018556582613228706230843618937574263192139178944286048232759690808887667650547925399344387288897276691227233169992363042479877474804809463657821432302741501708181210140059136842691039459266896641289861792904081724567012534412072322086314682492919828379647812062340678712680575629683426572836298432091505754278312294302761524278324269238366762310524879360079515562142951724667558526924511238321426591594006829179082675853021305252359336291916425498016929981202808380919576316992943586876898596265022020409184770644189703135539040525806255360813671740564040597112407091444520941876736539772504870951055795831593301250351549281633985686535203632538691544661464021184153725898141000064525442155974520234202860077489304273698565235038265339804927693361019997158694016585619366134276474980499518680797180976939491978593218737752927229201669941984017280978549911127458801997582598753809226101053404270661901870935289274007060110068681325013979463409249201220796530891206880660492595719719989217160322318165240991906661764888477933885515259849131808721828848160843910804231052010701079621393787441743232702322344585661999411703843281786879458448687663802601729852040424591057214997390464994025889495133772268160282187364486412024935031567614548204254413617984048736125954723773971932299309682103704109499677003793360968727541402619998970014980924278164056872014695011091050034068552675214096439053222295283650358574897892039662152473627936061508558779382571995070165174066010717413807485577111375763281838108037091282662688945837998108850857822478973942876603581355583704229757282236886309770487078350075639523321196221582935730325011655078183699417913895364630824686939524607862034531643371916482745842120414465057239910889955123237704858846748261191688039282328392248540307458715411907731829205898315245552155395076898509589435286722045435796000161811763876945815634461821985568126278585621788330869099846708533635912503349949948884367184237128992879144992269455367474505926633027827689439724469099939954402975091930960810907954845858492965973789211278236771358887345035950306534508692110681400651340214447039083301443207258282033817607996477805553601262858483692752816636825292249173067103767591498404343881693740084214365843006300779615712955382184737344106540272383653868625502985269050755445714762494617916579691938967704314795650758912642916232978641106433167004538258194099242846439709626964488084271172038277558061162216690300309860763534241679300169218288969159075615417073338772876764242717831678861682296129497430765130696497955102967372499899986180014385743155982631951072400920507283124696846542349309183217100265194881832310717264027279587280076069192039684463413041920980804983201134002689834893777319514878970927239843470242642940140823323845696830591574407719296298157797882679013225913386701769973609746103477384014676849905301149625208359737671958816881640919646537784441573786495605498861556379095173683729878984845745426576767855011597680614699579371286574966661828432654893417449565801823178370956234532359644869940466363953452300692330051697612315733501590780054026373484535449360366035398686769808834365859403702487646048926029462906262332012797094761895125206885739878660942264123083841586845193017839883491181194042814187643023365949539583369470738470133328998991697317552650372741637012704989142630571817371296385458449602608564889320977235000005398460490417292625032882603445029299183343439490918945264829636408188872924333200379040046720370746205463532075963618462751501885737377480145839068702445563198571559829895851795469897123265048040025887766010037261800601393053809270829137116874729935907991349058207349640870476972450270593393986365322639929406765172130874453971365400651678117703820738939081495411562830375378334670546449767129179402116492844630758049332918027415454652337137043029007511138392808398252113796503013755110257989606153877381889400147065884362282554922763503544446379785246607176092090457983355485771240652478600126566474253090762379933670996751681400911541289939611197563837286587844852764301788977213461305265070195167785617298445923054255725953078305026384057037990695264625467058298691055537204910867559565359861923776147336622611207701441326762319257400473363370670616379656045919490900005293845660519723058654934863497813587820444351471884757193757115591111109543739666183332937690535341815279092247852689336400979445844398903535565679022137981524946333722215822580313005481888687761946356633907194572537569538657499464162743379429514831382584877570134063936421437716023377056267268544384300085207463983465792716676483914016869885133454540033196279413540653021893433538749444461025707372620102544615822593024710561945854439177890035330413649302854609995661592560277651360686220628950295758067252076204419918189868890853515976129138286338363924195648543571849602650330866655176293757090990915828754007393180827560125642456753244635620054138097213356213265316821150281808357144851245833832508687960879034851953129581480447891622768896230991311635925976706415835864648227715831411408682897053171742328967745116993841067226531787435333482021664505886866401366161524967405061006067765667196225627618905504412000513066888301751136937775551193681642229281703038260348134687468169457816231811334702764142199625747289079403734599595571584609964449277055444069989500834286278616345347916413996881843789298790166470185135069968484764507716233734988925085750236657723541360210518635334655630498623078621059779019021306444668544934235964652333576631611387199216917988879560043138508558728535690516264444200570137034034033722059627956889245330677398622237117012190496240621410870456812382182388643783693493307666201100302140661276996571506502511279540875287927100955557893553600448028623395196207365845947247932028489868438091308466273709838061511339040453041567761918073796077056726908850358425289611845215163772943856463008445089602006988906484375830215121795791822156859948295500555755438159269307074622703608902537352329730431234102439743195311150813217021487784454133594827896885812784162267860201797053394051077568873311183023952752440087918960162020002481789827178046196482376774024490848076844425640163478250669303269847943116026471114996734949044764412946813176715861361458094100561801243629774262856120258681625368437102103905531339147159168355246686841386283091693609022097992560105644742389308835963835396959077494904112334593518975456642628452525824883248074060190774972352520496461899721251785108082575718283650294719465569922283373343262829125603098619187262850384471713177191253955539024622709413765400936469050291632139395685468642643242311791409822158797304065594218319158544947311379630056767778815664334990956326050535594062113393765236967410799820590113252749884686094710304871184176131447733729738687259490681293091247162830736902497504954572362327052394391718304142839038565764962882772640190658965962334030340036963314496238449805798792699776570489425231678249234034006840973951331729117825246469341227338156064534769957296207807314926258596907635814804664042726374470450638323617625490504005738895904992157154288282205682576637058439938227238060317351392040368848436710968027467896735260805180586268782937837062277626168950122224091455435253995893418634627019502893314729141976170786655344937433127560969698966671151088254823184850698154197835056768044292925971450937038884406917237725185337880234386676868578136968329544259078613619205851372734713729655754408963389299705046813057707827835607882984306040125530925053570439602681563395044555980004818616818178345152806206945998276359593951036732768136588696167576165378553831757539769651033408847399919746922105959489910450465224987025108591381551710783698538319056059909983583477286176628458625149663016499519250232959895782987090904256442118914076419347091873816623726635342146580869152528927786530783689297106819580289989331808730104552492974164089814677203290927517601325187559425311448736275995194054362198884883115329425302809722695076701572524430308055231631126179575976288543634555023565879086108806983575736450850923457551498591484718123966152620040104755501819266035533359507225355905174928518424661709817987100463554553432571300301374700837700696467453435568956624833904229579817101722891245397508582528334306167782439111708367957813551908157533347267932669051542976631820291014159876353178054197577644204377022315147701800461653896070625265730742050515312060910866653715997415661850421933374371230057158804418007289491904017964737761253211151904106785809476514821265947272842241538717742885659203649078638663820288375678063780524491321198081445295131968274430171056656131158689141030186840116699338502291992225390479983472381686957229533091898085658847337685729612066532748827746653822674897054003763743012874459241937895077865303986096998353507155656427325580447890675431809233408523562233424671405057863780334034698067273148533321643255979676688455710532028747742712240819848157021036841048763845587267127231683937416408440862363363673699429051513135744241905635241167464582678001474960141182474897300594983787089652664739554492211213273976255235912174041472996316388555368725303241251998627781123293594374959255761684995087604445768659444896015858644342509437645201441299721973830878155663212551327566065991536502022095980840803555998541033238109675057579909511154871061042526931411851699224197454280733919550522611238710680063974241942129620569790516680324636446375432011474510718966310799268490770189839770433374631988969560099206471619340742242665805028761912696073658554109473689758719388958392584033203576265805183836158068361406323007760970983271403878506101205089391359814168063959428398024007603299014924662870909574454389719498900996433573615255369247203811434607622483417318931973202334834928171226951555798671358057809662084466054798860229841053213049064074640746180433937785108300584290027284320431414637806636381393093764354992222473092744511153183552724297563239696541937677114238801783172649920663712262337280201046425189367668037601893052391848318487434930081685211124319892468658993084391261960640273078528600599506860776162578798750529187616275253942996759403799789702305737676752852872143688567802021624972728895148453156178596260932145966027948968015860484835675432718526727536090865725446288800686976707789279810665405154274518816145428533182316165845222501431817099686901823074511117938147400184083581519782332525872606431317863544738540358688400607001385683101549902762685085248798151834442131276074845616604893174558680580629477345516377517913488229777549662198636706230613159539073930072216144567499866862920145607841724825248665797103082362212044448111524800805443810363315016542106750256732275147888959010494073741101737299902656934088968596205591326604652911443871914418389724953932632994181995251371298571394176606848185074206493976283297452726584055889970340349455312113826172979342957268925339359986336389829843319042271980036892157662993970418043693996037968503410902631904555330487009665957898096614610660235787488039257690488540864215458945730140299117144195607453516636589720615741191732033431239461919435471160828637214675217368549269311651580979600028869381636013139563343681304301296716526319786467984518702238288527019622516468965940304422059096758401008583249133434582420890329645840856908864495046129486330538100237962678672213459509755030122143473768044527266328556405807267830059769087815792623181013961790051794902977621758545429194515129845594715632378940944692777827606248705482898281293559354246651062421408333778086383740313198228694080901410578339923436065304631212292454860005462209678905109344825482115863864634419081712741248818371573054693872930171011589496539763155010109877053198670308543045561768658197780679994853727565440955844831199298695255164243774388960595798185387608055376484532278377414591194315020735243303795238877298410766847943060952336841205042936864303814189150575655041674831037758797819556627116519418732032430887489076861803553412188157670096889972338839032929971486121556518295327865852430559926168973357742086764424539177300500306826584575706414624380565916670598994950721315417191663636298487099443157047929010799848478267848759457555409586888705690474201061220691502072527346935709009652686382327646274885011068516828245161239767213142304745246324724072430377332517241534968231135580079024687622769110670287419632904478121952984428349551178397427499784427295590151282975296118707397068088744406205284274514235354569396871279148296640801495559977723606048382257957949781305200871328430507102116534963124816581813471849383672454556353066138779310766934766189459195299379076146382495050496228836618747539909030204792409684822113584602239014755830645565450660129759538417723824466701368232438277245055129775652679903073960564118497513938453313316664086620726200856592736170950075836973512965264428934632125210815111265315604586567262659539987115386219481862910942402050829749115618817546217336748069350086222959304643888330400607402718474592109739786382808265600707037414441813845521554634078069658388770074372877850540167187025526284324414695376411240215751150955874161656070765006987849159017501366028914143000160857089035887250173203730387750083718574900344519147881420843295921868813337030530592433145712357518313211327940682981669398466697231722009661303926960565366526691658936808838690994488953376886819006375108896049887784115997832802291182721405875584927137934449286204337304034295965054082042273024606632715917692348324970522836317522956013115091628525391934741774604225470232060777557389341633067351498842782479991173252998764187212905186942531771813430501432667194828960130490071679270477887623443024705627822104705111112772364991445162114225818847434435333036395888790279220482424248965118819891727978837543271766781817179407279777718112864239756673208480281713877607560143356512012485177289103279926960529199562252785888005962613681574878870855561178305579266769193571250018390068616410648184246605783628871993814215076020761588258053676579849095805190116844862046912424755944082862168215578468324507677197993014836573304704596856281820542620696814721885589259373916641453268679575206944271181047511190870551241441886784503053419769284675256778325003057788836535694725224217015508825411136671284830886489403642459296067179615870182059937087457482989563036210731700152473153053288495182918042097028427055327307296613707497335440323466952364473124154814782449518487413772840476811805033114091753085341879731143628045373187866644795320341362468939052401995967078859327929718266725651257103714500311604889607329800256333387461737564373489206261016439301779323495047416625433602598403766088263827115903019484654362426689850042599264749022696095460237604860266194699619848144026377655071221785203770167832185189738128793089228088627729129604429201816395527382727233818179089748094187926754616823631852140983372818795514917830565337199449860440924296134116944383755264094015559907124884620253403416334596278766988323200085202919739512733318726408943874572724892590181002752868353280860464159784803165308660098818643340174296032175156733001741093420767404662262557163455693242070048609470959833730468746247563565283293939164155499778662368923099186861449230750069252588650528561482452198015793480690557116201286341893016925679270743292138249508448633678650829777214052724515542662523138477703174639580021449905291380600615270980820497729683641030911384596176305037703480825653903312891687848424261290966403615213522890159776224668612519446995269708315047894481243103855495005580623966501802244930929648934273748469550941881860246513706448868867461169998832790201200854169492940624350062503601176346869505924190194490752966830289165827935689131787427857447351396852434441441882635507907591167878787573251114635163072307510544494767593534636786284146587911531317839408222400685635341246551270577765468962436889009917189955310997191004244107426046839776498065547869620410644522693353288298585933079929502277265792239613461751052124519830360872057730672568721064882413441691717919009873758494613291059009198774352028998304050189542129595965601431110983964469629173966216979634070065106916074570970925035021144327193860075031536273174056598165682844590892966399064071641108097677757288379710707278367667606531288746672343432253579704986404633962702241487981949631028258350328561886653849861428173191818167026632367127343043248530750393247697147254911218761087959168393756623992575996268875849636537624408820821654925985034675109053003323480434383377921149555467867295721537995837332251663563436788815325728000759552121369815250102095315128656757703065289251415750631200577281611926633051662683949903085894059403235529219349228794233247432647088020510969127805734523306293862580629471890014978912214184195196651723162351319528597222392432750055278875509450268040719272662665352715102204319529170444373715103172393999993158381083421868124822550131472492182093037636187176962857775077740456477620322953185004914334247716872210447093119541089914366410529594989272781697646759503894457199588624142908719731289849545215588456703726440065441376342485503453700532167433168854438635646938441911366397445243990216453466258644853331989548506689307138374651329961289144529597303566125541026266066574963722544724942996631753215225756416718771894830905616774311991055418899587302126059414214176999186800959731675157101794796395948006196598315881299520082483375096428602081450516172680612182852578347048483723134756017054045047948614427824996002696167079717540813540388381728089695835001857671158498925094756086251590931363586301724147654138328465702535750483609169636849846906909602084985287854648028960693854257186344070739378474366426965080148758594310821012563966345765645212587280154022957080421021382562250068817917121702515895369489098298266232071749960044769892264354485456008826661385840329964354990382579944598179242645123548384025926941587253470921048089498052333854600769587516382893133332691586048475072049716957911941609178611924824452202133440347887356315290933500664245842665060298895581160869997499544283292841850321315311036981988059440739676802376760090950686439745381216694030487481535160812995369383288528778346987796601105804259292207279859877132919427277966412597790232631519566517594506992438819681852651284561635554409747578918871916936569612682668323315127705611754022966242178505924300978012271848362046065339127262757646233896180251347279736521380836882372124299070249395463023659161756916953069913909689319606195840496279482142889078880976435931028919109178407573727354789564352579485643299546798248774631227601639215809746418401103442951984791118090290014081038858826390219513951786044147369798554490680851320522361738268754190797724267470826539503305976803430056956877395563118267502558103499383843431164350821745838500707830739706242904049389708792737226611697561461940850162120167839809751097591461280998696480637851560827901706265551713004241371235340477930591444101586094847418847123163730821896537170704267082378044496613797564533692193570521089176488712758538759824897800757216726145707647581259360556707401610455419922538864989933947663349613206154491142491590683445168348910979066812594599122717421907703417166037769085727489531109882057571191745040173648187991064751409612359008458053832042142690068004455649426968758068546638866055373308086469943827136716405606660489820888702792460384374040689509513302193765166516801588047283536389142492444946934284894972421688917833837996237841738301318628906700547615767271286077614315740965012398126278558594944979658419520219835097186487535997248916894613709579589737509768666304561909687883215910887776699414031266315131359928677388628336419191675888964729089048707124068999208430144631355912358261150352038104063277844404594352250408258877936486378068418365756770414453921198063125445551375901491712401085804029816360661379066678188162057415911187800927160994136524606874614559417315772881140803044812910796491346088705791484496412764981398430683605145192391180547380471420817976679447480344620955414912861746249915861741120428073964502281990894693803692154156572790423302311341094907747953233392117999930218904787341739052155403950655094589946066667161143385336290128383668530986992696968046264719255396436961781874097110164503289168090907538153605639418272755061545137710399581604631996661722347514183847305409764599591007460949065195478391553065216732842491525089954825463784968429524341879446267345104886337986632400455917432791542534868356732655156090633639328222257217617368241120258684894485996830637763069370506051302881338593949220190264839127709056142969318161646935863628073125774935574483815998510767875592195896303572293191456171336506524676752323962207444711933723016170838846902422735756455868875525871912770271450688123431923240142650128090234425562857616360897424644802314623938644194693325015879059334745254843993007936691597606227344020521196431764489506917366098758323670756053594066593902147684261301199385390469860662178188815645191374775403213749049631302681766128670779950133468490775762314391852809456098297704291326836756332175723312130704164017611750910864639602357362394089878383923011078986759864017008802715272027475761984376350960315034400513266014727456334876588393518580425578756237979213094346765863056137469396268311818960556616304342636284366853585681262185128539521858180070863778409298112967516267419347311635346654246927870887005002179867166914643965727562933791332104226580717981521670436369359827143850882787875842519165410780797814695899725556059701059556908321701271369035647344470206087285562929444231882544558861777013571993056806244636080505843991755380518437716390789090264544213468619459410191106681316540208464640269481957093566353640393682121161085183951202356368477560252810762017316505476660813703630173032146371775391277332433343122154014753328786700570383504733269455273069807863034321503957602560039877540457149148723319545582049466370132182211341212024169796178562295761400274489296022413022927819398914889779149573842821339080233337556604271710670139169752450618475429325367957295987639189764706336851846468135820278687405626221485024528761832344019937964943303467337278163310244363213203529559245186676015319602203226207991172693754560266449739704770852307148325727145416307286101018006219829209238155966834339691826949440615552013551649569743763084053529226228091494826151093484910788779058672346105350918375182382016398789286853511200765214679766853273206795583110101424940843497925690028445776200578355974015136589172016168631701063777591393093584306174432101841156091467283924560694579920296592037974877997224609566376875047928925455643064241515306649438219289535603683938650659110439624100026397432560004407073015861617693995500113889834840872537383615803933088008944605449475918760341559330796819637176026254133502927705263939483857823281583556443937365685075019715546489757496532801689212610677945461258336623453787558570175985202370012109748943938055600289301408488567539448356750215139671958810841834428001579627290534519349031609264166424546049632503750227560885662879305958256728359539174620237510055677423921325326341703199343991004310779463269769417135187668359597777400190414445324523568035456421033522769920688772160268687474435476679575033089929547813711559885661178977468778763978626329602323574025777402345288121610320510633121372102286545003792490452660909235729890319599755232533988763797415651836853798253613570298272955312391978638221013185396134598509068187455382828891538931431485670208525709618742985496583478716310720550411170388905351030222925222962425961053069517125414203486256104242329970225803332722875248958789943900127422173528970574459297196533548659917257821986647469833435560413156637174426241459298912382367367722179735000227975582255237218374715163816450469676448108962073855205373376340395278494315249832788669986043881057234187441020912767159925852343463811457626912405291798564273821451189938456220793807494623596219184777640135380117460494265997485424207205013301698048684166615761943819184063096991144460958066567165329821355227734157249430604508727073449523380539275755103693703665971440791927937664500943493242089747737375005828035475770616173811508753184610682815755334986361744796682395006799659289572484041797635779137613771298709038153067819226855294697433811257640119312942324078233051124340377050439752758936660298130565471257544425660251035736902036328973722485938515940794357550630310443650668499119282766617612959719162056704832107524089164679147252644744944888397642968052425754179207075248602929185969611835934396768446779386826012678142904987363286219014728345153134811028708889813466430965188045076965021246561919527576597440806063327643106002267563024762094043319130281057505728958844473911311762208193424904566709881106828136617872075255272910458145224972367672265630109239122947421961137162194633978411100416088416236839839817148058872650928297841675219467138235877517149672556971333986768437362084413753970846814472659147920127867411932283535673935000588651203564532408251215037962399467172843315977562059949101747097437357684900609730849834046747201013453568829588196997251486438034010246721726717904664475321328662950604351691026637538436044033984501814710362032062195128006314512116459373528310220451446256925338156340881834436649534992823425028931211400165360394876038339510835220854896393103166276779870443537210105726367981041330329094227993888083750007182534037493973773188233268375556795542355235438622797380619889333044286305187200599718679420853351283261481993048676864621843242653684645108457460573428453284940615824012904780110258493506945455261153839521355874044323495966598804834629933629047380666904594514032670422201227716851454738749577221543448123170191412724921994403605701158364143373481792680973514945902099011321356498157825372100965798128639777053185977452864929703712299282863161977393433438895130017798198496558254877996430462888071188402275903275549693151560172825585444268729782336761173543098952348843254047188640651702535367366284059659114002842504845068267357138715218187952821303397156162824179478440602655409229791489329438346033987839378199457354037411813825165092581498018254104753905521680157439094081172026837714569041873243780766333386865979344550695600583061135043446263984347469969396253003962261639131359693367845060629102829990515286558740062993346605671305763443889794664785067799138459113228175111514448487354210423819397530906302768954016733236358981754492092449686478748580292110758686618616381471749162756334593699986469380165334836400761585334618237468754412746629367305721118450701666259130130631810892905512508001443618983127520621100249083330664692738021972159513252075244375782805220773157445965260981818850145237255289467863390115324672851908094605315567840631224879966350616320480444674814278769792848619203446233946813139274891369975129250894087055020081012539227940864765214503281989350515547537422780053384728814048536250677569400330688486853615496929414081330479418330365532413959730880337109471491597129506692266707593383628075940905871262925862232957584946546635963423196880355604805570556416654617646654448869524109647360112670551228899296430204242771836328643902079757535350243870494458746971357740821529692489842531457397482923837295225567974686720309039238950313574702263844589697478581559246747315168126813710244919608156634401516525843083835555529867009719562131096754578205159411064160500768083088426187757296169750262563087862693053119186214245355660087271061413146474551901726901136303736681484624270517215986114172027218570452256267355710316019094321900261227034500591563133999195735679338127146895822801640479915548743202012440451909345342110777551684031338166425899863548490384023461250315778381545397454581192896442917477992560654257630328264013546664063845194232119795997078013237375662545061240493985410962701400585595380848694002251646741896169867924406952886474035011560528913214034334823300600979236256732418728722800984707345329945858294295327788157640900885465656099986427470724786105159671620268616227295278092364442553386489564945715116859871690854504236189534575114152230420387131278771442707672399846639662826823655818462330918216343755056149063901022727933556254227397658923388753113520538780219711381194328850019663437722316737903595156532890569183470938676468153404129959433101263549179352776366726830050892297595415231490108905959742693997912276940463592870267708537356339722348960345130558392437686456627417455864119652183886790283708504866283011009015119941741995684724131787990037862827479045070212914503151388719112452397958550665078718155744736789960194975212162373994938427668613924592636306478771677877476415765554600435140925668412122890387815214939942836642283981708873005666387660592516997124455859695281969055937591702889966141219365734691680351994206393872721556021298789269133676204759592181492019781286481347670921625078281212589714511718347648999418397658682838528286767057920788669149193800249124510572630449975652958255793601459755043944122355428742861250316588359708928243494430408958593237755490031521648452725093171017050123182421272473469799186916633643228239176730698250086511394303069672439819619672799803014526902348607197583108047925772717288727726545147430046994233373697385357757764754256567280096605514705562687058290634893990507187697624852313595797449018037831129369093408540543760281140664457234758994052506361007911798897514014792040289694666625937763518106477806427114719533641206245484312836873043599675895023751229673094925143436274270262170870771618016576195485012096529438738844147549129907884937224760263394922413078868578933130906278303479211416678947163575269845742321513804400745611802507531273742300778695330257098213164127192749252746451077700183972498057204712254107792178059642297744454283213704753080478124767432978817843602477949706355442739475439417478350984529347591114988131673709811197320013758376001031904758784068357178686881028809877256653537442645192819380430584579206952306405605542212190565290610316977446358331652510616680953292299944640675219882084046009893872859831414792611975867260840635953704230226780641863923869424808956176640046011495299075812667047596997350359846314439578289647433571370588061766499623644050996239232287628472355218437824042345111974023578508095882305437875427577123397196273493047662260901659836854202548230885660125154865361249586091073743757585621422224909455514374878979738123446386288073656976868022813620619657149539547358604929851084588316826468687415711196670625724403645086255793973420037466852161098225055147708486924040217151396359122585384480014185839690222948666574287042771880675427339041563357048693511346272127242913253730174984956849300833878237685968780631746535654878656874909153663213001363023021279017442019481927370208532762891303525443450194311372522458606653500508988614373212153020914278304016433592939254440128465325349342540405237340240335034294945162970170044594149585221596023662060108412932016345387142394928466742874282680761550134274632799434658348092043750682525342377220512821488670460317108430581248633216963367211489310068936093746992229757043155497267527576905504962092496693258249912847987220526141849433707545963554164728968704225870451512207845252905168633516503369694380187644691032305743983752182459143009993700587576119101917060989854529903116906713456802889312449188226572494858962139780406845494519391575485534800933719029671133385276802270151839607765606648578604036997661351877660449662608338232109758649294079692196057084108071028647059423337790266844350047180225755463366743818605328202194994839585321416100394176770419144303497448447920419552864455877916144017606351583687401299592088287353554935427252602157538887191926719880907917637756668572752772125253996903353688705438954882350936309732930729758724402162009948078107700373231626758140526066368514972773199188483253881771959484677559656070855839705719892054932298195721706384329432246821429653210367221933215832702964860142876544624228512282969601800069124168670462607567077714700340595877905741487278015147654229611837096728478166961268971764810556399512103872578294706737494167872156133634992289667319627039136225417428674683497447436459282640312028406886943532211561523532958859316262880415302037306513481679465554720303402114897656189137933884352648185512291770768142110208745946915902091976284369918876695411103807911121444182136721607518919918509641015285089526677016610690799640752411919103718069203224567996090332224058961717872808945333028129482600713532394081590115456903317758354620230594809395293424873044163373517141099049470759960786412791510281270312510997231772940237212301325891404967725689190848359639995525756105368838573738644116254432687244731395114319029370660994533934309705029708842504065603242383451710738430752396415320560599710906073912167357081620125783909369668326883680441388066572926324784943484642025992432420647901808516787829977248499310514380896023347903975327734915484212972358397111366391191307814800551043681330783043989819689838416815853697299177932438158016343853792680531961124539153443935580507039390405423559393120468950447478122354037387024405342616895293125353997949065510274482271179360342787088722427378351889438117193129316173542746363808506620119412469929649363263960077147869356566736263546513039998655275684921491420978868400747466234723597587526643258541306816897130798259423217898593802232540723222920662571402057610731675734589999388158988436970741959367906880678948695110836927421482082694058903385608821482337851872604452341385895831830332907433783686402232934629695157635869825402020530697487855592085831639041948094307986434748351262903309959775280630137377313858153898500556393949922009649277234995945798464412198108261299457942151038083521428775242015753619372291740061047642287795950113166979669134714875775448996526633321965721193280372058173332326069803194905255764898166024872717518758964709736270282060322334911491709731344437796052397146812069432857868374586779530375285903196390034249295800044193861755538837851229224281935520149076682947857076763903226538085782774167486345758550458421576963471730221392856793552441214500586485212037190418235112570623402946409158384798761909697929257864946944552936891766147693708035189013918258409321503340306921686617012437384689198238597147006237292439735343950044416932960764126260855005085745763499684993010002869193251965418340082324620885726198876655780602529547799552290989957744095854113587126142192341881115748194421298818789393342793203319185961701771126970540286296216006547125459010853140089076183875899790995361614863509920446545031857234104520210653009430062281555758396737331614168641192653202130447232631636531575720819328198904438821048498549813477169918235038528952714442123511906663239689120917899481796894877488554372435600559687946763258411325652010719317342558618955549666729532736460674197527057752319976676853747422318862551605765018868192602339811477301614074607196399500259637736851741627325269839285639800882504502095245809705084437748669702534208219958077952974353071308175189038119076508393171552073527122007993394257213037297305382310107366722590039010976075207059453710247542653098614408907411597676527174098813293503986568213765429433451712761099117301558053380423618322336589175511137502310516861509701674796090862024580759781816484081688354608263546641976494001037502238715294920992235684118247989138479842335605162235379910160128557036658307149742301102037017184874907195377184473998058765836984700395094248185202897305935874126694870908528229762127337128775254894255177187286839113505220985433380544765830408605180681796568252012376277260790165516729824504510399307248377245904935232128210538225509152864650466137358531570267261249042192287844085456134477014770387031052504708136273055783871143980805425718523766132590999520927127868262567823474173318575321400884996886116405408087868009488273170097125456589645643156123990174731158501410896989648083099923756807978731887472365470484255012266874173333221221304878313974560335988029215201686588475888204130767343181785168680624069843300501169550803756890418954085974105337564331368501011101780331326531259302809102949262685315885324939732754977327350532103390405859451094972260255025910214298685122359883575616791171957442480215964513767627572462385894337771617270452242589416971522671961289329559206486560949018703587016726460124832607583191662618526237160265121666255250458300241833660240605817296695390684120525502713098894011917887607672067009392444810948997612854324446414553342173671359359758016565788458432146098665218725589725916892839071300069455327992525572996061285887393667864168692847370333618911936805794313306088771134450627215773810277444260220798802496036600973632565654590536445455727774717773755463043676766417232108379605350669866346951608186266154086940701571493021534038112429724503813196709672201843455079178703660182402404444646863060747364521671963368443602241412122618021501302496775557429704723476845265270358590507793401960833537520420067732458106893313147457839269967203852432052139251232845754218598939430448585537960682106449661549052239385746522837589449157265181483097641164704897955999115789907986172949087747984976593966117032585946092059566790255719720745223919958657462805771167324971186055401659360598242959529090378216673526345115345119123333353928070782751306911326185169412093720282019840881660080371563832477969236483348195518462785642663958231456114522334363695824286979241945724819133086846840945302388137873933721732582579199557687855767915929685936414410775352663943402310970119146134691657037090423579530846858493108454876696575326326106611928113225654191799042461730906351486815473273852385170321850121363441498931279909749208899002497090913081972895624630384762694060831497191365582791990864001060960083696264034047241196173300306173359654906112731890470618262097255609400782170704879691894603124549887461278510068103059070507065481197924947937448530735130113397038579082136121986472042465343557367674785274026611750689621362519052330150107900225104009877294962350423731608704112208884058941524494913007834113211111840533309567152800689354194338497352136373127106900391438662478147407036725423695645201918202344314274203054524699771787724525223280338830398614527271874287159751886922943866632250839598547320770774539000128893004773330656127446439782648429294942197637739591903339581336365117729694660368281527051520322515324015126965840338895458577978871224066590792024609831943366574060596513003134937259725133973094016173268165873039556457236503125441916537367033898685834011968182094493182492448148339182399630990692279592735179629925617231569833747025759700135003672204630778599395282398450181516420346082918768432403616827431043021623963537679882449466701746340264521887400021619084770274696583341365121655483855662622913742612172102482104639362115387582348939582823734195904195328936221546983831841523441333623448481075943294880505221300346322819458988402706938319791179757392194780514219912079795124735534697304356828335874098091552461228981506846429768507039209367408403004368191106753723112672557259602420569902490849766936963291740548171657430628995319693159099349281358125326709846386744543623122337547292368476126602111999037092431550648454942504580453479511291373106859875877435002017480603267573367403203297227427904822417397247763486723219798907645465542612284893236272397555812895184279698855412723278069574715829134270639574282363660586389987646056849737367541395936415275650045416753446820389219648996903028353784220394521179484714965258599666334561025998615685328326709795220741608285340744914809392366995285875783878671273794409610353017764685232923423407292902421523394233753424317940573270977985237679078049479241012785158115847795277942912946239688291330273373232819429967410647213239012206957028586280765475426049433196831894610332747516065459280028786683106114904755686512156392169377336178530222946038926482495801143997427800912520028565611457959001823473027689422233030845593260333675742178526208425965185278261629480041221658291046108745792833858112918830981050584675658675381993046645650423286997763923615693133616036884313596731049626202284603632050695500998116778313143709901581810568877663924318155447244266923623337728709879342223148058002454693623253102368979538853468097003496801128674975774221262889481890484074998215897571220031709619172909880886133671618371265002529680417927379457143150095687571103189528506340122903263347358115652922900811469358511519714576951627880326285587382539765606406010382269591252328362177462861921616550278480128421251608064921287204707818030352224871396652557162771620448605061951542000524956497263913609650161381122198932816576338469974113325446883560937508229378146638955097357948277392267883979678519523171582521792530765062384988597196192327991126740405261770987016597641045457518683239313588826314794811157158522131022336366414910668938267172425192417364041046743253601862505611253088564842514690421559085601657073256116952229842254426596928262332184955183284386744433699879250938989832455759096458946963735473284304950573072704317589829655174466011554395478189737343300846732272597827140073710479300505546196313865723598405932798521907535073015546077498163423616753640046186852470384389921974375803369006864716674528742352320748711557199858614249435797072492080017916753596966069062631666196740743004530431444390198821935654150015713392194744658772234799657226042132129660727639921247869925439106855680574444434003508295583476874670083542201259976029555940483309497254744204690551683931827243243469804402188877102947172832838594164487669100345173718405705368048083178152649421903357615127314685237782668034216879598990407776368896831873187336206142923446634186156981983823354632704309447042294554344577570649561515238738085019308568180248815972977867690875811398223276638107821725724608289486180897982090370258165906479961391369359305184531159300640312723309235459084766460541213184123458259363948963877213676221262613342270189053865730097823033211224308736496460906965430727099704152334232836307764535521867246814757840853132102911858908862804661919394190409138576678326913427674053508590521267615890041002755392319818019017432343658158856631205409105535546466668524025569400398918516513185136419229316697594768273942070892186735330631993226822857470906366471002081076659434025218053352353211813711099045686725445312341119098569670674697353405480418635818794414643946977946631455083642243564976307996045187959829737771959609674398472609360304648893195723134077799333967670612616455718409018715920731186117883217021611831568610109416606390230603066630186016286531451391105801312825634044855900357814752267958097201833844409767819554374899580597361000560986901426594144935594129997640004991300934525724090193855823866224956914241645587131424072949768884672347486938571995884338141132421924159018620476030384960568806470725438634009492903510962017806733669223502411438355851891007698690692704809274542206051482149803469976384793471067509735031531612719082127690751596348363600984912497820194315612790064935958158166031506391164938352184140267158931675798721127998194443424662742938234859116853707130564283271836866593540074168567806680199699473568538918763457833320259345980061986842789828378636811377288354979434654726324512962344920701583036556316220632745873895422184418411225874304890328786151001362030558999818439844479225983471982272179225894244517618743272757236132204358156485338375285593324119865676237634982196553404848605435167855901541777128076003753099808656985264541059595958124037974718158872857539611153660321877539289623526484013694856463876972804850253033449568934312277426049604070933274931527181769912388387483069855802350131455583572626754820154588079754080767081074078214861125549204175667596540216085467441318573397585533762568511922428211097696694519066299534193181661868970529741602463155615688580691288421958974398843924789597821962150933159320139836410925822592593749718521273796169993610798321150061499253092435270273477567349359259523316166248273857691067978187441164751466877596288752235015453613901040965642073689802238818697846385453855715212350393615352299449453514134062182300416379789720930883618358814505944531632849667709902915351709087711329424795992241417369842229285824111804063265587523243855232270134238170206856050469453642306178856539161889223225968427529896854277274009303537454223610166905608641071335266811724879324782144084481526827099744705357205533097685943555180153028820534789546329697206941217046875480587981260268798095832153833154370732229374989484556918585678315579060708443875485292060516753006033400112986490205873098035826531226905973908940957007124068626890499896977827480321908953134715671120266097569605940779801838461319704812186601573619579301928924377725073983047571954175982612844634569571852341406522357793803317258285619701037583745675792760952642670603205312984913010827123473076209147798360517479917713939673587514198492360195511341910312296959216127893387441123875415208607387163117425242222416652494156204082214685071042215571539277866991150377390550315319906115147378427800531532489499443994836485794968042699917172389115224690597834701354120635436042609646657987506867029289304062406015362271112626118088967361494540573473335024073255774621936866201901499578115369767948433930245412042686320233052043810893842767450198351586893622145625570389743265401459929709082676797389757713526470654231881411385080534605249758228714941569681741037292298113398987742317467309289336411935983906733689506247850852945463461125666281336542535054868760140095385905687826938081081970217882030088084034631878046306181236374442339764611252301807856299491899230244809483815783179265867382198511812533093836044725101427147092470793402890322035015089965811790231653044060275061913052850368251972704492183887121898633106329449544667893815626355165643138509947522253080586823583671649142694318715373635464359014408939832696853909331759710065059378967051912699225952661088774371261388374226011952643717926958153123872448246746861645910899067011818107308186578638072312991742704118581415149521507652252875303130428939935630021750728938512231303959569477880181683989536340242831447025977399917302891601144987927139422827557508918020373503555410487870379851314291809254243227151789598227930317373927384590804586914949706763421948057624251040567272615941706915440348576010510108758759998969446932798110583430710634342980639186777732734659982152036108715360588635933064314777373807622872551654145064667559715855431174325314832330125302770107442638982687328466969358100931724482707544290602543568646172073132426757590266122838357562059466687530686450837028591516291849416960085667001827469897378493935962080771693562548926494468453978566805225265259507731440191492118844551669335541521435889239530662463553444947179122883884658626984745846497916633570228573926177886941198146277229435060017728665369386036808906044256463010895216513858316208685783995606729793637081345339329522279501029053496473925333584992397559883402714924481066401880560827425217958466327180688587836868286706751466288037696380175418296877191545771024598638606406747646951450541773430649276512058047273409021961711801009180730791123659613312571038149276925237630836302037702253690304982606413800333057649556454498734269307425671489497817327999505269187898016643858560486211278799178521293175003952325981919216576409085369624668420684253439568314996516484315818612654826600460388589417081336516078130641699193549734250359395537130810895842606110426638953071564310593066230712681570978606637711263328141466052128295560597629488908991386702086648891767685115330581606938844076682838029100895784669873352507794219362234327191300926349703205054627150472499821082363170164132564547892176372912138056672867088279645157361348096687259495271852483077969897678904432904095401058052142384199060763709290548962112136560681408786884957164010602269836582940468614804593123362320692696761459302074600805089881029353357000026016974081727249006391861042136102599957379489075693184525946721926402613493921879305473272388270325636025178819244078149968735757256337792814271346003165966289049778635758644756012126996785124165076408467888870155593453838433773589215854567119587220775056539705822361057426932152889112062804627720216255556354020977065889103293110536447404845660813344433036398473989929403366855908646093409749248964416143340973737023243125597283861426780883620114725535403549801692867475068642447133220252001284059558158875403433251221567079356335429226272743804755000549634920777470269418022858017098926425293955867582221776838294710478210838026480844299344855862727046730437381318786710663126292107201834315531913201476307637825170145511950331042094820941209521215450750334115982841047482278193161413340956589922901347154649827296543422850738183492033793434239195675353435352207346481835947443255852590690958445470158004356751343622432371857483218656382156953410805744946066612524375175470397803851941412906027021873268835351318969889109351042036241151125718405873986237677184691914022742098046143327346823316690014986268819935293642055256677009485110045539327215058994645421512562459167997784642942631594344920354038438687928709371413049329874872031971690008784982779640457134406298204601384641538369822473164371565404603945925005668058432360574145255249215246435553074587572507224395135419042051950166488760936704599135445683740855204758388945407609439918445308839673490662376035099535052743635349338204185764975512267093359928161171225764250414265358267992235295920463685888398772657976084965208205612396540601833043743426679966956710641286314041743356474133816565765077680697366175088547166110242812093972346188012786855169995460785101710840536958737183918923626489490064942823263609603229337502033868794779877899011230557961853008456035991891103647177909398079826143482922207473641132479916409618357310891042281226298041134509723645154934110702653799570123233823420876114193965858504021824503840949676258517873241250890841544204308211400654096482347632111711460376248807556755003729414870714845426970923965206091218815316518365831648644764354519196272445564337156233453178375390093961655117153863199307107012040982863921695170931175017920968274966834034541215570823289311940225709464303801641842886729555922672157698811315561180921067200906846834451145592449434936903107102423183905512730549628083844229653628812530793675328504447858826387363472529090790520270397726034772781838141776959736594415220539009147742533454947612666790000718331680077602199904289656137594628546096493879255499969337340359821798885542690268894162618330337757337052987636198400395850169059671383532347730635128122643758517898086786998567169995222341615895176630818180209399821037699317217095428785269644631675591698518127329751386100357056652625784389328127576055765648551394064991247474457037689315435690854156873381684086480095830507974494159216307920371606552978393039527589396875285779934251207704404049191815868128794907685033671070520494881220490169477530238909966839313626695123812677951928683232845017308359790442172842520016492814730212538948572432776685205810084750813918307991704793961595773027183254505977761791661238131559769348035145383522689512050078908517328219713481226261047505559507298826124248904384622519152988303742365037682760974327051544688070011210691786240816061219412733996260862231585957984207738699580448279631307330991466946632005116824194106136800448041675803306828504116494204474557446787887399862064027329458069607629127533488837987754972335310187532377496358243513145634980271381297637425792384720390185942019504867349477295618869842097130537470154639643918807620542706639116438706991509969971277250094529096618839344324429750642139706316206897912503851302398564338760990112260492479547209299172311627942835555332944565876616609368844494967776024725958693225107245225409071044194709736600663663340404588171197165671345156173489041024928983090687224224965057466202691291283241647482070313207584240171275559630435364920679413070947934326210988073224972112615522700738829683985159086000220244078253254909756827271082901353926178079664540576678972773404710131516227949139265363790677482488454650079025402227146224183615216989937140885936012698169664620495799002701826670475593329534385673593158427873164022824095462299230080321986254396149722969990243996040114812389165904782016300176737186158962886823830093510800389241509440434429166438406160688330380150220473854552014364616477962541098064195183019284338564267226370203782712268329210462995613592817193062549383888698383983767183338401290290444875383353947013553277750674757745860399421724335272244066580739464758830973994953438040666306600057724296430369482293287343886599593542074224801436539958324130732188421596824084869761526826591644105540213340854281530442651601067372896139876143959293229805962794420221393457138664203241383700101186670806984736783807949694910791265570805667106830078270706631285220203489211926250326567095970305604300134782540962125872930070733700041476447526976217393342295412013824825004874257618091045938697347461439995939406109677717741036826474423461778379834177164964061289259796035693567255510093786200169862249238658656275290356217413659069458010022325277875583968903115581937408886424457003412835765306179702924089383295477045946417411686762757918916157884174519976240110693899690916710932985569359669728925801695038826030250129262482616001546392572930294574774515458048995059342402057881544497636383779511856129367883320208040293641067000073603274473895374361258798967093312200104588640635218174660001151233528480326823564106063346278961587169409324664055488431041840000340099725830893623483518501142251467672043629901222074246772408450324717438922380111436245464102132862886831095968576259187333444973638382758590762197191655533217444076459044384643260951973848121971195371811034575069718908888055991098152516113008004421937050648490656225985644187517043989956960471282105726625769479000820722088828906281163376758631829508474610911370891800281951435471012700719814156289740386399365720582410421937244680793495175088339362538150060899369712908125868519685774543563324078172914731555181513760902306188489524005178063893836170914943396237642295629499027560576217522890699929330248230216617060833888100834822194181051342039132554101358125899322847757606101580666837732131725371164877904390846505388255544077799444800650979317010007465846487785755308288063041111336871185577226003069633241605044352104211351215796966926139023340789052180034405079205919092951139603948158890085616304203197816512880650710281599106932996864952156421277070197387471378278598491189410030590632549427617400175250162745177053435450388259222341714646643726916851490330765736642565453576467707082587236135350298756781567782508311279006436385511180929099437560715441249515165208564551670867934036745264646958995743201586362194742743569323554108078295829995463345387318884903669113280960574576591265507394270446078855290567646442833663162919865841215379051572724171546948003997527678550475814088950189977942161579602741864799547037526855206506806679483333141051283662167929181312032375169289021550430713394530555173566316697756424671016853792920513028840310078046292569607696435608255439868916855957244277842545615081243998752582560927424368241877826073993626466053655342930472705296800521892800705081261898676191015678131918088500372235558235551213439242943979805345393839715370037952259063299981435185843100072053361721338453199846420354509341902068961974718944413140021793315102098764847527027692188687117785088240944536817565649157048160152962732960674632710416254781473220254444618815942301575916019586970482855432938798608211410138355855740115863393320923328948066813953703176718498297483700220783121412381548332020239749566285696922869260245689964808450242176440310005156786794942201375468800708391371144614195715391122647512377878682860883571352435548505943283214340447556541970479134465489720289247064242119086677142462521707894980192307636476770786933060693186153331438540743088542162598172977983883592500629882018960514320600458680058771781132197792519393472837749720471498164144894495988137306629926683494420329104404667120839114535179440038317217218750531383392440920282601218053833363709460637606146482763912280990403361914380528510845746319360027853096557978588474356024009355168888369743307948826300180940421217829705820327079212495896894640563299494884042350134977188237574715513143266673203908592673005459330922879303049604115274732873041702334469398924111245799310538022901969808004819526595821070618158102640356779448067594165425208544480319796792742507246848612266100533411796125498297971943293342546608562957096984606201197307535538751066472401324878613836485052284434618043728465476011860049881736398508333568339914907299290745733125785764270837797872588312855962187605344026985105461842082230480321215447729009559813388978389003838815261518889830139233680164535484717335124693859640965388074932554669258547673137831166105364776777260420785739843836392033565014260835595812111058573513209453726228547636934149810432968256629531317340494481621191648794297943731441553381298349929497468202218065190849898414530256507734982817434119507377115574454396752052226534391651980940866351067907253621963802302476126785417872997289074836308723379353190378256784047357925807399510153050829146972870747784434237548793397466302389822089236752453577682919458312554090917277956811547076419888338652766990933008815877410029319345761789262524751037549405254929262593107961381943340994528506213279533325675305538903270625719342616852631283965829913533393833988703822324208606441013539851107380751274086277178158134407683104226585841844340488521471198153417439554861068138598438109476985259910992291370839337620553863339264604117594995540365383354646534139337402051078968476829892416277796316405649716560749531193659307517144342301679595331673860594977066712191681178102972175540427452508925587119190248140018254132384418371115116055906453685213977769866955753292705776739517084051941481745657008325753188496207641795876946433183598530309016816484581590267983683693892665985495026646376761380874128436605155425771267754613890912873786164222160279655201029935332982923677418642046714971851414039693288199230124564058258369427894451012135208009054109044724567553721840556427244011100962843386419146614781501951019339057783901925130189660594591169003395668906080753807877863598220122700269103336188408429449367045044433065892834479388740684981441540411101903647353081674257478831613974525805614776430669727831608331136681008079330540447602556989982114826202465947152169422584411524692681482937027800650823351089618511984946701561748428025145853015072852908744089556235050368876042731031888657738508913007735177490832139823320038506521850817075767203413515920607107306967093729005403741865085863480577010952049023970753860930557488648538499560658329801764258954733004017378641574539361239857612281720347805756275511822840409425097754133934818467628052977917373577556477350002272233484556718578204808264417277924349387616708858101245935340384666678685320052249286784270172411664903330043860008992333218513181496970232481217833641381400637706024459041178479624145099105424473387202063473593957501578879472693097083370650268101614329008538031780828851207952099627840506365254468963175932281254063816261851272228820803897689562378758727964728149084711391161536990774452212930576575532875678996013271330919749991878389342689939892149713396376173886311494684359270678730221893555990942199803295914083486601521353848799146582391238503705542092724811459210340242989207957693731383735230084953101590988747233613632393531267097295597496225702345176007173262612275392297971921935846978103866469903174985391392354934912712435868174716559087903168662855855135114884916926717634320749675686763361953517618104475265696538233273204522924549716905540773668701123400152688970719883052723182911112011567867218991599889909422891647374675983720873341539236369384369461995776620895697809596913680551079337374563849107239889757445173459796224843791485304364247838892951383884906269317888230736240160456957156959519270887030557374355534134544164649127674435424412139256438423037129002698713304967026459012629726384840490781443521192059319386205329983776792535561127051316740761151810792620835038772991395042241313355364806088917351794339976707537045803594948081543059615437655432970378910739491614746393713580544986243333493459897137487441970682391454579319769942272099955957434106646189531043841157772186860572016574892831816546007034227210094057886319936403880706998975706303015528694916008933301790554410743035188136350551358214661029355328855950906398872300930896364979987910536963308485916645388728118088074849830043144589319380974791661770311323744728409646466995845996667541687203679558202069735183825970256574585169471432689164426915212884478297496110003470824931022128448407992777930020111212916225252903371741814331717718743914298291196928098230528350943223679767399804690522645981333623704157938894965227313409909751929665313227393958372031525499401314319781852702806101104428252172623895190887512233053644626159105407080885313578255573185494959502159331043763558121288090482954856868028448520046032319157218407074385864344297899886976046494375393593951466531441458040952240842692240146078595316025070489715660701462147117157833135810837186925258200952327711985145390848196163536477223805631726161139704527019410115070389621512703048566523021692487618438771933036777180743276697817518517889618007862095699225515738720597264128743327125704394820663928644651665793510329727274136806992378150243300796839011271765920180573829313457752692270998673057461131747828504154586329972141688763153026106778646063826077287287861393118776709119576791373216785483689286928118354714702011422257507547188266348881026421569485481614239462950121287708527365802994268418151599198370731612094075995174947168249631300748038126578856124327989838514295953321861014063605987036958835300699004404025930714906781416671500260600835169997459381882141763623745216233162360529082834127871269697581310173535223202614132727408029097927720948638465644360897273897738827129950686755699839594865693800356772652047679681259200907057390439343313745566787896148105665239328468302092594748731328204954564785459552533028405770092377414730772758309095928257235924266331288264304416148099149949714930137991106469290868188820917079396843798432145023105071272977138518428763478790789031166274289533564666337190076484912975661935934437035411997006060206119214559315178240896839476649398297739569563275478676597333968843726878270036114403713596941733770578609577996376353955503137743729228009017548682407837250014985019999308932360021498877423774417342285404836968943746647988059998000971700172506176818680609602662224429595272868905682477978389392123493818417919822789354207784368955433551561794552418086667226258341447217377444217127866271575542722094546624907951502534323933331857574078585798375973967906050369459136686925328653813774080566313846729604513649198163370765530396054631814158888731862689662633258753066240356497007882307051774676475511536114284134138790887663421495830814496822046777474158868162699319741124391007448782826059378650601778730741693316425682652194879744296791724718929576472933377129001336815498052187997884196738009117506764590552671910127347077751824632267883770160990503277529753270482442266084849936100894609847447274954323369050378035266662670987849004312688527102390256399472218239191441479380074218971729633704449888572037422704048444936519164200574759319705234893539908260998103393903547289703325625208529638805397486791878003942473697543931643066038079424800685239341152868702140792012988676257782816138962591138299328894824770798341425960760730799491542507835110987049006559968121885535314703505151901749052050255048503212617803092775890989174133472804161935270790223462152311372378176622647680236877101991949480050676830925583822370123322900815201342663205561575429526506065999176304558630167053142683264374725977333237708064913738048439696484483269255855400897438407108394535641410391127324544284998032074524702403385971336919437885148420775198989831169941496180414902913276749927516592289319985839399924005451328495736669042863224397826482465832834189137135114073819474997605841094630867615650268475240547484482189965046456365403318099314171342344747255224211391752588719544000527168307009425102582920562844760473443931962193059471617536932114516746209675686964324761103569150936365947866507836351818833997001832786679349097000326297912346967473282639647960179946410303072409424020440932300020179270140720095963364470480672518711271434921172186136193208335330945021342606006060757955498794079886365682610308932983309108045113660430048518012105221950939472834280566611522335218295657895454177085168046163853263075956903634558465859772911250839817124037130281620686774954012154040130160265733101976041608554612847338138745320394076311506201831065773508952866774089789761862526037846674797524594728737812027077867514086338355700919878883360516609006060899829453978977065722489064480378186678727754554763228915801553320568544515387904079352015797760673707087254216211133147577498124864446922214803941362720570062972446376524407529946681473405409850214682619587756358202252222488107436344827901556869351051691755629654010172902816667866529054503550334067784160787920952932408756757494104649903365454171266765255349755068868196902314490385305390808298932652264502154979007816547290009917670102290956195108110283750716603833913697973909608036529562791447687478643917527718769285365363258045751299893718233644193126065733807273418328442445577084107662481688821497595536013347251082570242736302828835869160739567526248216057367973655047987918003904838741732813507306514473870530724063942668135454149353199908481838974676225341010466053157097460583633265620163496328775761290626055021945510371008435017925623674733516526786523435462597209975380421659170893794845860647867762420369001737780606125094013454014306459089457820226968843481722668089520041856128819923384599991223358371861299370623759676339966633987599284599417638791639730538952262928643551408231563301396189442166733190000128939999791098822376431032516028504034966438220921730983702283369131052330028488624553996437874025844709151840931604054558994145828700114803172140917409005891565702870984947031505740264177942738654930558822327649372790415456927824237661884882759206132697724511853510276085294169314617599814255720342661770751100801871444275477671333042733428379085745766064406041403175385935610304240856665839475211715194616558035967887143122095721192440874689050728936312489724328142266927905385233094362882614997417354004014226233718055398773774461284479141135391649972741383805834163611073451775899616627865413400862041639183092238071705423588439237242455854516536679745213415273937164017490774168928845552206513917889470564473922459894404753553531868000719237768176090819250879057884631265019537913739932581992205930968376797047330015498806623238129274937154988235394818982051425871049502027412040173368445497493135272382889163793912428346632383079456919085649081301585533854091053728620717049902222295979131593953062961325119907566541717173778545674759873205499116083688154866125434811573410720511135708380957428200632714352488697145195970115452877047396382573666203732452435594927073628128858521127053996695903484437962978365753059887688570170273323293683290229422743931310722735653122670828256677261520338527267119241469400338110818080568264283661350859172046555413820775497319334030008200867361228018030501909784470507376839422066051403552349473456564040450961617216479482244806895110254307644268117800905754427544339397086035371176539736744282076739462788376681159494588928427466345614779218517650669627917244439407660208054956652651798325517163064937934703187550186603117372913540604691750396706632249858448391167208205675023731290434651590593872196614156686374044159215507337026688124432886857363706371071553465404733187482030733265740553267415850141507092911143636660435928254896952468847585054429217760110916038144849255601356009661331945897547181689871295034221194008414699728783556758326511720793015238579434979087379946502338390069180509135854224063866984214827324228819365855382307467571261413353269062990315062603125125697032390510751068959594731200302160883860971891933790148659528782942926463537232333973594747119035372671302384592892414162440503364914254770586861221644393356299466719435239119204378003427180844896145720120126640973804228081024022594107881185603403772501830597313411479730631336154481422884510580172644380003258505438943170882474250710422055714164422185066535190996770392409768124215389433006304275592622050230506812371248036618908874336239914715794571340528477862477011810647497379513004597124837271136438011892091843759789551733074010320342622952901284322931846008808832991999776479484783471072986818419790050471614393269436496002890182684450384849002532310048326835597220730668657784615700993437333541180599323261487238172024860951436026433575327865799712510868058796299192724844402625696546451879361193953117407741876224118986883656227515675279467804300032521053719478615780559047866790171096571894649150768990768282953449930163832994409192483128253082203190793407391190097915695497344065506698497958463586944510520772117728478652338716857108652612524925328977370658322108571829989383072038538405224144425274538663089367675530807059133529014257331312199033048805709438900749911767831537058812781183500904631717939439911869070954129374268067992931110669074709602519074842708398716432286281813357934936831935554519777972228005671999549226580776643016302760433602053012686678867012935742226389697853277501526955734359469526355223213807523618864025479202278847213422863278853244290252096763006328222532971581819512457911211375159308972822993456654052635236703524920137311747862619461467280398759925631279297558413880194091721323059823991645960584170428286714511236662434491304710153918092074095465948919185869575469150202263582152400286981003991048229770023015440137672371319290665196932647217573192697868683924471056907427694198253415340621167899579413409669104081404636718211155332262495419360322252858045897940305403258069862909970218185015854378882138007563356697738418513918219626360653195823450288230096847565827409971665071232593466933063940012192723544006263455801252431210426183108062556578179785024107210010888765956601914162325770174462288990739899719529354952174646649082844335295509999495501056116202618470759041717635728535390335124103827895342306481113332099515945399959786928117961458268115030385642039749890839671064283562849715123706687925424213331361144039121909905889755382556873506937464789550539916413298015386450890004802983962983459885166597127530753104463869832357653084403511136103299615303387865024788547010459311677582310217775642692559398877752800224814549019102774368283715787214091954688005224489200010702162756499003355198644806440481679364769101551627091760321696792239292935624730006598114547901749923927857392379762806206595811118417251337812391421104252425342750070624227155515336124351921411404904029613993496022277229066324508309998765910219849723321404185592770769469082222435844269501757320183627130787760655438452193482450431194719132240341863595047716015250352089144217663697193384888899274047295126323854456219559090716317261613093228416241746412241862361428387693814672695475048987512614540153064842480892164189721483898321840576268803454037055474042178454106755406443140350960590949863465250904393326583967688853745254391371408771427925402073422353365714451750793113766787610075416239538450807020771370792807917223852978061852704095358028381755546106699686068826663661314886428342095461497279703171858684517780853789606307888107604395354997907908603477820031618469994404259086255591272984173805813821315271760102574024170608800368225527262483952406106415406176273300094433129499896677606425827364524454380156023467581385289340105350360824937895938379727044282842041214970677424658932461873995668446520775827468791054562690662828005225607198957823428021856992894590830511889229864488400594901150808245590138286292174182006725179641452088552575702550032882655536590320476474179079647599137596268849670745822777689867241445221564713891318277978831623324103384055098446150877977549125479405315501086091509518937343386400424489726328896495691875474155929253261727339486157111260905512153995269274717810654493021518080943614434900915413299100452900927813599214436480993290323137447385770098948623029432049071346165310300770516699563046077194579119500482675775009441358414061826459784618472221160980517012471827872662262594209566611608595954906196456346070018817980489494862964763110750031838400737765244880383981704661850593678442749309244960506472879280022005730264384285549150425355262171042222182395625994557528029416922960605013886302813726361969579620403792264028959640365859125642498368014458617872665388208428862605928138138809209517164032306972639823927450111246489821710867725625608036829346486262696537429381399917735639742740912560623846665774670783074308402370836460296498880505355345348563386570448285443495555804033076766106000101178798551811604086928728164314786444533940592847110545445952899427777164976736624508966499790051922854535129339101818827323662310106924028243938274166548446256646093074516728943104919730967230918600411678118140835658430667197530589899630187466768388665992423776337364303026692120345506419988457775539767367807297550922696780027364809578846556215921579180304297008331602201026103289404544867453856415621154518973532039981800988650894788537805229203122435480356964852225853474660798691705235082266126154600620701971055430673194050721432493038203146439026099690776868374753856848707615282631949204418731074832980211915729230770344719138363491994430969608191112852732646358776843443016676040159918015546746872977434026636652653791151855042902431522719193920466807446117747657920900249114125987793772616161021415260335075600534028078473606864190318803000633565056835318653703942256366044471933872819040566858213540219367718017415898658828946332885642251460317218642090755280057289351265100650936518587990859454950244163905365874503937903737661417365953772417873863310788144125777732527226308862586658575418026679986266545522254136681184203785746751756049430815315290169472481394723977362917955861492616791228348485380544008196624454936874829399659849122162788188546511714862136536319968912005625719067952338350453773878163731577635555026270155177020860162497256183263621300205162588415330615971839376835534221384714867068039295525792974825584967881241727126850691201756767677619973743065131586236938414567058066175785439134670862063700334554383357081164103896027555674627724405351001836937952292946950384905555171889595516788442865350483556217153639439803696369233539976827640335462521703765608157488998784970988987437812698531741731426593529707254021748284285924439530914622067148894466638997353032066797251519140809336836258807267221710633823102754025201879168030490503395597065027560237730777156935188931941082375479375571261036480148492731303501860073985377805684306236712285782047364643119240850990034013229520154512461038555992605190366777061402114060107657313806047004535029389385022981402553373161073457363110396018710513607965917698462818859422660005281985439900796587296399746539044969325622647249516255794916831485855285057701852916933777501879577857121557265565305801528563753628791470463629188867752547773557713584977232058686167734520452482221396842352869535333511337033756713596632407716948169380818548218997519820085568553269591024103077196838598977679807991802600562752664427384765062881905290492689451382738745759152641710435076581398291251736507898551206996672222505632119992992177548727935522396349569636794587760024058335547218056554836357226476187618522256655585545585169567401219176334602693207283147900233387637716770828965734569347887104976461038024232061169239006406831321014962737831974689708519565703905714068594243639329523968926658213745472182802298680793449488523633938397319719488188659444188056184836656864167939277442372751131565106722801110972298362854253792033508955671544555280703002817806667103617846083438114959099257318247175292240104436733700924671256836091852368683654924659561315417086666384042851023977097858851085420917669134982735848439892923442407335092804110911592365798160237825017152575111419144683546593673762246478679413186292631546762310996492673779031980596226398896121675590451155260210351907201629187161573066897900967090503739204025790485761828647069471237350773851219786783601681956193732791568757598076934279716832619430256256243828959679113996407095414147202295304046426950542042582133251329801111710334578093784243351512824161459721937043643123861878174941269917547465129939117587502001203967283783623308470535377883167341641371506042833099363484521334731733457416575427485960308802216578097583421390842694432366493753877787543171082907874294013427722306389526502714339135761990105633995061399758144015359623203723156696377622196225060475260006217150228609680255897780559292432062490625384425937053536828691538115353721999803788963800809620067622597552156040425494557698063337537105649282240712325663349826918513495317884439179703536198060523054653027180952865209131599329440747252278806733844709226131739023560378930371741053705242229596184671306132111986942237121483009236084345887393777410321805649629962020295016743531826527647912098106185595623557017375234456234490953145587141341928497172007985834906455911542813987314973914976995092478137685370192171660604875964656513746356879850289170819547840291341518641605322497553516048538328032782992989130332311196507394801983263989656274170174764749322167631299926448437581309100104753456142830359281611216419032606542421106775104471328712632757349820400808452067101868033098903011212219276946015278140821756314604699214482961736515771969842394691728962545627232176555930149000717815336796131115109400024162011786751306267763998417029403751369073583027140686736058530019535653810577981096602497367640121494547014644039178026565352378973569973154663613795262663765008438575734853654542424043604684844673139230395891535932927418762949242456981249281452926016196622832869931174771972198296027442631212359992941035769808542466788235075768590187242250711416584400338288890072758724521973087948268645275087289053811919565531092283619285905205482928987084010996367529754760219239529004561393689440592252069844384805409388166763780350308139221175804940615264210359384058017154910822131465198748845055975129916735236847016752677774688390141397227988919507716239807966651928541278144899058618362345771930140201675058564067523507655925585131394335461293779677753895325874573018479141963904167055873599541803378279271220667947703124545426308790077240999731670922117722556370119339885772000508147336117606572326746573967572669279052835010758812198103945553130627827252504556101754256501892086607195653216814805881428025166162863417916380346744141063280894062231382804955126650851265948669880038474853506681373387298027047733186032594357778727669174631018870256217547327714148381800100456004072188570412638677682871554669615838845463534591417906520141675495435137207577189951757612480198778753976096871182797881674346326313377594627965598330493222796385482851910625464401605073244055607996562801628749731305176499857450984121693616522524037807101662895252596020881533740515037420084457357718849112495814788367655184519787320007133430101210233386058831770777361611311463665922863957106715305007585498723044951048863270633723107438339187101417331045202595653873930492286384407452453412119897228523855805290699490717060811226014568485853077164537727775010177250138677001185050714923254669685600322675371685600213749371858640206210283381509754491629203356325077109426051173404343835399889029447946284613211883314340247149706326812484861126882194924182827716456971567256828413347460109686487605488065279729011634601151755319188817809457284270432308185639318456747047107934692564415280988602507278509985104467212234545984461252100525986965295716311154032031543233541539931343152510674645230115773713513705040461653343428059326553599988078535094084220260397373070924085152626475424323028746556777263035920767825380074242579757171537644087378242503268289322731142068805730299360906452235080487380176239724296252519579116295674874703329378253836569910659483251466909473351910645850873704882165360750360457993767064361328076608888838945648509126801523909679429565635579476965988896257143683854429658901539150204950250848008250527942784838669234055491630928664937703662015613352790977141284128588921962930024848082662916476026761238660924054297011252090682110515191245273455366836795522775098513259486325294974065807208801658660408982335567337784856623306576663635153002092854070559539215618853546087418374365653987797625518754662262741915788368852606329217387883811847010574846059976159288620737249566089414436849217363290533451123866336473421745880623084263160609777455733536665152405446560563528007008687185750901952097793624434455675662555327296754883905087640382273101133141796414808845823016290710243805280536620324608096398762976470283995380471093822139500418874809927550544823802804240209703158046973116737093434044049042554012022144705115137648497991635653361160797471483810765442060040535802140190257540817385193069082922461632023803389181684935135469373153114053442584112664237380469547023508236150303543343839484275457438879832324107122223030725019446175920934769241684068547393952102453247619354403290725221453067526775350985560916562323625081991809369392399074511889407894401200147095181016938587336266091897799344285105195753811936817191573423442313262895685941456366910195095032679640113240773132299561655341167895266690008394036250953979670592435143513182923601842618085789019134562246942491938494291663174538023938707969248191512259958599879285325384348315955258813905054335894542700386158321423518823375109478818649407997472297087460046710452173950024246524281353738767351000879856157706991593305353882484448544651945631179459813133257476589655800462224021671857222620992938076175303114253736031105893832351200643032603884735881099454620227976205450554696947530248032553941349942907106601371102067391829875995187365742613249658600939599202763046892708604569571525436564025335130992193565456911580548559784047303265814784434167986520793084294300811088817626708005543130931058907784872932262472513027295079743367018016095625413536494079934774640914795845925315856348285629321189530448046818228666505934797199059967175431255713011293005348902839719132531263393592820814699024613061975550607026707250857866755298289353547971103216033058213430900511186051023593473351452132497528432390165854526880928990215012595936869625404503907332725134264801894450614886208130601929642431270894217194587939542694642047278951998769244511932955543481700401267222458845103495161366347939539463491519824736733502917235655694462552217692807267893352854898721387319611794302547986177245549712268503879759304378427666742938741644987866256646796699434541597938548515218625214228262892662535732184229982689963128148469339840397146182451767185290551718611553691911910627537737542730554502039086036665660363857029729803551459014643181144011137425007897112542377537983541400957817565510741241465385117936624249631120117349297221850112294301703334768518229999492412652650520521559089502331371433815547101956564159687187808182487133677294971476168092365260075253831386702455154126278112790536678654632131318629765679866209305843304716325330759224805897057030196111762739605556292535452297714093256276051307767749014060223474705814960045680795243359717195792605222509753278010916627502196645724249302713444923161441881487358021777066458893103143196255523196390158846613015460351677798720754081944761803416356611436162578084563510645657099852582612986064817643746978868913633892802959903207123761814086373207959373191879760887251524941493537351125463414162185197902936020963283952564203205222536391926234632107454188393131227451257883420109393775763021774882655822969734342820714663590601034199318474330328392825520905465099499222983413198499006518762490392415427605507474147115083855662387429990417937967068590302090181786225639350522680298012962338910466525862037999989937027991631771616506464511445147555248500894446799763509642311326299841956671087671168970652600929064912546207391809864224194725868237448828534619138446959689267924688005793465389619383442116361751328922123937224481847595764725713386864018607883780078330270717267418667704129742832083214555594453775779016724688512587494031423526412057836246265287451437291633155041437638339149633740396979647973855522542221109407054779191828311979587421690019926381466023890107865608725665331854364624367543420072719987274587121624581247945194069525613944101375060235077429906226994343586930705738043924198782605534504200970491664713817501515309602486039413622309924387904233335380543697433565859205301986935320747499048980926735417709244849652196923902109040482329045080180530966721221896719098366571886762535880946426040100543258851268895679345800073763708535352341546632520231350107047054984415979946072066671942713777394865967511813737931938086621594610806448009263482102061327277187837538946639056405864774469501846054491400631953730092906849734605514290830499166290116173581899808677733260853082616885279608723005782594336287192998404485085339469061733853161403137403576759796315484557589194429490156426142575210301394286303981100525205503425483882755701148282636304599912327538103266045891886629167862121374158099676639426000042277476143543803265676526629043529326110332488837179965114384926396443429765917648192002831556329843768004459628123146442048810709612169322294834207394468831465269919971110477994656932140499185714352793890171975842469863617482661532132143430811735287307131416812862006718797166878049248925002111583283306592729465093354864472484184592891040207560046718873923502441321347888282096670066016865583154392630956419135712907652929318165336230671869730436070740776183206976763962342078939231679169307477691007976965478551605697724003342070463445018556083914148055145370823494512127060621782957823327789020403717707832210703669458467409882811606422682127350947479662427663489665419964581341223059613707971550837576293574887291656902437154096409940016639013144860468461091722602371640386910119513963212270395609769521512573696886718128733467062905482916759443764318328742291417023136554384610684886256194026363500007462998318712650475530709811613402118072615254617406235775685139801024696404551466649055227585874620309426135473991109811202303933232986092717512979247539097461518724518324930892897222238970794159832541379006580501066263924235024815179073764279893101742258275995004483403702392601761276602374056134344672311831908466915254956036314326693724217187007966845623664893354242105914524105015110122973984934914942362336533501654736820419203959618634971774550966589440780080341926761539571684329559531203930288547135444950163286093042937868982506587824284123248029710804542334653085823423791563389524202613403960222908241957252046601299189665839129165385836061396746176954075766819097957844532120465259739943211804800365999890281524027887386597281313312446800261780175014911180022913310287695115923625206102588076753254096541492361908784012810161120634129542310467941021927028811934361362383180591051192846690742714479508030567480451025809503620866088891444824548164683857883229245068704486704257376834798265939753779764037433774022109004551142014071355677377301057254409005282161375653115038749869762505068738603200455189997841913725852270856318120111210725217198072946707011820411921059700869269522624434237002696578668143249858752292253086316217744589531556666186256850130223609562412020885967606809058973553159280734522740237378475029406322871513501153588442764862123316560486072117102182664354809109492839428696979356516533165540523901635594983602960510484887137825133469175762356565516976595487065231082594867047257378365907634181699498206526060716664193424292633030577232712652126038357327433856765443412211848725060014204744062787845069008239599028881971966216778297201779866554923719312943847183527600640408966968145334261049747824437424781786085288730516554551816406652399955559089645752905802020554402473059139735282681191735936470787743842586206510704877256631075076858571974663763098003985968326980693998899498184322324703051815985889407995070464713088991558438119714630705658467530996514041665433559880529989212411000597479700917986648762833162447553526398751834756475262816026876502929420937797175578730532177303723847215229505529317685054279994306567442032365281488430175190422155143531438526230014579711911906928411993521758658665037534895282796171010992913939655771524445022760916462818252901641491580464604643631516322285799690212706967997936629575510954910172433358661576042995482866867214378862277516511728747752574909970749879726095784852201152651026261373066519980775423533586701232936624893193616370876068091200108837428235285739810336933261862525856544730666427702984191358467843067053741781199753813624786593060932427576630766806306852163052325568201570768076432664773800386147273816870527260166183866666291870428273600428921432705595757712806735813748799320375605171398295813375704601575047077218337904755879773689099008351025810603213065115298903572998304731044153697909257764049800602495432952584930993357429775063148833996215348225209947858308951736282769914169004188074118774813374017309893811894934090694851832249397992191709826766148574368719582226007655256724333544442543055710073248015358727521907678833642334906612623980359166941408323280974157174567961000650421292653765432692385827864312479756263438418377064622348232278519607138117052870875963416212089222778997108163037381188077642953295916335945127488298238958730661543368457126736964036966298414047744349338867310705545402161092178062558117248240862925699441133631182342314605034386750518410297113925590601260127677448314286069505768122959787735678920338826738715511089327713625535311824544897968745220961436356870986320736400392281777216210071210355488852765496603762838159907864511492804343570251050005413315276888932104394036809917644951147583561193279825918921420044923843199581168902475615290961860082019107295552740434864225907204011046060376342933941973584940306384384635604792310431176707660022866370679288719170020338660926826681905297890812816903164116331277505567487124698320151062391836360593653251096694248632802810549883753666490545603775019407348598854346637992829091907884363683518016183515725709649083628740391713126173895672441815526599863825648146544866200928463589779745207109554107255618025542234754698766280402854161498184519059836415462980041201175911167269601274341648868587951687630533223884948695541271111327466865731499751186398060260703367273564851376894130064330291214920286926074763033130040843055067982927864409277019861133579051814796773851940091281418931382588926972632299747513436775340009119503155532420587728074927123079714592161495572446041683871288375522082764004748408402920183047100325785151928788008257714887352329008142669273701100208669324696651269034093162017317695541252335375181831491953684350019107091663308135438759401991168793169302741000833457621902879386927581086771667692815414276205289982324388327790167827613696084193305454893155866235715032792459803546354437272424357073817663697879445859298164601373714130374390163572705334218539841972853557864474198693652696661883763363854698497007065482619810875437955734220817496214141024113469844756595262426997611062709081403661829595844402680468077195666995306527211304347387371409253217254028848295122688777410942430223081343981584551357386322677414850851887208307780079649398470073145669009775273976866534757059508430483960583209691205450807249162890200899137535465523607005186496177336617094691053579922619879921209700670007031712000282016866567924212857415440112970642169892025258524000805008229148906460698383578696268849433488519112746081156400077331244488719549028163011084925004305834419629410581000068411833573222819023004747228687711752611192951362514841979575649417965176362863129021261669649895380719474178720654603365984477806208462056032929804215902054620484476378218237578414257707476880376161549538781977498563526407395201754886937145007225418225481510170581041286645528765701937096238353334510721989585860384496359404588394209147173369818534302784326819381387569395875219777320033098384466014457717420553931428606919484122937289825152216819873013169251387938341526732403618421598324889766982568905724844109516928075870844043464650922863655917063798888438109939558717029535060406242521389020399183470529830852895838603684397741043716856262829676709048497261284294753217658361130209706846106744364381688514477945236856740100992689372799848342024490397484361239009542288621757929438755903385962551309084712287386727191565820990376363556239269190096003385634603094097025343552495875231954419243246492805314695541061641530114322295902593865788914021924765887330280854013786466927208508433948937718412502036719012811559817060483549998532957656226578546731159067717439179022985054743945222113833916591426808444111956390831581368061455067429831626383184880636069654506271404687260459560976718528247381245967251955869500332793208145682652446957636210538585205946383595471041517159442675190539775831797060553942387877038316556521048710427761435328590643513725467479905408055355947232698552609049379565436440665603561722093836746904246129849987903641766509449662455693111766454252909368594987906400665085404720196468300720993908013153551311593876979152779220163668928807329242276127442644946323941346402043581112400257368002537401699888697480410941659339379398251185890374561391739944981798967693971135871763428854901494467037613695347301338636287933953807091959352492735285141930230644576597774348322949708661877709382954239280773772834872966606255541389589213204169772825390937101839681183134512256459384072629014561153020149040205049855834698521009310517812386798374095508080445390302593861797788191827201250853280325933096068568327579570232476850656345901961443179885109950804500641836285874845366924520786954532091973819797803900323517495227552324222939923972330575505938783712089143538423931343381218197768597275570221040801132366713388294096149923088277012945381307848523994517387401392490610416532904828857223456533176964622746549820021875772980815219256616692647961899540399179236158815126805932367630526835307067852677009678682703321814965792611569519807732462895854965972292199629139904810204986690080110195478170476488988159469464853018618384473154934849061172033701988582271821563461450400858680772178418435913989133054204567942793912795820349296823072069525810223004148430645125094539544199877810750677918323014412790163967015292563354147713015738183583108653358639608374820196655137193255922489908475550830320892386215234724520114300388294951614938141860243529324500355138294336278107754570599075474314915872434895254938394669548151777841994357626816644331745014039913449327630913758189321709907707938930633022237883356817439289065154479908615196310834799608928180128254877146595300615137581370819041148707440456011584796722444533563438422044096053876999302798405921808616289428178325753601675263572572901072553228708590187673209782285427097838984857821812533546336733154136661860834907323843406996607160777358098432821148486312768873051005910564696527721712850532500089771314597452548564512835160895446375337090814726396167468140801399748292608356540579197493757315804942488229186665665869280014724388674434818909834974876731006097050191333802647551355028432858131682173792102451706186674362098635055057558525394008711313243817875737937670738204753688009161427165442295564675152532512621674211222854451354497771597069792077941085853178502405502910084498766031645421662813070151141680358558449073889208849993597956176740919262869728104962540913056914061591628221194464199002662322016851972766584541391767833634994196924668979249581501577837817275980019995241231304843179576508273543407786247023369119263882436094500076032445333897094745763220552100051951428050346298519076447899612458620150084728897821425620671225502303944307464527536633392447947801418939910966391687617793947657103590131534389761171675720109810212637526926443132565697631786857320001450293674581532368154677547175263033350956680965454753074554020565966159500244267034768174557166660340458922667202546290015351533427412753492904859349175298540354929455844323000880009759004398266022257019180061395933225732203856527956336354634954914334721805202910096164297317257525341420957687358071819712533431054096254816810693324418757443683357281004640515576707140334196350983454404527978368189377900634478493163748642801184555850700192721040782188484556501680377058218851002809848994092442748352567492535581867518078356712168113174649073166020494749716365779487843895103640263342246289272039519912953836531509816724666017604627424345078460907964618726294781320851708276995394672524108632133515999299483686346208966893236821073108763680125341882773046332952214706695517120883602038527903912748652371042102347618556671355772492771455418903346044814228742010858797931937554148248028491449079920409584251599825823453004705066756848475634432943206513178016951468064567380149002271110481497035943644375996186359885349322344833418663639508970883740149353639912661691846419897171133934046363744204828415336805663130437806908121793980644976919954037279286955194055590185023140545332552174130032531966035259374322671832838719379783916354990392041456835294651758882117634736373158774790364261093905001811671216598121838918898312597829333372113767581078770610108015191260680491913206654234878490318957165980301008473758524550652119586110752840704711560401522207072923136935413640365108686912145134520842088606541836354422902972222347668634745407443874115801863274857531946988218273850222496941518620201523512386205264698114993919444533598430777334143735464562172242158030403888960194798863022633516415399497957500386858961210750792661982035129726353247851965091053871654719033191149592183476626288779333304591998184540679126926981745446440665935150685300746054995542312148961403912462597327336633634037644385519303307421371980299929505341947813118247261253299115500141263641617505027032393481659556460841736341517177008541037784789932925906295901584888831384905243084391547526164434906009908086503545116263657405564319489038776678692121651774970036804873836411010976716611114020292112301406265402025318348943770756977759954862105148129894819799856071147977740161084598757670468902253938545777603030886705338773451964767417523300175254674798540831280842907340246992082372676292602522315224175044136774125104264020831343887284599773718046227310122551757606138811037445515581595638072029354265016801107696627896646149995459862188985683218515653231597820674486999719805516566428649174078297425128196680637619161501254315990866848800954957530864182511363016591426906465011859101237188543612783488284059434934046165630443772469355442322668217721706604301157443724372571441179712160115621950970199352549822506644860113341853883408678270599681227290665081678988765981899822079281107338514190117760089332205966904327000158703879836547131798470551898410654811103033783519390482027892721528419146318885866123457208000774683794751914964353896166119398150065793093225998480188142651918904664135436001890179275149453179166375267741282842338159917256241126874679524810101568447557392475620497773599221298460796965883106989485479676999021961293791080128360047410060868809291621836238001821059648252739305430433632078340972424284317379223895130972657785859054353081348142900221159846365701167984901682855176500311052580732655344627410112920013907135518357935059555225168688959216334247436330889095842006986264243921302238984046481355198933793711663755887359794048274194829277154468567725895121672168426112646683668642942491929886823534917616970774709428405504054032474547249705795547301949723127447746011852778901106591485598651089058674949114531618605271396001869207844926959251015297755477183986579649613574764402228826334487317191050556437138806582608940852914532041677186439320873464687064958772856413319860371575349343795609930928799859138131339100916430733043823248446168354753091851283014375809027077865341147945985796260993691874407687165014059321960271870827153382356887728381041460232042469892765008537059951930113078875327753429534268924056528756195834113291601963819375562833494294063685268128947682086906906553607788866440361397650774742316166014603834268915425317363257041222900099690940295153168154366476441433145613246027582430271960465684358566622664132908503419741492543698355039852127294296230184926454345128666486388449054474747330913574772918893899129931993893015960932517085747932439720727462000117905352940904568740195350345897770527717265939779163940044462285239514187220154359154147560824318390485155716636403251427934653085990848428337779656396633644420958501086641993660926930421245520410648604808995098623493157774302636441791771188059336600546370080722956991707073880960110958085684096702746266456046950456604882892347398491310642173701437663147581270789356971651846448975272487918008385258925325200260813493448662754228382449684309098008167328058546926764423487077395607309529071519076877240830639624281670299031600760219851738727972104033343000203610568055321059639183060237614012247762418836866122216488564541882014543796784559363682266792733060292161171077669753674074950688800831845081904160687501752953958433452117747136484017005405427296782455207157535943394570499540458089133473684788491102066622340646434629911625213085844177573178593897194108255364589092200517625133735316613089469082660812071119883626890428353010559504617601736509699978760268286843044186622494800817914236654938281936319324240635713947289424698967201452544047279577599380723448579259213047455065493225514480798620315280960446725103862038433429896218308805669539547991865611431429493896147604605473090606306638687728527960846737991481326318251243988581503876093764252138678676950971071611526541153467852439947432715759153420782786199199968152872938253455766871044876917677957188052690885327769937849375591065986692917862294673135980883863411365510062960673097546274728087934367792518033947889373319438596602751205406856469955841380547773355797153020863395524744722297891380251073910300955722966760572349262241276474213850749890244911259083383427577597969188483998724017396281984117398988383059886583078445959799922983574566344928131568866090322925259290940709365337192994491659183030470377604481040654516431498224561788308706224278436020020524966089851342421830393053226295247091824349878497298702876176965431555142513821731981044523623437440776901155695260541299859896079095767956661175324184986002250907286173363851651256001908112804988249440388238917557221928147203630115938572645779439499265694755526218329036465510853094104061883839115100339915677456859521844652072546072698092357559288298630413941729867108874675417975844864572713549189591770527413723119971971746740027380789222257255379395519684240362070258515687244308888120948544428413303658105234788161922830388043984556421771425443712069301752365775201921682834412247646881802234849882207002218649841882290018348773033240954530385816278062203234238124547643684010816791874492044389076026997042306868643133969161982621987403112370976073504034182844829795031253635951240181316158198835838961073199263484629079970336630028427284352896111676777668901861968640714279827615485968736324027921483464205835112065916449999642534633764894142480963400584131822737847774760379592832285950543499748289250785923786388587232458880388829464877625829455875201980179336336818515553290055238497246315336887261264786116709345637760586231411097637148220099424966230306469014951340166070302771528633184144216366934857639450885316345925522227165212241591398282239470581883842575999094448920870681648979334647489087542098027999377227205610847134800543282414726075233551481835734300260652670209429360929664648509216675730225696210618231686357978721203029338351254605949987551956656537012737790535070799285426737975555199459871340987068219867922433615831995947577357596395494416763446110440649002055093110944988041655545965515403078755045911798406542249610466520300369130000283253949969505287120876117030886931857093463709664952255004150347636743348258606523529680679444465471142475993715573572509737135018442046898477108790442959999499548489840332672444328830714602082590035491202398402530319055609243242046380325874826490564075231763704645142007309878815495975557734935753274610533996389482992114139416070679459876998500652899439583788122715915775231296208869039683219828544003353656048495507534832132775971954485614780089042839079608582512772494982667224335994173596264759544898741136368661940208449772468185155039096502632644977290556538567187123422208999824340461762899903323066833522793701573482752452804933897798805586311235784760448543532259051475284982741719815164473421975833921253163198708269169763566231862871330126154440968266928106874988160280222164826354260457037967631891457926190636360910524101410124795535484369871564581007527611709527197892060931837480670757494255356455684020049344041113477577735182217046569125312656709210949750544546806351943186804701891416225076726624375644025132843000953178704515956274067867049835045605291902457289883974983459675640769945462714822476045684711408102236995489190591698370465863352989053799818917781588031090237547138701762273360996050298082915151724599533617806669961349010504115388516425959128245898496055455778344151632443598680047703350429283070016312273170700047463721175659952437176341690351815924793752557279744699851457933908016331150145534560724177282640543494312580193981708243129586603513018878167025018046646287434731139646216762217401814821110516707173720337720379584981635875153101409113909594910749487595082723456861267105535981926430823192046551720373463607617815597115794971692445409840041583188627697549204856368737404612455472584702216402063339653919494527782619856070529522852779347048503386535300636417607986917973574683811965127783465650337188087784367684488101981238339518086774999121273958547597076007186719191869105858648552223999374988409082607734278120304519301312114796514608621109981043389230722814413700254908177029469963420521742328839113597095709254751022890141989475153478035530716422894163394887574101097536535669376458530749480913195360960841356345441370749880577310416209311115161164116347482675604122697698563118479085618669352138947944110188534149371992135879539426837651019826331427710423986480287232857412280582412712789104102446263688607156310321847493616982206523143041529086666145743048272380389213072265572619001691389123103510786017445989275804249083299479501143739044875185507151606614865197136294947156872534385383134124819653014186823433987062148455974867626120504196415992443580318965470282069925728710285276850598989806246374097712587543995815507250332041966751303128373145624931105909892007036088471385121460867718419048042468722572746365757279537169900639127108005484758899546090439443401558534285979145587731569805633505976882526092387221959283617594788208817490238561797464837609437796450554380090421660077079776362303885583623602090718295838874003899762197246167909372494828811423205907347940666123242455881554951248626918747813388965738662767760641960739897840601602231263610433333755184333422639076016141280400777696061944460047809623880384064224702511867102552580407109226316116671391719286508430845884526392810951277080492239197607309707973693630587638880716339151150656796644692825933832748473709418073053534457470464252120330325040206938774264711175955353067823181511553087843370208502887013474978552876314747662936196518493849758408420300488368888596831940264015984133231349892330377244555483370055150168846026444555848582021827880156659468060938399819322846242604161614440463818713959009061455130462102703881731635475049852916252851917374145444743343339772486866157863932792325812248115108261928336939525702643252452483849117151328392454643718520873821549303406523741259450821807154340805526086820881427305313436796740356744720584823977605350964554231482413530554967985096272539737450062411974859439132599007528866967697818477821934085031707045629389616745356249071603548330303317445926026735518192134281032727190776382767652527857183780484223325911754849526525929706455452255573149434069670193509814903542008460381362503779221143573131956167712939506286161346448292577530980067811300289110842040249940852296154561727227519745171677142062287789725397539632251138516656403213263937153862772774918059976668417487296591733672742294594967335829048729827121899792226851413726289284465156425145897684444536973023964846906150027796562560842340660189859318712249622524296290192750374546197285513651883946812365275828888969304250664491972116439345457798457992474916074984663474950447774075235203701342442739868424819397280663735895830753779889829273259515593917300343556379853473538139439464823084364685891188836093122965428061419099252022432802883321487069530220424722546610360669344861844496973215688987881668469213678527653463936228056923539459484313337626339769193125633272945528901766936446892148768052559318408976026341018334858860998083883424811678338691999155305484967536049879530576930019662524590225238222701211855630534952429432056735009408358310803229341682178179793853385022963949813903774114778550804647288962459228391737227709248012801347616776438323086224636520647445928961097093366766291651853690250623384208531274957090918693997431635638787681287607259738685611620525634665072284335568950559009098323226517921534608935325721631886608155648620511241498858414934253359127595118564385620306900540066852060708399163898074380412014397987511802053008240989748890197428690411645438598728408360799223869295182315289585609742285587729205309059419171772178844485356654086439271418076798458278912835472527060801972175165336803080045986486395373411375433232649395798311375634797399820570632911107801886142267638568130447525506398996555733701164717625977531318970435924998324597233689890827849970341238167293363385963884459867360834506899366990923467972655941197630579105706603990032337924316159570895031300042681501671388290663054823067311093579602536457718191241030687706061529852082094148899215400205165617725147953789203499785823741899850090675034995791656805359452812167476345554695577089227244820705313562752059171249589833219368730075152904834710081096838461683481864919503810013076404530581439459690692716303947974083466820984361904527740427866180102126855516147126567512840721376310075838100040695712205482289474503581793111127280560074177004675639022245517262267095182245776371716831085572465908177246088520429564505347504621203056554962683276092428357076045491981698283176831150715602766612715428620124541281066337597160176991311572138226352500242082674638189262948711392630998703758810948717450585636910846229495589718906668840026677108405225543872073159207760269716762697169623825784075943820622368588310188487937944882111009685371194709724166113672384346148380042427922327100319982655626365284648025462719310692183859881771228307601573115388736136884614307152751387400452310615445101811127875327477030486495121990871552656003529801958378728979276694547531835670324562063503956753061812457719462805006163678855251533955396211208640365055566223804678430540286838345866197869464691214067155567928806013863480064341717176300845733572861413996256349748556411457835779396465496782321747926158931901497157206359023015254048977318295147873430335993497518728685749246357749136824843385407071688868327306668885272555411828548088394630170466222599239142375826865627663987242561228976014991502233587416324157198059178777503617257012961045892224443971387087172694191018558442438703529448513269700999184488343490169598298872764381941548302478270881927485731493386099122869245697263236572735530232859699793279196425603770622151784468661289203827363708443637773580230393315750626273549610519515743184820535441386695460612421489512178417888605732628679779983451063556983504528317932626003278355321186797108075827028047988421406229100032359005555158885553455595991274872294580298836633687949313975005400526871478239685480701417374078854187643643887306782298584078050616363178696918005765452147398484497866450523112706897722852917526189952246353234513449997824963071587936246693125394328251986037066675818602502128239150345380238753195320718765540783655849463966098105807714125910975798095196292873096464688416797468158058482955967994400196038387508474153162422124069635905708884512703786644685576507487674437051323954848001737359526913155712787975076784675750657510497275848374941149358389192670701378476966583181941732762457004723362609288782372771019860674589463965860696334727679523672428456307366241828127174493492192868477574788136731935273083251009191151980423430838177768070660814301983395906502674194782572855193383236032199936451995465091563590454938516735707588366449484263623438701014771027294676509688168331787511543155964221961322976651653380402316091388788370876985827252334583803725694921421541458656263581535930415883586255235287412259350569882300920972868589759680366338370139949964567772546932938479191596988793070091132632549744698122221992542038107712939397521553931339666639281917063401060561515953190563850224626241834886123665500601431287080213961937344892131751027403825081417029408813743575066596714088096067287490002476976306937188280112326384699020970187999380035560728843938271592916966761538849676514747417090700422329846943820050315613993547705979071372707649291429548198545239811650453006958409857895301275659782099622507457457479180846742046776949476970774570520613831212716508674716838288939505496828315858506093157295486296896516183137059379668482295353036150782827292159262779870853381719220917310382793290756748451482054520016398549988560553090198014189715784123689620083662199384987823173348901097611365962777190365116236134953325385974785082979824931731486340770433772907817120450642806436940926775031210626299387959999010328756476213922751055463485639674922303731092208161867194299898352928571645634223505465957571905555753013747945611710117319446262640387746128473115763506419322544196403200869562311011813967166332758820907675066361379834705286616563309232283303647577825649817674577477519200361899072553525284662538205118116556147791468091258460529541207990925265073898532978264729772829844089429233119442739066080863215368146782081974215803210621191732047228016685190670626172250022506936633910728346806884307461127092951843466238646753339580911563874140239311049340149213535309321775011031451462828353693090338317556342568115350239518631955919945796332485412486756040335735727557991360045202988568749844545635117167101510439936060675080657504479682906612661561617531375191901585169673396829319609207467600394065704675631346068597634327862116633293219495246356408271556207780497649585959401553143920934206887811554603623009407130996308610999314323214399034035746988917772295888110202532078625775756664342419056962043951262407964463731509019547526334463162950821497185681592364919529229440029791304053691146773948450450842619022228949434807684837941177494768674512897289159094471334812245080685140671039914995958587533433093823582636279146529873785773905058737487507564986164377433858232931848383441577700540316038511537849894767429349698919531876630288431159449992941499750972419601937547725080846430184784941397601099989046132535776821019727428561627249171411944783986694008225736786704530488656225172315821666309195109618541125038339554190049222833975556232079723531719247533435304012497733797058205787852745861812087517159907576605936261804085357194463907447636997579080895994004713172223284205565576498220382899642820641644068255502063387393160321244136141468954591888268666390701714768056551523017699223022548023642826732723382890698266807064909890396162716685156379860460971839552556635968809245374147022477606194565120332574063778023613038444557268189883851660130936520250342991413173526413990345734870439291020785534275837109009610895140160850527856354812587119497225546518458172229250625584577072716235841656587217784604344041000450544371213686348193206293619879362080332471555885799068875328423871808846958620617472431301611300678697004822399755818815339205829512832493744928916389388550910142617429510375464229198007141263173370485578592065213159621931233036368090858992151457027776650911222700250194497857388066368722379349109113096718433805066589119998061476366812758145087185694696872247421332368495088813478133472224454953040319205149555933144100642916787793187490817659847307195293479372423916803938822112530284400879204072896758621291020810277501725094591355344059528718559710088661759755164981445062233441112083394623431333387505373804729218466857785991013013875694189419294326442712327127187445724474126178293053476467723425012018427584487998409605180111557764974857104100432710548827540965525780838090723964333282553036418939758875917338743211304468761059914436699479679575068766186574786981806484975305604989558311850865552454991565722633532575987957005158059744299717819858716276349637027331484661013008554334040303496739550185983061051622871330132895007395450845424881021720543833542511838949036038733150892129602954843061879062730290402636108772938263067916485511477133805712940610399341389855345059242786551954521278468128815085067284977286229102812603027000360094533788744316406943125203412234878561682655458386950852155914282589391456806867580671582202564819273476099713977565520695374712231260868041092680392227045064947387357378949985736925335411593547607622336398804781097390184677554967448929048539012797406264537674023096514918025593584569688849583289125436580871152834046736846401230683390191870271132407422047464321965278777248926413658836576883576159257217791998613617151150975516802707187096358980104197125460427470181741854332499002194491870649518517789140919045351251835714977001445926985627046102828055028895634540889395044096948351861035501569575571513452956837273451859543491181507389960847142767660233092372056675824172210688862853814690626417749113805124805572176003385318340431957885468906881177214128907865505844051667943844316844129100179478587535012842500474395769295822854438373854304551292404512791907540605788781839709632146514445512657395157527666839302190462336382456935052888359002403876270185478196481126465880408127782472164158239458022722692442912962146803104270159835786330021660898957621747213583857809687533380241891890697023918224359468782243455912866310446354536867784316787632665511551728692315271216330399963869712728488980566212326751182542778481365720623460410023989748793611806615468730353103802266637936848836838456002105545475544873357648108380961442073224493552138362678027047387818355462261070095122039294229222028120676468349330318641135121041166227199423394292028087796958883475188005896687815825691884651129997319808212281313050448624858981297646910600684581139686251026555720315736520350252228042671184181419292683940859959952491135083733969961530150169509373287816472508375887222991935970666090986151403476974324233939568662195730398969300515715598940643879837309445220804372053052688511581826191029447289505717589520198697070047392906919088118946005850266682164242869515454721883837890761849646432001803627001116325953032442708440666917359454540407244366763695641280648752464319890613817171916955514863131199715514329492880441733308709327639970944002022871967689190626711827258418908246215865729976151826063545941151389072232406957124915823870491549892527680483098180557016725465473278391516429456856602719042463638569135554016554459797161916677838541220676702792898692110327706845116564524775433490398954943792884290430230840635145801334646816614469933937964594433483873203869849615094670910778817438769036500955338745302635745556042978853463619113296822703473042815094129288960724742732303733833876882378997574045018702758426577219010578312882336378798491895432011317843055749108128955982835088869434483111380633517764900590691869521621112391728626832607317326543322914123418322860984217965215692774839569338308039982452888220413558753620407136841284791636143634691665750233574318813819075685701924035999337378334966305303990942100164870690357271539405589240430403266288320410355713311616398847000960082218300286195601860876127502727156188209536286986444276910746195224878215117440567945502151549800163928527270358672823905278454042284766455560106493579563594196494184099927513129322750895931346356338612766022757420354599267433149362414937262860579821294017355525617516410009757621520708117638851409690564148827434051908224282292699112422890468066822277258454909982718510660164745100623161599540266288382810962876089199832398509311770902779785572325694491068370741766573576054031755705944265108456045910809481942019038548810320016628395317583666825143544484539383320823695096769343561621791584860125496627165275270901678860535356830904296620459115975314268709859653603065420001685031032662990082789445939136648583336654690047971142208826702407532792181681541500372289497952294401766386433680145398682880559230623670229263733667376776002667636678929347295622719522145232220176894905490543475461726022912808102538457803703213147815271006455980795911283694978505729268174835186814006178259429966377248767222049320727079223398896352556958473454592793312177436021909032181988286075512810501753347772133634899929817792803155423620187302379582411542305364871983383679745604651226546702676489972786697703029991659990255952867102192825629499766881817323900731177461646479706959982911476571151078349873660917229771399403502220782516425893675330701920294203535243253459669099069151673368426334264949617348541329505553935488956834193117401193260324991697325215387344617310807540654398582326154292308849811827938200382272006692075373662423686845550057267057770478833610746486855972172059007474778756650536454880060928701132465150443883932050594956845374837585002126172078868921759104555143502790788025262028966159149187719033351591022194880367726306166982184705067988127903741674764116516644823513781892019859954947811335757981356316113355484663926352443264210187882163932109225640260928851135931259222286429224167333881065647135366590999645590784238122088241236158469228985260289117555991814342619997019176898801890496164460637461172225475587370744205825889261523817395864593304003880714700965710406052240974912897065055790066485282739163377562224036069325574972483559906693576815135748940369383555098575535566132603628201139765846408882079430826758044376603267797603391732957771994146343265269814314433553005438982852155525110772897927745310372844578185167588209423217054408082494919220428560261516259216352992047656351971667987046376845757626668596242086555331133600186287581230323761085329925786017244569285883929484495422604016826755462856650695702385308268387346406583070490796706664857431053153506701134584959842950821754443239214753538293920898291879655368632423069512988482277900479057060684444665738590411598829960766976433515095792554831226855591354286130842125542255578133673463862535657832704093279444385369910311294331375754572739809834529471728409993735362517093204857538919336320967359563240899812281814649974508469749787226223452901599340918197950399107925803859328443430261960014408180343092197638409242417750111466318568783093081625570930388865652383066362643735444085656290662653653439919909268732512112649339392605243892287546400905301384655972820467497433492357240425309924672288052273825880922288200779676602202355043082794718281477688756086921783818411213520057418264100145273636132351857147438874293623782295064301828260238881300578736884430841020570793155004743612125665274833260670535509116865214955329786191330256497431953309232885922436151550066689370982538418702168753417483439181129147026955977401987164676084066505851642905068153861690059548107279462487051058658872988326716414436534282529333374437118212124634578009691899871729292974085322675759158696845081233063441543323225383556963006360363805481790823369893299184289652131450072202939280081298875705244568982327724300632068872387247113588539514539934981579074386641965738061071398218310035444789825335441202984544604108518540059367903369800245282176910855796973598146196569830344866907286895193837564293038141189612142426291577195629311305107584488684331414772508032219961508946754921089876298971010203123343501519268667829946937576486051385353894345057418968420343322609131676057969876141479954906817538058156987503524291507424613014660515009003154297135030256482863802431655002991478029845158797391774578795916754367875116806203962168516494746712426537062793968101414996852297305478671108326938414706624350973574471452296228206355464025192437981187234787162785826300239720003232103416410874587651265207976992762932649552158517278976760576662299947841996276246470885933901960295825228731318643210122805289777196398363613249796486879532075466253242082522539927549415452251103618332749213220682811245166475104969048181127891825502223565683720970589944470243473160713094258227072238024806012521627078583986101956204457424715185509386374473771702421747643399415171376137581804410427315071478673098009381395839001162571501045401312295165693233324299479092007121271856442867116642759663925363087890208981515400222618714942216925783517988766610109582124815053806773284361208417299766503471843541381748373067686482625861730388504475304360919224203144422278895226500766418541978168995985681324377386131580366074762129332712036899240913948925917696374506800936471325110996706107965616188155912763379729579866034547385661309456363110701328482228304642645807679850150117326060391923183213658984241713952645479402473455269518486503613651503193954336479518666614187392020617634796467156852870631307898356080144335153051571795093553247680574740858108577506259582365124304200753236173332145556130321598562866355436009313805678627985301614462019717808554200566092586151876227381148511985923067449678990865808922003518229590195278646541626715635495784521730861915346846946159525139523576741660993172009437514819497343635427097260923075884651519030848579709406500535063963359009969907451457259931328091779047219633821068605779028764708763053756113003056424527057077106014689435211018962234841397370685719738190064753215676873587003129440949275531323383738952317513791818960015046222636684019136546931791311972982212553107032878351262413757701571841791629667972608086005124774518817292613246439822101250762572822018179556577762406612472844616061191705908537041318159246425750572366283709479825785623193169661071785768678166428885622700421113706686458153358342229936145269166087127519399013859851745439650819663941017472391339826958924048454850778346750695449028775020174450220163279520253299037095413448059630720621464080119560865888994978852235257772193506864047548704746889325517029569046716251345567820303109355248331963851605611359942776201104926517853256871211953541433207914132958626261734241848737014383994172356254157233334768379328976295878417862885555393677673830432301092487957773491060556733318570795312862369580107625936189197551152360235130321489108649111824259937114263158243818929699374707927445018500097962226869474499709044232161075801744563524055994399137205769623031652223223570937143096260510232808147963170135180165493326944006841336116995204558669869455633302303565641576736798121484726297443950339046685981553765268574493266923664572892779801376897367018011431755726907693938927672710920271623162340657939805261889346403216997241233744569865720500317338275334783090491042044086672741856775316046075938859956472745361981274480392142159634364662617113505183367444170688016350204640720772608255398275796401385390599433252947532289249862167650383551300129150936040076460581467094707597295849332280914765352424384468822332526401101299542229886983069589165170740426946258207331316929346878252315534618506021903238681388385954583749843188671776727807562552602166823149283386858009199030365942670980550580172337606998285732001018530850448513451383397579116533911205362907381255329746291105826396965883800655679929501567885454334383643840468690228242499417905635097409398366128862820803027868084976240640121789259981622657217383609617419480430144853619354620208145478675655763853151763512431535452315916036841640113363500254646329801902210049927684473786010966529231753066124764158017692045627428422919951317898616253608484813418215923164796755836976232664920006796927674741715355873998155246195960883848138499281423738060724870838625868940182893147064951787424990314671422015410948258994022092052121876915551575263453532199277145064999777048717959937638465972193206996782429984493801145471909660876291855736350572952154116948695608576098148239969579443557737430657229154189396892355142461717597613492559578867360477858686615872450225902693425046417296644840584686236374344483898112943416084833051888825797035782033169264866370740172858774146078670137346769031438509447606305829644139197032028629433578520978854766167877504929483888497767085844362464049817167655294773649528631171983667643832984252361918204791568762209906643430371506766221927484460815006465788125166320203951188462252990839394953253201575599578594391609973891387467734589291350627047728100253009216407018848599997414245607276317010646501521247263207653471925467735245387930628980721307609961679692162247004848791628268053574963155355662891353144904067176313139911653923278413440841063285035782712378654233730774862130211322891774850880263360947206629170121440212102234410579764293356086629460188815276547284266939596868576832354986170306686039264868250445707264671781972085115037543418416542366908028542045401836350525277136169096858244140812776695742908235033420324640357247496513235990464759842720390418317415148671288508876824648497299783167953225672584684163838975314464407939547088116464028563736372673981888063107047820322956041088895579690143764464660911017619047575187533292568038303344802674597129481679372843533145777182140523066369671838697971882801721744877584823831370545318443989161090541093722462093086484919527203646520488823422763461743580326982572041249592634266904022155194065982026412644405894548933426420994206283416553896649046150698711676467235921493801694998145628642090271135346508034821431090759737600236862698475899050024967709030668312752490728383932005772966466042881436017681990542344482476523075295985280840852580928965451198880034946508640997264714869690934216328569779961752643305219005058589000561363217889090110970352003548029623102789225400621150356619380064602036321725380236958000293936117266172400747411136315840233303294090977945673003806901016089109355108682798115667119105637742718292784070889818637839326126050909352485548426647387486461870921525285973195514510690091849252005921078457966851476266149844921652825315769800071484906195254967021054458944438295262875177344600490756246133406293455721559177874709504024377902739182141245069336631107206543407309881479510760710721776073458656764125861196383583448617684535214778868036252757163186184515673043110617853741568016787621948017650488288821797498391593621796600577407616929992073344035526037221104063167044527603847739626277439907328506356454613170908404876300623356930444738971478549754423894570544323831705942769416956082770889162307739459442093530752022986105127107867759339062382383349125275047985492349377717026635122134155386389316508919583605706846490901387505884224155418367688006406617466931682405113202196864856131939655359038846450303031676925119871404671956511846101536564418588716751642245518988236591868269498021904150274392766644455319354669240326408575584046081446744608773314627996552890456949515671025402346802612397762367715987556615382526586482154908335881055739080540091586504366126972047328437247853528053889949769441636692583203485557076057632849851948745689102762351094597336706408371552293559659509234796401976505123806951657788879251358187047235909485897499097267908209342138320586136355397149876517574573448995445448499589576251043166631485392889477976664560441259834426828280318329438451775139764216360959688080393012260798746398435193506292024706381152609464707400430582616638914941398711951114919676161600943818367314687338144845534643696458262573347280589412551130373141661095171158524873028162842135532264669324687243090717207083425699305634348377840790776921699392772092724109912020353559609876011892565000885559818896246353498112280636173478495750813139937529908520667784085101397069606759140185976692568571971737599600182144492414278047203299024940990830099237430150334371868226734526738366229931904207917430659020679652657456514943786938429464435340491784795665494537373345482861363934902281998481602818105752019705574513783222729414284727757259231998235398568408637227764308657031950272740485752543177417807235054369818202512630307231753583848633781246411133095482997974749566574375530441675515257452880800698939784404068013121955805290462981285315258661602883740455716488886495854159163727355893815965522621696218212405220911338946264294805782926415626961884847728782266967825781328858472059180645494734416372859308259623593965003643933418085274863631173720025688383732708443757337832290961435540567763607111241781437045101310085376760342447197707170403028259909829013791462188361420211148678784919799082600770244409363040038953293681440166320311635541741571826100187670040581484483110120216846512582980674365820060820412202251524258424269723488393328917995844827366787615289704092777522067315999869731978376226230944849000953506828718085686015976115319176952986303580852927303458899003687063280400090237739435082089094525664199418286482258723512280350169791877975788047499969641663375385107160742581765563903792725800497567171160119800872178826114241110865248038502456509674005190035979838968316897020829875109883433091630932004183141105758614083728210657893252474859575986079576531211162946109150380008208576234485042826141335206342390012837234136009865506348957724631573661245816623798581681303100275443504430518919937684726472604848981449919042193307927983386416198287442473691177419379463347209422434368690411596715660566391970537337021515525346454687994889130339340473036000323873846437595904418981076629992659375820872490639357633796490686239263396768435317745828019957924787318527646187292313842150180450792774889189149373025937157392625202423806616612723265177295769054625958014636845330382383337529852643889252992801615402532905686497249593079754822134539731842140223854149549136231800144844928037761153306509158796513636945847066877618064057396509362171519630792529394605303606974633154037511845851052145257732887948728357356679813673317975772525084750584539690272519625525465294704841447365669038295404773365256037883397211102344823803513684407336830956127502422640961984001263961512597194968801404107900679459465251009877465870731920407426639157463186704475688279670024288109256077505031198113663493213520416509898399440981006423192551289497817011333200825935184367551125592871069284318597120632338898933902100033101439075339054156561481264520335671822917456406190122471298577475926401023747774412572911231954136918914055435507906856622326672414206366051509817447885184962574143316402809847912774538237169630175088885784371816012169412186771938449790349083466018742712600742901135076107749283634520346622375260669342020935987902767030700614626194260651507003033408041193209914858551072420252629898927946689824356288014959321645367027193511625343406632162083122358162999687731082839782547431445921757821059138762893779973717958067162015913558374733838530664449684571590599970965048384707543950614043753742289476855732969850404502887740928046212523296199768385685704475635253723728190954864511215980728179062327352990682081206846594082601447071042907691133293195556463887040364770945944782146937875414129014974940151999825741524245706898442552355851382244287028886657054737525348414799335761775831404979549574614390586119417908129772009289388404121327834631511878031761915155493430867154222966001467059957090822589487620465926688012892279062564339714791670361454988634899967922526142843087480922847220791632358615289002775412359903421876385041695141564989298411692406774892284954125958406386501047011076701423972148374587952433513971033526837921848728122642965683758309529806958093358522297949325085800184050371221824067951032744320131982576281148240170349983926075244969078003222307147128959134525097254065853832763403783330860342322934880052408737839958015348320215595995745185452175401842547443290022831003892605119778909096115666003811161727553417194011373095509407551548660951928506481383888460525068951241767417890279925953181428966699048475209910728336447126933140147343931282398205487780915147428528102123751719858255620503482884581960430676585812246847785404770025982682700734320968980031245564444874507565853084601247724269583109861437697788796954607079240364882753489821575820074727371410643224041969731094742094333368110850541320213333918476177075249598444624418480438141093029199139304895084584473807286950288479807453099665430784655582489937952265818941289457760868523708418962716720648253166499480764176898932544865967197065236794838492586439029650189764364265979577725372599705010340681401349825274944934706995030567658995730269579527387635030090603242413514820060400448528608456767498175908622640576936237455128547649655247636715259279796475542929488609054081737895614173744039443948131822064461027260124138046608204431097769563040965777717412391079254686158219910115077561992945486638850734096238569856460982332806499411469551024880063801913821785724267169470449574505434443043782526516713019714454276453979390535475414017179675691031708850021739340014232957814723642431849407913490278488405941365722984445229915786971175235945453767056616443152686068748355926738936853871502024429058885284894543584168003191690325218328082123791097732208924560956050154328023163015264518162309042165301096106423019576828776986684166968423416074326014426052214155389434525431781986789467776548712704023749776529476368716407398210035755366715698200339862032625065810017388115735537706873996080381234367617350764240722267576292075556358143878881832677103355281264860133886524372647610047298849938479816290132821168988877989820513208842228963944144389345580713628949825837338640435198239884896504258070679161165049800135383634910354300277299067165202653708665097608983553592369622552116222620004861031397805498524549408223454643406072497694449423796684280856759417723975944996079287665322727703220865556119481938258201098580373455272929621368154172525615441934865760910049506868784964728449880524146180411857113984053673511897362513398526463132663660050583990191351639952724683077912623161971618967852266402358481062806440931377772433733678521156229496095207446216471432595421555499629726578539962130150933228059214525067352704962808968784827162642739779276038724866348203047346181927197773845075217923291246634092068774475186124255109713344294935317188037189903048964451663087626205754062138426741117053026441829461988326206644770308425060551628630117065737428016377453512694449637047099013971857319571856639454987839647138859397032241002094602833236403660971995061733920451247317590533370418779803207628742104406244769827193535866671654610373102342808629096477486710842071197361022343887540052938292610037723489352939899447745397291519650055679178275985535047945324468122838368197640635775705610809123475841335174717516120879082164948490061610922270439640480121693897574468090424541117734115496851743190305135070435794790425809814777505138799859604795076076603587714956064847023871591326087941331866321378484915336480958296486211615052659109380139093784529556575200818262288674612438816009188795132528256348972724445027202312237947160880233524976714226008031574567138356552441645398763566916215723236249654247159951528287826227195782268691978108014681802329097445636135645817833670795321092262177415765371633199138469901542038403566978656417436697086168341299809568403013043462613227288338013446220260440760477625384216683271156724822466438889404136257376948848502725098410643910608554944382115395723844118228621772061371661796979026113890587686318732430345555115847523500739468004300136591996074169775040083691906349480828186753759778801637670757862701354170946922146814856999058062692479458195074954497101910848296323717718686911754165517458717644267677809638123924108813650349762364255464036524068407931229269266117749931831671112135102124882337651147749325576902026282812500178092226777676959355181877120181638304669707163306527800867859374132781171501856908346783508175320154628359721545492109284848792668015485159977789239597327226738408909842288515481428243682100123849162898330661276766848712819195724007678164880847943274768790737083218079132196436095635278703849571658154284881322951443295115642157981673505860917923967780991753337904892484353358655159063061000121700446525641393094312794080665533279271772761739885067220063400965817421181076862044360675030294119057526629985854697607950828983882330389528183214789512169138421843896780123351959218951645877840858023097650651940359122488422402614447173427046558173520850598271982578777526338319894073851822960269120263517060664210854806324916731505538480523339386805053040141894924708603612394984018850420862229460667138636641319767239041995307992961216195659614705497938024187425684719782499671415164181002139597408827007636332744303575976881564619434935833305349735895282620911755265500050481064314805006864364747334699398450662449193295914087718907625639929791352274214678551126106915574577841073089950811197815823202930362779584574253652586082787886549309194318558027673379694436122698547817250986476068703238151532151674020931037201789767296080933273641051341582338031073743149484655044191042353052627126047497967941222425738798571905849438446383734687759843429180806972941703706667941256295638708680760466084957731707777126721412014235749679589348315417819924422400522617227412048668263578207832458165298810254062542786526402397936756154071551804506288961678808834339962025311476116927864276078951345784746212625090878540855340624388093990157236329456181185619034645915504200990506246425321978407991899889624345028852968144384021312499804860787138849111813356201030224897949057776777969211037975688606954317859014506636183391601569034989939767683360402449852236285475088866218780373461177667216871274620851212854813239314948316535157257336524408514567065078642028549721611589469694140597416587813377882963219114565086935292903521517392675521334940680850943724215375864055932799214408920408211623470645225822252907437789755284231951178429536931038325516527048061529139352794998834778878952051551923930523025569059015514186900613333959583601048554234308628315242619751371455053268558530510200143430752600651234847030440428578373228087410389521497369554448155823357637411505364114154936915835446643920749442227790091268552474376858822895894693182745557125116270385155898191943792102938815785828453890394309416167066676894044942213349342998187838144438685272674619223954304122713144253722039426670276755088400511626480534543482813683023018840774391110679550014466273859351182054968858628793462559800806018905715627412690450717262441139302539887254155329447869344920512138138564688683180186623649849426290737614954617165933557570792613710623256507090114645160657499609045980743378795930999543316716304815473343992768411552997689629466873999330004071499290021316494296844174906326515368345133689068474535191842523408494674627510345885341466455308645125456006596703569482905065503599487367365086364271609233570019293960146562029073603053776722529733526424957642760797365543869515075159339920004289778033882405666566958091445448736907224947419670191984285848858154330509498092034086053971542284079128138463832457853199219964235934990995981365018582337776233423816323873644937083557025486887104606489447458349407450104264066499369951285031986717354950453483952282589578142367598070316297852600265832456565673340577482100379702966221143364522969331845778929785469022994813127231640116404542099838815281845886954242294756007356066991243701008364959193799014804776826271034151483044452798281223382401212026392495936792950758134980998418517923624074281930814935298393998048771051447736022730968585175841730677613184779224198268638509439245410989123749467235075429980982307024903048156653647507425387417617057368796292257985497295832682865341928223188244958932434533630683477650943064999263437146063731984914301648823027052603029562527770902526110610203611108689389824635037445920944728807740572287416102944426086619592336730081390339726762155807068542951121848676584827762516869527672982753871752584839852475387292851451968257123227527032246802785992897082500986346386798569056053759486783273690398785138704377957834944246033555133848437531214825138420475885164752990646087534263878457459299563721576771941787388606235558981760489871271405690857047023130010797652764718662542722077390317987486291108776446644571481529312264530288505630202822185690095839263463295895995299100922732111216633364333150779799896849421422509886970314325615658480133433271861875902343743402113294828395837262046536633849041293250403908182470867822222098048619272615592199967724248337071337397793038508827107980014146922429258354977567020299317070161639181421588387552413365545948621510415346501861808626434678488976952391597296980108268270049219344100365886205336004902061166363922892402134228337389005224387664642095141998362732188804030983195851599858301939597246593552654396531590053705075070855955161584258133906936493902603683311164362688062462913194564105389292568846191161176454089242791597279504290688698734047240469674189818396217003231996134027237999841602043925612402510336123222574558431996119565566386009307253194927501112201204518563882802339531523809989063973005446858442497580435211503430127427109925687353225039844459585105697489086475882469331149674166085747983262263318372432981930896465070392290691270722934906815225887098073031064152176941331999171498137450421399667112036631790257704465950874881534335651253084454292101274126397072598992692145525241572632432272208513761164879614433106557026707803330854260571334295351349714620499490257208848050688139325188388154009357430278336093004331214923883620982508626766569228956162891771143050982201926561699031033994061898309110573947628014983737830336477814666744595380873826236862511033438193893545012829422086661466290864279457072352487987863056833374549160086654086560715801392799570577474043398294598799196981704682193121859886718475308422618357567213997162076365303140509552252393721879208991272701746381084174955076052449596867643579738191817397450127196122183518496005120314461044666334671108189774299219039498330317396567569278074655257985030074160890940769523079311167539131013382446026050859199253477039927023349054696620970313485200944851324700898474649502797691876144237343343099543525888466392560166368676706893131307026548821158409198766079225918131363834598456394067360742017846344493143661047632281792813737314548190621245881882163867917493672674292462248364984964696516831175421311995861510888309586487373953107387190207679925689561256142525835028646879585054169039810292457184609739399003241765077101576497610674051070750394158800333702649232274622494693707995188687315061697556682134228984854115631930461424083171275592810960346460310485248080998050160271156892697953483575455170610432004363837381555664826615503284720043106413427882373333496063398656912492939762090952780567327441748475942694747602216420503570869677945396580302994302382747816978810240684503463467258263852980948394582644449944195313168813373329733482074971002954019039507118971445696750755916938907589285698014538558479818370687393901210309455163610654226281529550603932411211815609653846027427336303740585550235341063879087327688608909765409509316479427369481487248520563172807646478803749814263606949638070250203987455418517054071553154158604602227594567382201574541432729207511211785307793204613084306789207427488435194599672353482263955062779839609012755452290226398653848749631975897765588227458805973127151654700843397943790817951900849326905193204811713797910113684735045330704087328770150794708027057606144818603474530542733102597697061165282937949123490082827864324755457202417240787137960383012106026553400778664393519770205550781149570453666952570361268977951269959001653546951140546594603044889323402479708982330317633323527062807625414903530415139159935850529546608301799004832705099560875591332769878605392500527451129485170604453815681350673345502151140600483681743170621599861096710958086014741253529690253774884751070007109613568502764814620942693906882206687111779864320523065353451633323616456008602112633344220302989858506037670009824770803757498226606838597958237374521411252998771060549274404996520560043513305810725680728196748616129810256287980819817596464339613298221645258860922035139430676265751081761679994534149957465850762901249624822659652608322841162275553508404001583561431948902872265004811868508368039697690767680925871615614726056004380665773213309459273110549918991647107766902675381758403159044139977969011711598172699666457838973747138302075076337084795205924522476960153323261243572909216966684928596520891143204220521421374495689997632623934588393410491926621963073750149998471999924193452456717049484768399500406988672666253095358363381034111203738541013361597898956226371317304225386127412683744018115324951182847940878975904246751206104135311464850791383722536458193953733342795690212092646080102596832322664605975549305695964234017428780360558651411415896793131631972705617080568897865739248299821347738881382128899960957079630196948800887697483490169311149937849941424486806957811920099533649085792866660627628089146043741086201536914550731385571451284668269976457372757293099097817211174770945354705712862180062695808306731203049836086607000503374528358061884583440529403003061063729104607222141258982081165044401858257407582100997746672940074335377865341871049435842015636009806944505191921070938085284335614016682952227843174784785113707320655711414003760136554098550106429817031888573184686635913169075282092220540857602950178825286322554493693921946911880906562885702766920717061466269745612308176880110401200588514709555262168249787989939582526629604737421253409457315353035640332516525130812561875243830479943240488341975508819497764779199296477034532278214964144877045822229978525422987605911202879618463729478832205526033468766041685971382924020362380368128451559872593027088777093454427067081635967045220528674419698893225231249060869307571185673408950121656533498309801878892940093482916682046887297179917390482366931117062700449601208204327408571182726336210012440007108372273367098758967020386062977522996072320816377323737921173060798835420491338494503562919672757100360972541015449665147991571836551983072294501443338974441788259288059015084713120580620848462807045810975826439325987591332846679483157445170542026441591009236997621062181826045476204233013508679372632668388402239208516488174510545440980379300493203701749904721395235528850546376027914351935467489218010036688323977563127475410882840770675665450290019497766789268910258460516680328235615856697399573423589542575273091364627998351379045107982782775157755890106215601521323892537816384973278472603837403385075438862028619085329919081112761851990930138917375268580698202039211648289049737126561526056024541570678009972301872695258101451428039372834637005336756117472082654478240139723127020205039855213540075033484224501766553862328380544342696081936258943559112389139556532230004401568382360418457951403049482241633875789793966751408449255859268694152092558228568303382570650571814088860663634720726962513464881758220445661377360025234624416398778739386765564233589345238707887468895116440434936450609965287264577278990163933944066427510099384974673297250950644481094742142639790412540623822334114971959823512074596663708040374012819224840582987580899126208554916610198762606406063253217988770594765446621876464713201546580506974102749258986713059572895215924316420566330300256015072141721677841620530868689727913773391005349205206026056231816999058413613831137571011436890996889410751518582289676707053211055409143986779995814119235255304790897310312588291427852482018026742567186314697651388445819472463717865713615022838289668182870870491224846153050962425538945871521376499870745064353802751097802887465497866168803355133314429608096909664731360112946011515647992179207787049572947962338826596254624631908726206023453052408824307144566977933381973105541213357059250337504793012741201008770961596177344767927455139349541319119928975839771389355798736533557251583057337727225959440599120494741732971185830310345621220137953554134725682075879980433873668557015902058217975041501503779341589010865910777540425911692396586369422517745829245339154947107930346383918151561320745323601154027979630673755194746019820407058404076048987266505698970471844132048917853384366150461970699175751330412259364867578041115350326049289567201070039596466100143243637409836101346149800382816205560717568454772498801124699909544585635885919559895398932627191507192292579105619453014884034928462215802562249099620434254234112116505780681673190210772079724749769004220830159119666781647018062870083963953426156668991257347361787901733931891331908139284396680437239893921154862768237803453640489641411402084901532299928358309547667044341430870105078956966704406648250291407055567960231160841677423045936803261732192926293734152828465018067269875975098229459637345959512119054319669277869538475323357308195628316876035819134723622154858075168330487032961853211437083872035085356755871475326179551956219140275636538517720212022034213061584670828498813379442020280184238499467840800917838336121367886525734142424941966003666078770795950489495171532446186689847129531499027959056477878589507242481864034503688914903793497851359347491559891452801440120371231168472560795961594780621658409836724749131619649395904324344844823176279257099265230176827882746844262051381966482678379302065916704702031366543693640125371741196095988556426762101337920243264033517880827587040178151973227242604085597614401361280518268798940168115734400707598242896377915293068424150811424517200240918383778499838894081187370677274803132661415388259366316677035889071959561679406656727692907985516831154128490098272907044992331540134389110620452697879309940621349816752075216403583135747103960088023689951125438771513489785835515393963595727990074199397721481875663758516503980184411078239312796487724985986344802445622071974230375696813244398521252658526899827996616262335823293612240818047751878045515504169261189631860596788314908692980970349412142321097538048135623148518171413534675586119419824712905289192920810736010340073334205352352501242901531555915885623138924422686711933042563176289589453799598721963344858122433761717692684817582053908934788849178132254518009807705177007121496838183218611159213039428639752846206470039953520352765825997257636170325133441264316965704463897367917820196664011856417044158122225968871303035938415333363800425145362261510005024982232281770398361559139983577069865359232092996543881358514554600903362105396231852826398185284928416164813720786409838585034542769192274545281854279046940741649928775749331752540687693506718976002108052744421679733368606134221440106516731718937249787467216516759449142422628391496519836435471917032373386092995264035011916121510760222014468382749963212864477238389259394212401064657072294239559992349575182445589537154055709924801374635660105281880411958036747857169136177766336349276696293251607700449399315441104988375483649370854277803265653647653698405260915245372312539564972529902724128143208711226016435930239265814525013351082476343420022951100545337518619122519488540025786304255813304590982604967476974632921172044956401173718570299719060201996543507493857065315376982564837509569812428934911241041835503050789103939831453118645765613991251699398823494120512370347312527439655776412831255362079200037463735635290855442625997197217954626621759937170133667251646604826457080791321753141817613315869151669405083183080827949969712323268605108204013167181006126034840509350206592593885228562934892537121463380020568650125184389840443216254942474648061586109690867281358163370419186717846326729313380995001278873800973288391067643600911259535346916801044991207495399986544091173861075673544930246103740184684275954645035849935716908935880017456068765818939075260973002092741891881711431870876585052111136451515228209291402761877000301792330286820222951773230912653509938053264898297372618647769062881121337739045604334972235320395920759114132703232045854538678018808655193771118152106357408944965859576982006864268216562599161237234477383709188465640365777053426250841086473065999585074404870258938455880592145148850412860459021386384079924824589910595908658766023575939906054932258600980704521382121737875403950281772809674287865045866571365237476443493793295308067840294858980519032676409763968930881260555303124739474795263786768251216982621273539516036325507994443771356193410530012397582180038453421032974008270733208453358824747547420394689980140225430448511113607762123259148818069850974370055712315649567004752367578383884598130201304490003708925564346949805853993947244270451706932495650886367177715593882270225154730826030921808109455695500543389648692890602783130734950342334187626503440996410310202553959205990132337331836853712402520221319216053204034286387601516852939559818252525198457418245705451439235757410435087141273343285752198917208568308309858792987197908596076032785908238267021397262844039718734597425257278074605192992496181175617055259040844829573699192536645549407231921912310386933116970519356110447004694401746667870516531824189986077036338289753899032636354551021721776880109188926728170755933013687909900916573794055782246328052980608684021816816330849477441349827562932419526101694567358863279125772658134834330422792682532759722916726275464929653157219162996979795102981892402529325776539973303699135632544041090023257299122682794137885701895132750716966632068352091447757886985461870597411443867618553384137579994707106758450989838705501654733689844187704563280192685129110980838782414258090444189056759529210138789240830423906331598068775608916283965258408876055241598129566364273040289585133021533239863093848952670730933100701363013058314494945736264042724035600549313697886124129200734772005464282667868004596595460424605444743218808258256056453404765538839532333177263140576522634805003986577986619531404867355669040600158864253286491081969965674886696647165909726444959842425384385181166700703792011172376687570377551747356448442308664595651918303666051372269327784962680312859174460178210770309938894068615653343901880634837793662989757945447928319171020953252497013724658940723189315062399806756317357105394455629371603982550340472268124411950178831697829687477666341681707512212282195359674372963176297972354854649529093668571197718868875725610792036050033380401905675430050878196613879003421220549251846559139284490953476960098898016232324524785958651530423341678535912904603065684421775988632057352014899717251687698369760473597303667093458165670085554707771095809153313078202334417604613015700635976793180070143250650855325117242607443125706661600552580719647027214994585398268559579852518556742196793306207964990963033538340706167438639282941594379438296632391984698869026187428614012313986994232208543578790873018758829345395126542338130646882351267328934338967498764808192044862328078107172025035458503575679642759919147967940829179033999379721057589698284531360889299999152490160755237882913226497911982601934048563615517829050009638290165485143594612726248049123690408409468468821902259402441782417195817633583562886468148252235780673111959862998434949907441363248025917136365275476931371341670399338903432055568803689774663679992265976122781098631002635147478940253807874650846035107141389229935196606372738667171952557601300402387389040586090597845584282281986220392402310915678340173277747728726238465601519146166729044055789961661420392558596077951597917564479567760906093053716623411990774759151347195865153755994514129744303126792587397608907657124948701086825260916751389872365272492559559140473354251853683229004579070697752585457634144769886989647841917063396944161144901630258230228680153346123426291162079135385687822552703004682301338539781066229975015341496156104514194362989156364371504284438878524871923450929954529738838057294887687253310453074054016730054091028589219349236682722305047327266640444956748878227063159584810386650596670617458971430757230405138783799871454178267048435384279565149547840501923073964456160236046530761122037870424701204639825356558878252859430464168762523028667864695746354432857121473183840934785359530128719106071094928699136697164037545913293459406563885648780967891485400972059916119762193619481437279328571670483565680365411019060639644489871209386517959439632705680889185160442167496549181039943999122515104280784323732754291059035007953022266097506758631188348869796389612805280058775114889631497880805296251539618954896462664460441982593784140988241065867525060672255324164036605915944717489724818151345551766472169638932867550064923498080404722538104887257466388966095525431102658191133586358831971732828158743305437262696536291450665940325395361488162609145184358555111433560981652725666150596294481282290259905366225928332773748621676037970423698584263222066713011617992047380294673663296551095776321267333227575918106665985908579842304225089296932712840060629844172166371249332096816249018590572546931966728425296976197267878661138521764084605682628222134549799916508154691008756517550658863433831726980119700941718174686738425100893307222951023707498216071592792273686479607173180779561615295600520169252610769687859638495431566474677099311482325534105629627071210817046203284536882802420993709072403196038476759817413026430885997922186966684172317565133419486844734330595743961256739381315249524268173413124806233581816195686810061584940940395450341701746057753553607973512335714682627396288121206436810984078064011021241336513575182933684280305829588518452040054725087187604294986040461055045452629657501526813204897843537619571276581600473371688024848828193082135908463043470629983691491354998634204799443469201231419546968458247146166895876276354507987682235620499536709920061168089333313860514943893254328587952743372179166975993676091464723095667009920973419056174666733624538224729319980231199570946060388337140587607087115587478516268865121298450067202671759450880474327958859900875317209162103921136703573613347897205070173485958474586300048870695256708191746470995048146235127365704153363058507650638563799720427742753729159938660639845710715021417791531623881363631184450039844668649740204043675935297917629091623248711322089939999728389544037591989398349994160451381921288483846812588164133732826831432816075302230553919331075903104340581212842950295553054806922938941327541351119919382900207567688545298312211825792034375494149869616861390838410875376620154920859212678123319388988195405041259086828421352554192557981118819374332906947841548153318191049439905488495901420941081958206391220219960131235539507010721850485442665215158147967647493157963668593830494009073088340114050713052431014277309292041102220305982255893219122860332510330241988551219133379844516561457629385728517758895429210046476022117167927883143692097247033293959746134464279250602341669579919827433606914435266646177798665842198761244488411644002838394394624651471364461802436844196314328542352270414576222117131751501426701685724462978827975928443616906144868401360281919057955010524904682542722657992189760705906207294746296088998096364173574849431573399331872708925372845362593596489242733207483100418478537295621373982745966777809890522974628148492213704069894495833075314553499840848134208525066771963657258784711549033654882902064009844438054836203312960720414819192451089843182186840185783562926314058192777945500625654783008866886769201778930679741415608081894284721381346021658158913345567408434424424921427251339327017687934108260137662168148565461950611929265014738598575682896846899219366984836569746057303513127955088086915934016016107178912282201563766577773974131018498944935261261523115191817141697429244576053299157363994718319489808354094400453579861174258519233306504760882967479237119089705297747449114380292545968939248629064767421028754617229952239805282546520623047403901783164685040547596565387645944189707559398692244331401353249657957837110880728995989820121856622214028547927458055302864253880147162264154080917238691949886250415234511916679797182958226841248580818457039978770449761547846199249327987325735579437289047451231166643936646421096268823899071261837817422055765407911219149243600562764346178732099476824832621772615328091986989436229198906506405371037696450411878515010387671127740917989074838066298194990117486929604577841044050652017331019638675558153072968886294531411685986979387774327492002552111795036418527636180157199856974500584986966185624398828831536164762025427894612908226534283694816401589172634104753468269622045121709468322360146503071321811280443079677467744218094794223041127769571841035454392931309966969429661235805055712734154557119613545127642730862702468644351786273329037300102455989145284939385851299848877878214173720070727349717420557075514918273022186754195453461954784480129017764910978264577035043540596283413902265336382490037982114351103857574173348554881633145977218033973300847112270142727650473811084998232495521741670769826160160351249412558247204045389506161345002198178524518093715528862939485506957231293360839046407487680886639773011722703670025299778665109792849526993740828718364344546814751726234860828939325704488448206674141449517154243543572424596389650831855728458499644251576429326039718945383753148413416815975758560795003743359275238519929684631907163083077893641834958407819803623969654456324489050237411326657905713689920741996085013635833863105205537330337636982140022607695672827423816270799421655893427043864397400803815952534309130112734330929963366519373357640791958216440183835832408497636839011273106862422643255848916590727744633686632762213854944444613224687440213797802409957167848189006419962781419528608987251096509654570111860192305209594681436452042753152266557610106013561727417790101054528049277533127620611639816669141796208692629547567545452933206404198250343898615906472489767505142830808354052407825350932191337871667693110712246340209552509101811734357001547497618395704895677715228839014846356563344223998477250935264535655423398188325023437936314126419420774338872399084176369389577157227489784136101617665615109422594355161914892526200458811981374894191707689286988335800092294747977584828673970502671039478895814465701518767558175663528189582577554316142355251603210761825961291499930091812628600171569927436294871625069793313012239674625590450085848098944682249987464751704208092254171408608834764138839718929770688019201323259489806411048970637764588944940740323354780984464293926828484315987145797974824759697759421974241478179221739614499664372407546719379702896015612297343397083929896676934966575423299196758205991439210069469360545216218531778861314476653268651313122355838999274741109054303868607029465065875681243100348345675645780532853826728673533613942039678732626556010043881846454665169105518908217611053566544167820314173919371166420315473872783337171279081830895325129287706078706115411589574191788315950745881935915397726655737598945255168382547501403538751037843738940635063062450055486981281894168878263957994302317655538635004955229871884039101280704502772587527052987501661158804505719818517855507021148495166411413035771417517893667496782373812651198844432413945418972599086948249187641351862861050545860692377739516412285346145061448074095006640597244006469349350937747165343167049275821085159403856173978623378429648647795475671036946099523773070980477198343993289813749662388104414701137603027516892775161824211211024150293583624951007690613593978444438381072336108323021021717041324717739809158279165841671588109360962412871490685286121358661884155828043339793820461172370135396991829872945650768325482989099283700648117918497872720741188839150437098188475337198058396465204758410382172884549645777411640181419171051523139417501160931609193855851607581812930440954767627329636740079826562922603064003806470674854645428225517072885037637717320867553006113801314053437733047870052430928661402355794699137334719874144724604853705973172578264164064175181206138389985297740570479719683600927954569563214945826689285595657765059600992924403553292988693737436736799533736137318650765245134442203394398822633372040821642959533292952743780508917000720409385145307872339113584596425127879578018982813492538137946342323974178861671305319097033791129655335569985185963990104365306090043566723810255578081375495181403760730807390334085605323978940652634272418331279289868847936454761745372132642035845892604300143349630418731294867329262222552817554349037234798429578642607335353932888977594954416166919091087736287525607988064917046963356545029734542103573749781148049204355491759143923626091690644712195401113780973331303770534096364169370283237570455501146349080660089246579546873184259601995602462911752527225222162723761611352877844551948556783085168729396116326341251511740754810800205168464257287428079842017972718046247426196209537288878521449017538339840676630900868465208734633487263936922252570007530759005760959800206048090204153569602950550454995556327246008384824558597192765069617426397714674190796100545455992179317418110852928324603171965696595700696968585133095293325087317195476613390702882880079322068146238203027886415377116616527044036134263098742896648206890912090812508638597976161605848960781799950001054154617512228809298034882140385654524663764373593431026934054529929641585187017751850583540398776241815301216469802352690984309419374574420507911971943946670499755724417506160732069170673060281214647993579126371801815105958822379656884120989268864877309425531022986426957192470827944138030987141287910642155276120953959633078512929296815200646719167437087021923448897733431247931671889252557595664269341588044520392349290253887550771051785186209692059098850174937936354743046495822619625819582761733530910197224467013691964645428316919645749267650396569044941185213223519281408391073705333558857093053736666540080977944853404662041341378274317260370102521903473166309779586466755161432166035891112652206758621880683214239206082546862120362032356218744068496540087706057652774555573133379425138412849626292753144256442962430700894641233636686082270997028310173469014952067699987645997922823870813032468689713469590458843462903152221391329734329558545710953496183986356748041409367220441861124259518230153239639806203443846334479617590354941025961570252850276873000805465997470433236974150614955288695145287480939118504902836270788279695634957059289237327200843328968077583699901058158479209266901227687523723966342158116707607308636685966619530549517352775473579232768875198968301044070840693478211845030022089878512354130330094521856070564325575822962589887435684542694458632939003051268930632877099837944449139303526975091622309987843382911677154680679589255690032783622404453465050857567672995775396392378256269226926214376973754696923502966683688731795558437022055296463487804596027090963952651408212002697826922927481905107011500750818635726842388730310697495215550602483187940049367907209184518666509598709979275687935031438280306197622118569926010123733886195036619345064559024028208842522487995547030330822727054519674102831256715142271399434365860786055398529005006478684908639810241029264940427394240127550740901052154189396352856792427974534553121457854514498813070486050027845454240613974630638548792669214926299966564061442012250674163590993211032715698767577183479735687351559032149459780923246966204941204995034692946229317125779697996939319254794354574468537277585094585240318686281266535682230133069787810863090672515842932282979049280578742658594791003258797540430925840292413407053641925733866643912657787833335589830556142617118418735760576556055261366501294616259360004651597106805434821877817706718449101813147312138525703267079869938928971424067969261900223797655399272274942026973414553366859016753490344271484984533055021312518106402910998951255206042747214710324445598048510266355554476975334066259881729495265797727431510030049973607616980864399701006176469647086668655478082132187047498993387972849094505700603093869694787917932935642789470387222298451678071136256951136071103509301461824166683670052129799379091206209107740474293792593351639224043543603850299060543602519809490753141455176194997732188315654976329865881298884582895260192969847825061575021576830798540325392441366928900429365413273235776584325115418652861034172751146103136373144143177356892827722141091533143282913028535513193041988921975826869129294424058205141497238319553118852607946710420274516884366945599771813418945538372876058776726648681136734964080907479366457464025479126649789819856311169624515538656606275288640658155806351429361929644905650427360609189194032560370729451344666488726227332351746061464704519659398684599306623902690033391157789523676661391210289281402051726518040472271530053491322443893553288755431533381398889131474835642746464921923414864139951760326720590425275318034096425386900423141798400674266955035201769105772547398071064874144314481464016342268475433259598859007764924918285615762202385201606099136317355700406078283386703163936191717607219720336128585173228858157843459770680539690115587531197976206341346645266598455275081055579192626720928453050863254790744296668304760877491191138421115318348177748458610638096716042994374485968350982375038216514607222555507440864887121473175504794117930261609365698042357604942598297101211682074139078662886837085567106113085751190225502431099482209677836720038458437065250321610562022520432475793326377846131827017280302872973837124446980876328991274532018447219943911892723138503966732203421254284004614725904504439809493377714881188205404411066163715248260502221346442095434164299537093023709561812581720791984376608492947113257589908821411416881122559811557049670215557914679527065688681310813898758873335516571776479819406234089473310190368515388132571550114412190818685369016399406436330680403241660876852421625071332982375043168980721646162817667716611186706541903168750450474389377446429335763423264476345232581003300374228388500533749468847806881617793037885078957406964274398518269769920956032461324402449716138015791517976771522647026843578180041837744760105849188788494486526803768233664893595637340402268827717542564897271720246207001211301916687616899528042853905666632093768832122217561197085281776238743459203099275678498456099814721866561402846249374756771364103763375695181072058509552402063490545227290137661392121902460488241025394252031063431261915175051919538656977457369353595895680628334558166742170380579175262065335690877328584784346346882195344224021537179075443395558100874779409542651844124822243866869286726406825982969682819206924920570454232746818268390874464622732178756636041617102845869185452970692534611416979934376967504692770124710760524348704349123486337910698870697665671930150334089842813736816182554853650907839437571818344471878638852270559370941619090375353680318606121137550229239852869487755419518933727348770575356374288492441063820522860230178690402486277201537749662229051869622116089954896737138198171864843964159847276588645518354227229143732917420083386289054167303302097017447525815819888383024069879640331615978462743637362007196391465964440076187838380635852178841795453141283555683055600005761556922120393203848346171741957933769073911636010671258341298977622133740563365317917559894248318248179820718818309444811288098046961539074913312428355995335060993908845789223891192298529176928717170605985513195456184734505062240225431143882922250527548634179230103239509645168091411441428193638443806237250691102648271425042030129395404850864371527848757900955997627002704014627535816828473695845032267587669885027483536998761417995810969246359685681954894063631327693573895275500581985140362936035947488259019001838364337724651684892801907733239755064421673546044503044461359668310334494887183079023144599266973445266810315128448153938525811464869037434456103122136142511579249832022847376565716423975903273561232419536926359198194397007402151680598662765552864460476537803360618391896698085878083630211122727715326109891125915769881204882246839746501487379187397148349522308346697496703159405964668086712198441809348650680393618126977826380039070055283659586677664831420285973059828692132578217458563912651470309091060688982762526408475950765681194865876760758825437752136957056138631575337209404654650272634434922641960574598271007149856559156020271165538417801967194041374801468574861340975895804612365684881560160791051742967797741374521136132640391278411050138757157488039879994625566390937548223845541766248172865105269254305162017204624389985191249401003120583971510996887529410711531044915360810102790581723177243875674851160636943699022533736619671009287844316114801919122958900803482546823456262408758839571191307252057848924484410182728926942431195990466162836968693807574165515878527134640565671250502319460220106627738648655045923342207196077483045382204752862958660480346142473502831628469140851301842756138891475540721435175833931146179035267342825114349171750189630611404462570569483692710993757226261215159029747225259532736641305311079309793756776605139872373756066850336823297227253513061032414111136414036109315212878745845017531921288870741851586357272168471617381780242090954570832139075033047633655716490325374553415356307584512144659288003607418169849748933870225633077675802981280055898533856608683959205756472368047196064537659957153459217876574261775417815078149888676879761212941641240687444387065311865589242448703574853548361531101571411167485504472711227675189421318969749331047715739295368633978751892630491751066709124405849708886135362265584708311211437071869305510875299550329220189053560541061714352566244013222847151888648725612393832070578342742376928172379837694450870202251280498706877355973001469543389784945747835435381370112625897099042940656260161182332043582880788401482469914084835229180076278471509234129437344434339621585031062305444607698365160399905798252539109688497433339564636578746803251118422142421396693004063589780795957786804637059357214465592214502198941802063170013866679405735741323950823266480932466367638992405271503251180107114434756553851542760136327580695932246647927859100130198932231247104097628773376651248794388387484399444982415711198213729086561894846008476586775247987334432186551779795780450669516287730612854206112472415524671998488219959579211593149284702312125662759601769233537038624275552723791108721335095082186032800204400708171173327207130736994346601039147175947490003502503257295293247059527450559602047309794638072175571743795845313562807301493006866772992712440389247016305237907829939850207144549233345734912436222401569196292332446590641982782428044018942364276185339742041283199964767676177928758323605667059267725301838663384719439806680770539394933548958573989972194928437229512225511433628413190602462222348326817461901906638196132758617738153501155445440465940076894136014957659742988317324413164423531208250671380893973487059403678247206727206334722742191472940394301813296528993549283376162107574007271212639471508855444879665932543031076360665967354425269019475981859293286998058677636936102493264880309766943848105549328199416057846856251125477901351741639389648767830316872230184996131921751618910115867920627458354889016194328784393565686799888959475177912910615132875615318835228694596484819954560285628518820556071719909380685886587637250114828373424374649762882719895097235932104415047297052954382072612998459732829303905282600295240611437340069928353204186507681006838913944651794782233278636074913972350144513898732481091467100718401017002352142865972467180585086009767960568275040152864896185643038636764314423807618847649091332224952255431031063695823223328292796383288757717722626305496776967906286606554538996025257100280151193168124118365212795015626667067152411949525097238393761891708862572776520340715033315852172920137923384593017110460498745686278646023311337498860907840648223414418946952516577104606396179052168333987137707136604308368548610064228319944861258426058367124081664448565469752818284747551488868770629292269828862401917236509440208994203781201650834967892453257259623345203480952554758709865549054926534535079072281484250830204679698175785413732295113270324780016032958857965625834363368788458612096805399283477215947091035791735045755345160750160257961081824323086674414518356648250803862685178749990527111386008852894058802426608405580205964100575235792450290399195705272338245092503864539313424613728032057083080470880954099384838232679727152958789943233549004311580599784224895817384313542946113179722382954685090351384058916107480429107926135344075213335076554581159452691231469046318811294998983407122004850268631188818718724669442525229835811756125111798827003319793968357942576286491599573846679430482369949555926689816845216073818564563165974670593714029312148317397216459051820215514502407717615542393677400657171074763473212375731621455930718606605240320677712453881234884993917822265973269780267067078962698396722354678214587852492429549789389659929326583969035727529769915388825483775019690225934033904976159836374410483736453763459439478533568766373765928279496592049439166369115583560622942012528133672929576151242225666160575097346505832581709871245538555737815269107771432883928100876762144312164057798008227243520095652088072298710600040003347407839611171721821630579882305995350900023333003452201571407390609465815899103292051753270760789078591424407461270128919903976564808426060459457279818154467212174881584115375750038867710466986340164181576787669028144140660826832419105331318526531930846937367483967050217258381315977859257351555652013896972986127349104185910789826161688183117943504465161896801635317991157022389561043332562112261342562368267540382639658093460520508926140211476336169565330077800888196001180707994145350269923675156683231885351090782808002569253004571530648471031152004864599451640475476477475429958049461566782115816782814827660872231341307689752532267706015511043860643816887664796451487654612257462916977482215344507922954435468044562103945692161430335604688233311307080430286188419892839637979275608890917737507940454862911994490501353153300660397526057477858414390100070959074736358810840078326343408074419511112971155157052840524690093035173595998917703645148243617659635393397887132676201599224754746264582149545686497974747218913950438850939271014096992034702049326689331571127617975002130603110762046698801934103002638944380165729782791366152567009026910002441690982756282844810477248503900213946549992878716780739116284040509223693393110508974268901980360188931868473434591044120491274087337038143936859718931431604675524206659803098667054542648802303480837939912429915722247898763346094313040224936119373459555950947415961213857307216366652687407275560691062884568793661292803516167291895396833074288147695076814699636755296863581715072800016961930930939861062815186621863880282284610705587575368222874276146339151524539556209693990217405751793747458761572169480348955652613720717597013667174449101125167003046852932095792167209864039863175711475292048368949963993330780553098073818210510571916733821453499889562971458963376958377844410850954315708884753688004114241421777261504300077991928276433492491557696906184894076832595925228079117466916266592620582235803589790857207818346232697661409355088104961355217523362395127290700376115398122853878764942960929031019166490452114781101922200209438670696267947874873988651855144673104363508152192295843369828290936907810191316159001491652148395818310547077018968953770148798537225248106641464110076275296434076599922548832346536676254016635572899291593336315908065169196511331733169503544485003386987128266675428068063558487053010460719576457948954568825774082823279490416977311740908806165154487598186592091282282909482099172936635546210325776352101084081841172210383380232285981871669494711688715630528632443696613177985332790197358709872069341191477937458971663433627055059190149374239854480584038073218841422734809962098643310527403545798142531670310731706569080592851387090232549481173741577062314708101480492792783309967565061411374586713414569628566999547241696048461083311741080894116809503117170708912599620925157539632330183872423479784204181216664379816395585608782704858353481681054078412510378071411588552785325340049222120349271425606116196412449041081966524856482926070559745092759876614496979988432675584154957223414654203830411841503159366712300114896363966987383637665548956766907751007261075683098044251722099400809415983212361758272668834080120576298080937628668072212910624129359961547931437634990199829764313613829606524393155281415943364724610064904548286964587538566489566061329443893591916465912616192730155086619265848752057508758475870038411429876041814585350269780336132418263954335019324807635210428962385065952846209717389655239384417772132511508203150009010374819386060249584872494904664271378688612864585013289018222379829903410147128343424312939103774496400843633553511001913976131366371859311807675040144979286248813896685888541986942062470914501020057869941519089200391161468182047644385708095971126379043233821329706178447046806165287545142675067065898370018710699837356273026783672808844240906944271819758350881461437293266107433174178594001816734589844956760494735209839492005596686783449387431544456063869735592986953388658156374681201278780742209503240517840616427002451999887983115661212833201816816718235129406464039730982234199996338361494519892060168106389965863788733954931316821828572265388912864837090157299820420757754481796228052438374711332652429235703386895172111558484472663556966091113310025857684452240862230146851391421314530911490664463200326590242196002770691672706244492436980544603674846933503569640303719950907906229958127709472608176927072001104316731576103713289664532067974851980914251723575881243591100896260877096814465468887353676118031435337242631800608314394296117998715565970357886739153414001015339232168515174935952905091905008298114622339458140073376821720288428508746625404396057136830179935914951626783918032078040530794920959287634507142875228216236011403980780659262729108193624527066425060103894375873164166301372530191493801039512452332165890080888128975927428191139167151595273804234947873205946143000047106532971265246126900971699404856203030751637767326372385675288483831325847668807774746478691236986881564367133062467321404230492805425563305449976575122984946854401050313263328946986323849327659965967834835938177837864280655068650993479328172107087102766551041164056451772908391907115549816548498680613838674300502623496112643647167131813849252989111278734013020768359048323493891958529658202634422274208103381742984669911343568243017154315874556201921964336133567449678057611182347113270491770202745829775323858640287140844728595066430120471809741242733507415356365014493700689314346784589956245835026794009678794817001410539680522938413996994573386352552604038476632161081543324302921694814197942173076653614376228192913776333693703560874942001496253801636375844722559735307582772138162172245792514099358510425449405059040189355657599704337111353961319454753743426627480092894613566066146781389577904612221936313821305950905918697690385396624426497769423472181094964447529159536206443699816274615152872300928234886240027496183987582023667676093305470056935502263440619418183408408323125899314531724357666076310548780694452757817259198186894206923633805250775579646917809411053228696058847976561848518760880689336603444640181218529041992184479214523740479257046124997660738789058601462892709790156400305166446514181458299526806245930132714558439716768792621233565500195478382523850126413817992124275477397301836650051800630683297522935401013340221942035575037964653869801070508449244052486763949499349822685803331222857874880023268121417781559189777061861218294128329874315135352974648833715250944796888408039404097121119707236795447594002012419563769509602829034448061434959080707482033488553128194644023345391394305023348474357151296989803876960056010167254712660199474806507456895223589315549547124453660573386012000508222031472389084146295216776810469516730217423646445287135952467644718227678969956090221392029584697483938315858242919525180304895689326625164258166230849383958558253588710214794207154596982117914858386513050087591738124648626128401215137234024885514277496507076411904383066346708379522034218301042565845941464017402754012773735810405988315500989583619524626027669313194460316177344485699323314125098938945942092960864254190773441125552595988749072592557886396249066605913573188547979818580674851075582810677274598685361211900321436618749208473706911460685653472856722119577402091128553747339471389620288169831994114537907340207702311214796365026184393670661650033274996473123021987216926106468314206251025735662844568978953630248891212086477962167749631479235873916829315144251541986918403548026349364448919210071631642783066806554174359606892920302072958404904838178780550650571291182472047015408174273859341019365557330973407990412134131680814224424469846582859039178851366705987633385912001757689373888186349214151718485051415267519422111291934683039455418648179682346096902449052040099820925851157321310028734933259935398074177408096759878840873883476190269209732547474847518402982253714006983631287626453019051632843261544750867179424850100728655732021804812688819193797133282941494847020838288674455356655116513288749617209656334463659921821393462671620482210960525079829787484316563038509987887244466525833909016070122089740875832933527210081972946279635789769989777668721277869622758093406942503988742497261724735357805761635038013439439419153135803242795328855174298634560325591781002071196797430495666648312098324459139663370353270671810164911906830377710982676884631687297880147716908744865040370741819411607501520981663886122817479196524696767939091364664452819220044447287895847664810664170248561492743795707629176925547988749739622170012585276839401224863832564500147181521150676829607523563655415416692967995585970634915919495006088333041943180387329718626920740830532305208612764208735580756253122148471904323458200470941383532582078581996011118787078060133984886798652257115535101468079995073343029809449926969703405597816074275664620542220854582548503170892146685318699084469304057642782065765442315049401559545577920212058048771681740523410393097293170773299473214471701168542629837694777360613929984216989406470245040577671627472760758238442018342366495428393298271903458718618506600908440260402438100136191651959770708511568658696225139442383125014223565049586055134135673167819590480206150092469458496432480067809195060993746658146096469053376895459770952208237976116866776027183458374372554231317561232957851206870314284370699667339024277071334092485065077000367871391144557398123395168073020417675814217615837775762472615504976872940519320188084341702385739231350755765219505624403256424343528205044577784283784567747911817709374272096385351454238338567150619588924305818223031172027415601640507871711107529604604790722078367263740949133251957136178428679132040839280319921853173159559130111453112141154418602784499181758071236356336026504056360064780132116942687009142805055056243749223049676616234327458672663230722666534276067772503790318669562680230235359008863012888338031734363377871520300956483514222367628093213500450367332409816836024328923704642639450345242158361512412888091723891465726324306653653156282787243349345232852750944108717996840942114168996294260197639358848111641976067195660643669588194557101733025457599407552723987045357134319078096196410931146365868490592255889530510824949155629207338457005313776127258904716432392283583929246363056130917942481413037442982866206188626764430391627013108217793552398714244226688561126223778611665218980856315832208033181731824402327995518084679626756515682010334009426331808269673857562377567294480874404500294928087817019904662259831552324036206525149189781171730885524486643103377401900561333047832261057940973679087003627746312816550396463549460551594824098567879077948585541410487125247689354066113308983017369108653989081605537725422992859664980647434796222319328195906030893387540322764867144659504748284880399000543699982477153533704685475218923385026419127079111078080496271560524246045995298742297412115108085671191565315606691610576065462655482625985625076539586527461120910922471223095543745741275245418039524050110539767116532536944001148522199697065120689827594394294377842973412481263934464103963275220516644038089383633139987544513915072169845074401835383769225233241177631836064233484749509506765673513660873521790926256496168289151253719550916449924339507451369838614765217102742168626437857829212542436935099634220745830410422021666304776835812967508595848057593273866096979008721430968991195724808955759722623703831416489861595697447878002111899949506209563502508975640939489714498209722838351371717004335511041949951724191961077021850109491078647905582950069845836232369928427921950113917299729192123649609103099233840211771729170162329014264362608643493077052288078253576733301403966452071953179191365378366969709139497866782439761693643224761809006348022787096580027496842795232369132236322855286030912888047554577670978201926533449407033931812352568713782879915776227883980225145931787627361829766057526995012067932089677140052508406773282993364668953789804928163128681710418511419079563081583459809155155605311269033076008235720896488838315272482233424388164398865490069285784570204296203689690592993271096773766215056590651645015002845779684067914205181841396048263473379721570027410030541456794377758418580413089031817680521103802025350428381942275101991736549123156563032536358547097182630962589571275613681699151560799593354269414247125589416731709600807092229764865592931135541806315181643322233073267868779473918473738876208105791081443844581502567905783211587315245337185232417130879874776747400128851491154946433813082561700009523907582666705151630806944706486518505589198303895063395144430867046275895607347216339151207107502167505445947806207461680652872951286689807979901981217252616751893980886241348024255740861790033222283602758091478806889137838130878417536311903159384283898597725631290584255719147346468455652919820523438583536921124900078606191071092300682076129568531459462465945560980706976759382133351441999517352176534950759537937308564289376605761746461232139766037909564207970345883703134179544185768767728089370447611781696887348860851100887974155902093874150358482351226194290019869532705681583127595916278729563053032970830305510179173070076803627630815992391953887390200650112972247748689551883672515249681028138673927425305457876368228558064210588021739376460531022041180146087870316920248517620229313269893762576209708598091846232301286904254516842310249441329273745949934302555406676529684396353162877653423477452765990403221466158570749932595018247102524287859598694157168063108089741298146510726183721869390580597127479845544232798146244721181255933069880467611523313864162956247701896975753675765158340298260783731224360670491777492669749345472881829736237040173680126254622727936686280467365009711271280733061409398455042300646320756922164422273853196522719235653939704253406522468199615424732692208839926058433267113301946449804515809192165415445605069608606980640009134022065890951383001716525319388761396078688870361397926642291592642557637482185866264115760230698163363819512865241054544927479138429142168606364773893167040731703267894610451870072857814084740784841509427682996259205727918316735956096931175704938996824320333889369096033082482337938127148529343677828241509487560198498948346471433933253649429158212619710100328910610920775070618103681628611493142965266902251826500960774330491458105961803444344819115469569972874270012669679330609585575114112748710401412417198862304283156168890314122573427928546640978721351832629432926862583095999534232457289323097826786453936221266258377359649655477865821234190680407624309244376145023433641492721640956068463465245269754402818497724456803591938996388513514334305924343459420144909863932387698238021197902831193696712991203906793731548991637900489848598099218537925685800045932550965842182757396849285211100353539600321121156016028899301502083797752738482127880285727284849176584359708506562411483410328970386253931055586172251088501674191572077911273690348554078018718446778404707582541799465698108432485520759433940540315452172205265495705936516990178541014383388469664649995078011522261300380641520170126667675895693915463745081861116669631528529644857890198708610175155590922691820441884098124563817794333096335201021170650871157298573029180863513317368759325087559708438086180590246762973863654362513147467494887406435631743419776948941217429215880055730060274403666853300664171394932913004211553465406302709275762577264954222929748781467925914216540475092599855797535851765424205656150209364466071231480169849208288922280770037107126900823852058596341083308811298291118251949533547362544029220803027755885843655398600804364608369962319716671005334901571828221797912082188047160303139190308298303043000588205905449848316657286636182090696938060277005240412165499196589313649776312647295954194034426367185795067674892944659854127991695312142493425385699793904701924866151745877359097154467588617334901416153436349781637004348820109575077540441168324690631011486599197533783279301476856474612082602822546435603504478915709015592905417729499928519012448350580807899664381712412517311861890401565729134794631470195597544205855774920264249717911214783893502205946772339563523596527325208795028438404382564559725731624801277252634946561002789477909994772095407556087132487796017576728608886447274989840055969363415306563367390334662046441805377558381173822672461461137237452351341905358811189473458408545923978351039139161879864484992587598078772906641264589127552892626971607304692778883124549406099995041525557265605631268937815874822709790533930227190280981619264367875783843733334648131221777998457410039712566120379945189301986329106367379124198556499657343701651093198270817048319958119918840595727581747198600970130744630151607684036984604904272725557729515941476087562246638224197476763950409912670969887094125219123015240103050561036471095910204442151660314765194011929759101298623463542733981790374071068119018196217925159303328416765996782110472073604823060356005458690103121211536545757917152106842343337615174347315236097348779795910441483624580283940806478435351396903844624890463474292267321330803804433947036925763597785523104475015222472064490048302892946270272534474180538591686817919564663085158935419504246367592485000569931907182896164286919500342956726300017150845380383895094129740405674697355642927735036132618811889304642002440713439331944199261844296177428839853747287256642626857649714389141738390428127124576562309260800230318879689438835647060824073187872386462967871746987463767334973182366459416821569824006355380759492328000946110118217577592394877300191332931843742210320120289133740511505761332062812488693888297181621107272714939469358468736141543149017309092462311847793239961764483411985053761012108482455258936089578235253791899887866972323192426872279123274203131604284190576844958727605555237507150085932573214469628432339417030164122540316563118059511668733123050052608497421248370438157950181370227280374707003603566617367838998598938347278654737658190898276405256488000903904871697126153790913370875928357713968764318552744105602803692037316037924673918718419324786907881759129464447200943468965932775950421943613896164145790919112483744256394786873669098185663201893660644978048384882182555547121849617700212152356871294842737123573476398221191897947029233727792725535704183044581418572445995022396838256285653013102060489606481799504562066737530626106178347953305963692790879273721047712090178014835851498516012471717034846438178574638758187115069738318624833008732189642261129560373656526681630282062379511828300072447841301605808326773417976660607133119896680875137112228987110462189225595745351817002943007182043247670658310060049542831328410497905195405640491674680401923635878573365792300257810733353349129436957702899293629685078580900252792980574989327793604892528742191047004853718568772388702552896799849092673531359422639576122413140369053414731358284845746714659986251538913887718150788563391840119336655842196595504705779232886413055165661203757793421032290659890596240218665780347826557877861802553751541744932195736221426948367415276930180808268192946510995233604876812157347688944182843729001064930808723608833059424740462749185780904694358766477218135414311268546655672252558032501415584183516326224388012395353905182097998954581733937348456900895826368450246981526051113339203674670739898500170987790525052250622548383835452766130098144089288671933750544240317330034032375775454223725540166227288290972298174676106956132856921334543195775795954849735431925777623805025066834052223260476843114777389221628747280664242825245777422510555941184303856876256080504525868889027536997119092954763763668968388886629569408082680827319394426384433184062816443383141945431479207177513382268092459698755317103087223414611504916027106618666452086802395002807508152537981084607830989524564280877049959181341150352706329640660165165088636233437901115197824147127860352103147004763561724692105312056165759209687664513550353821296960860991568699447491709168802823162591384645600868335048738694982624582842555409932772544943442459990879126991608745463464635600339954100753424715139950428819224935513911748304801071863743239336201315059379290748027836842375108924413843552601459996391127853991982447532467598117641039731549181963247478828871692902962177463919117017717750040823284570169083258749176893045965010767272661439554213950848983064007184666904409834390933302007623626864574400560670876036634056252200588660278601229544220729049010985481767831108329151758153807254856421703342267023447212898590254625637909685596402232325361615217243214059569685575148414858217987719827939655102217236379566752056144455226697263868689788497145442850485322924066451434588615942230977483624676641593062378872939937986118132289461655260129608864913730769564294790016842451383124720650966656829017022915003493461485262198339995804197666605905882784450941563274319066187711635825112129864665545844691280361096774742603932047310725780495112465656528389089322559706661919109332939971429307504114770627763906159316929244020779393128232551953166095711244277225324832972630474197215675253144497780142281429264727310471096244996870357370136773144204558440162476170354326891411882137685912477569935035848699358733125436816273419921937022204087060152414801414445143009656826239002624463987841785884641412568909249543975375242371359359274314408740928998734517383446268404992919409436307874364283328770526676564041354776982691629460206345384617734498272220893015684978628158708406566150252993557337720353044854055155400782342775433507274375999399487536840972510826198232963871204978463121107326049694342272032370657713732645369553101990014330466140499922487552547072917328782849091976189753890658235656242090804751820311754218174826157273851412579822275552016555904339642066465594478313748029215182323001759539165407415184531066541517487701001737643197118001401909588699523182488609858024961950334071355668688154680540249759393348875281079647642440282149125899046123971940745702373778732761995742682030113754665762746074337035875567591857837192507044875561286813531750486454961633244599114979986369151652040649499126804769277449537969701700832081242842515790882599528070218164878813840757125192420568371455460107132472275117734941226289492476252685665053021765388131075045344776724108427003280145702585396292218661519783884752139549387857397709433073465509985239169416916524940386108214733301653502878499850883677600733580614888773992741034677538463447580930275440714448778675675239754017377771663885084838263515657445784732198706138994247203976286018000212249794714880867634071430528001945241330647262173130081528436594274735571034871680809494773469964157283329902053098363933323765715633152082334023330964627529590267426879069606018687596571542783577376793043257329216668118976406150507755660493250118926161376203246664735221270640182580641776600883109218924029824524512640792834203953484832843146398521667578503774344442813237965047497289513126030052401598488461683277979712789031887585189607205856408735828969794023957918885100233734733124646033510865184551230702664988631808337075266476310129433503779908998120348021513519324122491624963461535922041788469967163628349853660291955215342192408901600942939775514823956369284081362501550296946854528246461735160077237172796611524411034506831949767067611196872752976737885416063178362668739977900528220117573614000823187218938625403975984283190269366475778263374772092903696448827600468350332468340415352202893023498452605873502614265494242121775475814946833617127922082710962973691728064798015838684708198468103825739393472773713671579700004260402820049298343366346831976342333117355889614459343412261190516472102228809965079567329016732442517551417744980623973237452736051164385874193565084901751773921237608450560015726341138486242857770633010682110403160840490703292394575439421909987476109985992688262539514724718245634329254704590257081920852046134381410536004433563282105396249519473581836163768256614497115267139258621883998105230743878057897041182135663958438848027796906155596969664526471308103766885963435496828427878050076303067089678317364979661114994475932059389059677329784518473722112254577490092180647324340934134092350281233393091295077739706511737685477770489604636351430151899987732801069972691763843134158681931802012152584848879814925982549709397547684408967627812543631163107722447450806210606230915513474719414042087283302720173176879073920287034398849306115252588070743502728826997114068104167994786816696898261898302926580730469641002776422439067595375837447201357430067674414498419831850352377580834873004619001399871903598124394137517445668345920189767677713677204533130102360014897324050666939714666296484129492905731558082683777515560693275557060277795735667727032327204591759144156146382715720129036116987431851551822024090316922224465722659742661609577330526985762084086880117667071430764103488250253936896791602957451785152822990509421821258183823437674932847127162004945049598319552053086570409694357922957210525091750269163818838453931179671720627838248128391137279559497587517783837232619796697101264702306140912783648286607004880946789099380729974087182341864403028369501219391028048262577263334486318052061510324661287142592218736630633938233964380467343478084688942748711698546655216992120174580245108930814863420006962997715749005998454442762787082047438840288627931687083285254657931452908016692762803532538700355079357041250464682998166543064444636540878110800335831444902690499686103504349712460724025580992366380957323640609687957955337503919635269430404469390806744550226418444319889635363646761784490279081790136489103293447947817970175492883337487894205836215827672388439017322669177739922210836624801736047099577074135670245858494839404791903486843654738315422497440888712678767891492895055005985728233858988098529854835098768875502970632201162778765090902231499659059249843847412123817518180125883676620540524980722905478107825995079277864360615133073089149049832422802464213440469171054565526848278202057055636385931959903988806488906089237076714390979526148057620304066823202374222348104364267128529629124162054737852859513885636929055481141758490882164830623692215449250012615098052269667167330120844928880004544469656210116807411131778338229384292854249985849886648606002134895970184007932548726751606396829786813104030096023865594314613776407181372672257620433144419990078925184283178289853084362685883692507150881108350074495243121988302658845701816884993794073942755000555321888971810133892888923650324764035238619332642734740021084785547546019754038042710129265693113339004861429217083263773250175121449377651274166491921523534675425246932262417200130870215166875543173485746575846232338987827584362516906603446516438637191603697801205555491029003913940937265168339149936427713852079643064615664693353092579814816085754783226118675818349218815762959836193960515920652849447310722206131544361441506202442386961753224246162442001514941745249609690465735783188258956610343136393588364726208452440889185593166466090350023158380149928318226898115613960574118528415623946724675659084420269125605453392071742675390221150760226488473353094203631103410364361018911501050840965991294796182185487335410943153919964904275945453183638398014804473281012762469797982263868475711612157154211923721350734609779332593842867396654955283152515463630255067847416935907686729966313726655102070048981545284422642223772279757292332164021575547695064174058770765496636452941118108301059659299165776468115077285193796229854734138419518827655039205667514339140461211190390246327412210914645061225148434202172194113701431297170056274064490692467753155912710750310177484868622646510921687035221464346886962739471855913196972415196298530896915774695464900831538862325739336830620391686808253922845827041429282772273507568781211109739381853711072534624807505314737741402723613600253851948528017134663356105240522042102347893785472457787795672472483689485084526833203892300832448280735327414211906772713878395534024137152981561384535638185671530643581064765861846408371103466981796145872031867260778450089681321985413441552506729686722781095106988216007213305641027495865601173060386320880610438258945748551505537129661271890426721587118598288542235039080726087456622716868605078497276718251501343990700267176670745793345055335783849949488632292760097800751938335580019502504691554710568687929541902933103919053146015499077492690983837513383257638164761838733053652739916310220012049675299595777768614375535855007079988533693166959977075124787122864161545432417464094951243202545507666324374232454667585030248053210498796649866721839138352314352000267084735088537435058602444313175414311708741834206517275219970480186130672002631819010052560497271887011549033496575036739760803449649776935681114219659551620017204323118721922075422981005316504367965285533517578143668417228650706382495858066950233485055610745205179883239395930380226404912972420604065499074033040149103679676443317535825916257714641083395137459971569094420277593296592594483046805992565838865686425229527627990344174717796378476951872730744266023771938291636062623469167909077292642617700103389349936927682824244898809549653104125151908326498605491476512874865347683436196652704878309025013950407609788299172579259819511080988052413875508495551631306466550415419624069329484321267977614884146768983843212182661652357043012945548060405436119484626535257965537978416961883852034394644922602483834089025425731536926337165105475401961185533251183711703512259713793873571597546873572565736847960065838225285334414100421528450591319333859708908924330586351302236762167155144417768111953364290582768277388282092724649241021826125848987592763049878871638860347765438173708932207029026830526143482973112641425314427208810225221680868935097972246953395758034467772961184067876165390134361994722848967899314144324960884198547398552489187289453698835670991022823326370092518618655924134816751439877163931001409354071887395489956265945850976317193346392136784132778878695696560830396541731046914263023429811076909553432268291607787308788676190368235862833560909098950125943940158667680351990387894939378038573847898687123969169328465106062179291487933570265108189459530462550905489352906519479471419927104429440783024461501138612504850643433164237946303066835319790221182620230552044402075843190936618605701101978922284613341410194028000842096773654800538195217053715526095779720017776087649126946636847709617671917476891735837215905125197583813247437739391168322027884747154518200193129194871641766893434012573752652381536625302322142694303492419443484226942025181622876875897209788903796292152802144308436231825562931650461256307891707698399529714519625424843252426524812634958069351880995540604411997764832626416469897037420815493398802990675312751660424581562027254739168875649766250039767903875020367295852110192972322431589168954237545556560474852030866091988612062416188094822259861110400318890321126721830150950062250837236403771829841001094027063255365851082158994651595068812670114983581862995759325233163817740944875320365790340522385305880403925261095362314449260950992153723295214786819993268160036296256642287465999055614218204287333241746590126802284245124218244040535353975519484588118783485316465604779561072566125810649523800689470741139282094394211148464638196768188172301981195251047144999921283481608537535983331642311805865261574084070600634886752685528207446650463306732601463399475581888476060539006022300484735169528503964465037725144626434127044799088935550339074018412304464026088412696498726828331310047623275584057357544440217201450480037281034541713938288510154637170986119452203023085784997178762813537980780410326634319688361035824915579720049185581121684022973798405222336498240828539688942641792330271854434244015323751884267270091540033916412661945352157541287973309398905127820722795479061484357636498827786778046587785562524746520982202648203641955216913395153305826103184827436592177498795035039848581578084587768430148906016375613840575520547312865847190145304330055469409264145607994293527001422079866868287970708689545457581955621788679013756973267977241452921129430256926118848716537707742160759309105725058106177201333037359110680159919185488743696109244310198925141058818946339152765234352160608068113806288160119673961234371056422370854315696518811992774774653667772025914582856350896646095640908664926796582832689911519769679997940927329247738688570192718106287246270675583854891947935987430011081502107320464691856198797247911967779939673941769444126874584930825137749678372861527835979283808292217125419987842986384648310785763252777383602846206979026205883402458119680915814725812690218329454380158027773857449285307715972669983576717035905286390763975952222338587530704530103497086560717490848957193166906280201513807219892327418300343719158730238098256662384206145522992982371962270336453123182973156888932999744716236269851793026429782895293659876826182590011703384691043183704684839923402783821277334242490489997848846356596487534366382442283275246343812244289207262709070403384933195443584558271835832850045436296890499825419276019675102224689149627864400146867735798814788758612620468933058217626340849960422527599331336144428440709873736617722130136470698552557701571334654641217594488042934834837259655313775933888548133124049077431453617783443382853489108176299216808429728419289148435362324684293078026236370530352478517231919824534640424765753441044806746865714134708536160388776753861916299246264382326926537038272355869173837336267315720875812493054888847181470645517040175661079998891991695144386248292238136646854658495045718369303240730457912653054568904031976684908309985086318697784399527676772915099698282547728399434456500182447867421900435822786656541277742916608346496021747748962393790294100939878282202070327808525764377351866144235543252998641495699566090838008626291719790491049523511261338692743358721018915566607993925616876082071969706138724278550871070397624690237078276058643449271569017585393620198990177432862302196319361589992993005409286392740721999788634711061318641690171050377856443194341729928636228149688682535518330866390608727585230843355843173326335722284174363853612720673570158253116327345395796598546883260640473882751686723029326065155909954436888705803169099798702382303584081110551215132644452272736965722220815843894813081495382313281183406915890889826737056671213744273156036970429900064496284373662462608194386817784374408373876875293912877291046124110233475981254956281753453171268416768226913413296230428064008142138406666756553616755224310887953309043341189109503195029305151890341993598212747409933612909288853370865758309171684968515456858327328471756311856718823385957952809443399759250917194684785343865104293630954501753854457748303338885057371621371275177377091460888868982933106863347944935591812672160792806408666848716659023267117008889075248320076156649704793423926481376411397573330375347406947870699507775957337009245894558426192039714261886721107218430084450566817994797022272091882249225322578628293574160120539671705825246970454884064762902970988237218967836065069048447155943597121105698204517834153298769580229412923427070184069973106614881540025142953834285833676451545381041396724112700616545981660493538084913772855614570172840595653352502521048440026566805428907852185824585586440594329835373648156635504413487731356539795543276502143312095076650889465953730647662826366826674560565340502932132775576738087773094393407009458375839825111247350002811883390632374229753447334015526986477806469332242884100773241471750252731813764437349947264387242998093451053975716831498807674286856165199119551162847857082520654550619757730700374084539455110913713543362354770152566240101717626563391273616660173220779935005386917704684515581848340954970566824476542766470626026010931500658791367912110715189853241310306396706679804505126844635873501724368213001009067104793041431584292682552351568556749691604502510651461500218311764014328160173705782257755762062823942379858729402725369977855667302191023550742438109779307679317114613667293678352161264327942749450588157502096367952770191994332267231725690668533908939810997969797981978521001540658112596965668819864887060385897702784934391962972882239667369703331520984324171660746263490585198912940919675442723353661189617070301643511352462982035118934254989445283299836772986625850530732637404261492545925216602926916639926583137123393203948268513722279917510393046608190139701729845007114364608318279310285136852243233648370271980419362413481122949942147129570379273151900184669879232628298445898955638768327339268993792485987422363843233112949541851298229034226696703975890131991039215046265265179340900180619657301028898004750815641669007901257544992538581389845698667859644045316801672716553066625609423689103211545555534830775718415940504870983384050118148382144765014762362437480830523191298086467111421801107049199892531022325694980932024871732377520605757419932915188739831126716160128840901271154889413732955820321803094427413846778931378313114299016955688390496538451005024533788843765735877909230511969740644419138009272470392675305209547809748048920444461950851351574703254273519106129436436368347044748791211476116650487421698518756855474287141419924594027597943334413903964596579078169085531630848440873223351532578096236101243266788737873853948836511068084204429433805303041562684397015131740401269768017897261218503708374633699048500808303201708758704136104808927703727833813998419173211614581310646584011202421668159045009918866502553335218453902526621237472393682446050429843646716533052187579608091059660737434462116634434867073811384788074372326864126182711251649068952428809143243488650720044604629058425628952756894708208911870256268381895237655007373397842256121029670683329389579927427194432776538638664435145888615456414228077345295456469304940995162018810143989776818017719452947816471382847143902067361541345844003083232391536106994969261257140504905367695512733930726777134863299257352138779862607202415511447858203399459621461608137287291827836931770489280659194506126790845984309078627423684426357729408288525302878167386136667573115872444559256926038375951782342095661483610302903932732559737178279315505331839320132117131864439590496318359309945515638739634288135405275374331630645246341037022203387260464348153210335767626096341840683476122665797191022376459500072347083942746702554226341180125885305604874795380122465119354981220467769317982374707822088781204274906978534598136111126130026194216194474071306550885166145570901985040085807797580631176791063467053066124051242251848335955652225095505391451761495213075065366910381250605157242832083500064648781864826497160085253928221813806215689734300307648241632304417115195980546187886446187300005962383041818170122684636758183094005205718971130816636320745565254429796147950540530416047850247218712605904860896553304203638671436428510843621394260646335300821546535234189198955289607094606135675857017910340049286120504525775969702116674287133892036184048005150470515774757578979447328049754707766315154437878083781615751679939915999727064021173498073903347839743674885994978395294198332542461450238392291067068437631882648603907529681665652277299231316305482769717899208476932343504052789612676840442857934986180662583864376501896581361345862727508910374041294054945138702612919048778989415741665625694233305662579617017845543813606815101584738862447991074368054754122709380022651955208440788440276722306478071991260211394091614854163430903471979564843337834545301498137018888152497630741026762797706394628451787897355625212477275841109136548735622320879772324955839432427953759691484241182763198544866599003485753912022068165923054200571157112961246192877313162227822458573530228006650531125052474421364096006193056298856974922436774015456831286559743591392332098224681385336112689954652648703396611621155941438700294402315546471818445251068668684176422329444886008389910876254536928078750671488491657900702274020461849130148806298656831356902070436766085930766381337134421809181331392367042933365823806019589829812822127168778664435796435319678648930255060292281928831579618234180478311596299402656574175773558356828057161381876741388115632185870955694831233073750820452978900232802620494287479415373439778291906957193853402172503946073442925394147333348278828176896213643136084095741582885655457392966836695472016231307300949076190654959209945435624637071288065030375499816028727727165767419842280881461013336691616628582789008214957309539074937109143157198396890503780702592006083961133122391923320309522480692986672478956366310122484266678360829239365268018785036642378825546816817610948931921277491998377718282690707892759879655272255575681351735073789056475093446584282993041094087725346675653714550956200656727553166887514755671604607438097454559277542467280647498720878590253042591978086271916165702782923560067090623216200651529100242035393717659541696059034125626840343338522682023519577615949021500959763619174024400418683650482593116381632301747930541713883717930523951081535983163973176862612389400986354738074803700549842798423877802351807917165337208570652271104475597687403728609576635791382927870908021949427660146699444992281594443793325234987818115804945189337536588461280905553127521526329328079772698474805914557578612470622351156507713849160096664216800264699560635912811339174581026417344160476142495373585442151271732036562752498818175857482962487816884218605260401760905385141227661235001535045994488998951869768130597548630335005198605814257073147826866235245935486280462332181778435615016703919051197647922646345679765953489332535287010399385166283990227972144071405891656633342473467839128239198758635527446662304416759806472315699257726973126162438934220576710644139417654150595085612919701760679290151166624178450248925513524378658868388352858425645590198113959054245486042646848921653516744429625774510979749785659760081955035148827785576007301660860700539946915157255152910846198507549265569517036420286431521422921392362989475125017738361881552957080928719422135439471238575436192781122931155335769398662105661126640289856025616078435107822465071323325674383232175769976605440632414165342737797837912039287266604791476962673384066162725304869644165776404148219430416252087349691206317435296156500106256927591706515333370993562910736067616936015330064421476816861686537446151518076643654173129009713007765984763274140281707866535633309802636424656239839658162631594650544840737929534316991009153488497858343845972455350640457224299791816582047121593100379849537058943859449848759592232313643740708625581418585295790911648848918059077341099810804649481374929690636598421857486336309841004668814324867827784036847471982585048097426124589029185280009374203261468003857501400844971736701055294750643332865564832846994830649239153708766252044027728437349597932470358315831993971461476730163906447339724628975750883031359212698649039519924486423365438716849634656695872755081981428438615204787210926285837999659550336280710182929896968550508805148383707940582557758921996114090825841209148425971880298515048275482157293036809740567283040849411554571531409499636180457081256238407848111447472832972715404829559315030442158639026907753380363949597876395735013486922467956789035120668448145243984217618704410555362922291411074174500695390975182964492135281788192521395302606215748773021929502939905911148999984108884622387765991514677057781314241941443529735382273399593182441646002006107380722149965884534851217039441305506034238450837078631783120323213054833683574623325033880515974445393306689060033491975534305262570017349160304204147840751284538060960722004787695541162763499233576498226722727679750001599507609291370297573881223293373602364344071656873009216510004391544120589929201368498094641025798438539363164631979438589946632909324865049711374591532575574071288408224943277840776746370287926029497470980501075926827925468610148205826630261102573690595243759497481033576766737049836413139552117280147769351369437140228773261778319638537576034702249990077355044665571196279880388450879060367579121163039149882628871218016447288656017363749694315241260086899830925294859604122169067954366832473356095827959074935369377682504026625797318662497312520272403091843183805087302771238908042842862690096943212511962463433472558553802923865629249967988784529064247778700914437437587517547959764531535514844163191803507938322904183436272792492195735072323344333013410108714234945813053378873132878771121409401481595838975844858208113918850790622902454855229618606967564319799604885880671089311627291395216484504458518280838683491871581797622919225385549757435486200627487493717884146100818890302896824991376272877410283663028603353726931581512594183738230202952269144028844730109400175576369982209053203704301947163417407209397107171442384963301932930245507598805881902160506104871111901371731136960635227940054377858231924232626463805265475424907728355381967955067899873472265296492090887985394802908764475811484401333175871941205197025602963581967950026393557479516566574612833672028554664420320555462706267686408620858524770057699300099424696264492292082621303102498027924948104655042082695054165253061569461902837815004497201251121841975192436640723552637482614867640708322281377375338014996543841757304470261589665804408239905758081571143635851815714007327459951155839538453799449293044491979366840937053957848078432874946647344113279831240481851915431807768620382360555237667695313320180883341117954482384205933788262811207393945115865293054399957106428048937315912029099038110299323958151762037842908719885311232994713377007968496604145195145634915292979487757170773779546135132415002031399507998900829403868133341421439770693794266363038740402360234637400134619913624222344222709487168987575620474045808340000516393646878881245399155910883746790715594568414802297500869546198927988873256700084929112951383559557541768443682158993321294290324353778795097295099197079719986139477414619856855363897453158714496268050897561928389205908350278485535658986711158263732999911039012808327734522158894183711856614801125412951337786592073445766438444863762934470394438129267693631591112031863932337907146728925079029929181143569473206590782890895708787346393271927213193241970971317286650703625298590955173031807854169802057580693963584560627058198885998224195136925060808869400245681372007998878629977956753602344268025588498521629981563818694621952167462298612802140649687653868168711484093620003139871953446457691267900740052156150753851378954287900019313205301265167256416172768697770138255657999187901030873411353900732099517394092683877648025131764975730780586673623180831771281633230515833035150864074635236013339952460921254626413030006345228493171993877423673933228680539079435822390912241451329393502250917261319428347741291573056865200164173970383893808711230140325535978026159547509245406596327321413550067197563600342609926918676006765789100704566461319480073596947075141560340070470840606397275133311720516127209467954583442976851897764939829833127571570901528570539391132721985199214038617026662613663502292489633685097804351552723792098041189112633008048830508564739514232406704626834865163591818964950201278972703200013339306411148803331701143559934331847237171461780702987207271412518863142739625707490070977606268223416109427181288835873481648093953231566220328489904723978611601340326521733565332307137084074000353470649547371236821815593385805739125854051369789985224231809591206132250787302258726569009860002141767470310877176130404293296105522128612415495180230808402114511421112861544119876062322007788319832125817292977510201095245670540408363020774095736515529663789430125379750063156928058308268221117892498858228686912492732704979690784916265038486672139702746950601665520124313706568614709119972455282365051819345853284914530499375220875811134982520072443727277006274909713577626773742660837525986276621725792347801286480477455923211039365617877448522859051159907842222804887469409328424333433405420155482399699983456265195011602893887410187683760820071637890415795652546618793838224065029321900039040206710046714770464432637852937981200699656092272238212947014756652307550190285010649153729414419100079040361438080935223050110058555296382895143751691056575884663387510271475153123299979025318442066574365852108672581380176254786554502479363067395657851172190235817076130992884526042926661169019523892027570643236558435998506818536300630702052442032406388255496191870953201746776870697917750312083745261580997869488557209207123930298478221713017369972159259765436142747011380138740796617699666803596136432923304384841022223379593932632479331973541855046944542491215069204821383809085301506145535358119579320991676632252629559101507707781270364479060065558217129858464564859764616807208693967730411961549147857709189555914466367274704439597347424555844631325789548506327080370249013777770917307815891899588688306503234685532498738977235558878118060890072384036371427959429910220418515219979050056431123532030152012114466768421345199032680731162415394506172412702261559973047548149804728198396340152507013682686953361766505352416372528019795382258317693352236452183308207479851895876078532034076585010129316601147471283183160842305741418105505400470874400967028606086833877904890313520963760001034819448837727539010567388382304699963258936817502962065061578582387485125887742410242375130001096632265728921875848083503397172475733846403823568247402067783671937559461710757648379373659409728566408504097174293079247693483035986815798015812742090819996431588526412949564158628876652029158423427821271023983960406234660082247987053233132662996448833745359249134243890216097371557843000027995730032791478888021283790926730106767534400603014422188268132760190170274839167908637485968427509352457932089739668359147427761735731653445898699186322052374845025076697334663303974762492465107632625584516260231489932653759427965246149709169282160627286732690207432196863647896866551379715571393419846410210149639339686029337734485571875147483298791260032137580554208307836960685191561476807156661353399350652538956936986211762203590614394218567251190671737246588848812171294395760792608454986557966491033263724604602883970282267919898578566695689969974780950541753422994281000110627234134369280137163518853450392363564448143034874553536947966397097274733574070790327599879340613822814691881891413219292301455090699077946660029121156260794449094649159843525616864566533631692393772626288153288463445847538133702276278119974073381689631888118375767875642378138120415389999857800600266920791501898327411651827985145246723250585460779433230402840680554292890251024363232891755653362886728970338121805882368892003170448502678446627654670628476621598155837822376948956023792613169997610340299203209624407615151455203993254285307827931723221403571915289951250808896236728852183923893456200285525446085181829527053348727654169098724469072474781773767069724179083075030047295952615261392216944452913959200793614627310145220728693363928525612989105068825555646949068548723261436311512073254913504962873615087425204673392911688773562759244496360907951233985359054391770428497104215936016144105572018585012131499511710336545905659454799003764801938547009993786906406067697305234175916100902468257794817995284261228889496868289158344546591452404692000745478003497489486357675911452811022474306124461637961630891014728742472744962862472354644287971293969495581711090392922333667984662315400859496138166347558305690095562948787786476056012339026187352557136365576844730410567714223402383073111131303623898768926224829701198259914058217147215978144513722637250751477763008042080814713799748392996206766545069862226905960646603786327377152384285070469980040419741718022501664724485173226537894681480001496572893792168158983531662213496782532166684453510421527594656991811642277490856281320202202354084005692690471416394873117480370331175885610885572205949473333012203994380982563582770034490313012014483265343555951840464125595273707939835090777798887050476383072537244190816418168836941684482936841956204677262252571689589996908403665142946723160573244182927481421295674791875360341831859772078672376819442162956304256785163008716526235069495637325466302178040652364975009124019439908699506624557467484915144904139913083532644951697645237646277984295555656938644273397780957253613318298762044500382894153781060932498532483179730096877093785345987482118884559500204636633647716403810182268335526184716486516485326430876825611071056111907292350329782037746263722771482622401566950429485869748331561159459803317740293746888837449778600759523237670560808090678005628868756231298490560412302896631903078391581327074105772449007252463273535416839796064056172730818907130332172324354075427278992914163172708672288065620433510510218115817480446682741226513678491413772758614053386697985893358052178200726711926431431701686089711776040364039670866896563853897467011469642128586449904560038078127313444532150954820716671892679769925761901523324991625898475998774106632626412828097904194300482056374658832774903477397427236590129796390701428445471681713110980122656165114588110951415186741152402570279074931125586911324224439107593558067220513748083676654481594673710757822135165377247481246410296831157518006536763344581252178539339899334997168821982145552455999459720677979934909019630184628417950213525169638831951076556108591827650966192817384051663009911307547071160450092525596533879442197711085663663348759445816139974874943376260137642640392951246025723043324073407013871410593206121692622491930196763062319207754694755687556975148910346591014567386132305584234047646605129256608659132791997538207402662618597192069491579927673324732136800998202682565953340057537759132857049534001615067425333219065966187295460159306462392011783463665629487616798546032409204590012107970710458290966006383943078234464967438884691411453619094576918483791838204113183628447869124087457248654405828823223241436967781281075930906810252452905781629935198675512395106694063289678454196275335062631418317874112524795991495758073702275222584301307968138487903812155310334036891720894575704829786201368984228212131477060901070624160297236726282490685394708224654245565807147855307271657988022161209613663985453818557668268105167677224260079389642441913804464206180237938381634813468698297567143010094532441586705252494193540799452290387342838296918990084868243512387868768168315433738471998605244539519187207435272720474068529417389011473232105125877240088555772396736946858556257614159183960688417631229123154565742711945447529056932951482376979240784211824960304365870195300568697947903134920424910824669934218150193713881376633862479401444536309135478123585055895440807114072417880288133796757909460663090212550446107026645381965949849827349753063282485469634065465033862519447401713881567490743877054977116696349043647872488332993134705988144347779189609980736444041624902813330313973250538404029974988771274049008791941907506848090171465365216124503025193285595710889644222491583749591687689963706539632845154604721955468740160078772676919359032040651416020467597632418383226919756615157604367521956006381644418925897758992008393106209511202304025849947689201548374003984604049763108316004203690819203796559454439068609047350683560016572384435901374947706105393446085385887955018346138565721236516437640284785995837885960151541443749157545914384097748814526571630189184060633226301809927418574211194129679293942348101369772709006205596828360947966214391836049634365668078773406267560494479969443219550823684903846306646805563212557540087312936597323812303383497434357125501000624086733753737089464207264830160485957633848955940159562943787815209367720295888514979153617700102152160696036181426289692041945904453537942798817398604098844534311580333529727116785604534989251236523124733317306663032933788648123876363526996337615075614430424791508175138474788403896643031280468197107287114955783744835467880361806057904322001319401582901480779532622580876202675769306153222797313618084439652567122396111499231484247364501871456745042033707068005879991731730373506911845931768839220346306777267708734899569697171836390788172313718751945202671228782144225582661580435981749701957015899971307533116851864365050984078656919719893010872808101890271921863081693614508623648650319904797393373227053698871743651083873361407629428024813621116569929986482260312829937432228454095596983907502728647134803253051591845339187344022879947980826771461038305892190918396928670881155339223568555898417314085620283042781692487994170616559342902512542117915255312196301255068920882431923613927518697047899115783082053939472850112136958045977033209607215885023157695511422336067288415873974835994986975672602457105099670898357699399983622105380662443962737047829953916939796815363176152291902088088482512784591893418241116668341401759012881500327464125769360469693560248287437956322114595269207662018669928832317704220482969070733539791835974834531480964441818786701059539913198893924358004589721400021481999726468952499927572962445693572970934530101516725043497177102686579913066969567801018672897738392803535328595009447586007701036057533320268001362266883349768645793939058365188695524090906517395179803640515202622964226438803180129158987885317373025019231018944051492646767100435294187428428294495611448036560059535894993862540022202170659100167685528829708086607857325748802085206565699979058933837786675921914653603327051920609438052651173220230706511458567974846612719010186796640359991600876099643618670272824438232558998256988428776658923442048117440534350812884457766668610502217313292732051028504346958757149945975438206911911417807481809762865886122957099298326503936894010112958927749204813976002206463813593906722821869295007398553536049125281016799310395376217527848124544772759707309633951512553139932490446261503927385854586866643264579918078775535813084498108086404472855055624090947804580676523734033758531897621278700463751912219054282267581780023047369399324580001206652985662273244576480843218123130274053490152280063787447190953685391078588285801612938339589593605205246935221591278474094567398148912986530824229008850242776205967995317249290589425788215963393406915862451137342163385463653483597736494179296174503151680507885123457725592239705673237978176428338342508792486391312716584527424009091989634685157120939029899360533956647472695943867204018833634820302178775218910188008732069718845865752640767965614899195524042260758256987294259509892603903181344079567425875974623213026187953525951552140090349744410893411914700048841624981957907584147492245166304475594895735956653472942874461248695641139571034524926195757761498120036781397794352935264510815051728422013646705247914955931952984168801634337035443549963063886664855680611419594204742683756208097681845651025990602702296527518914471694408039741479482095759519682199392740860331609839511953742502101469632882101110343499817122511126635051643516260074637545426517471487684182426446679577224953306108515280397549373847303241968346182911485239875050550512524886530452925602643533232487430687045783744006084541358720455395843817201701525181527136281834373628529450782495639751980765471840117627214883176550059076910674188400778762902542877595326157420533269933175450934106306362110595577516985690692067129475592355773794385824562406711237071447998715955066692515494093978097133508064106553239954900944061838631459880513764784025041409812959190279661661932176549028853749772006012660223165887926845854505550409718927857664962981993702806597180832684983278861636467325395904379744057865350071044882073456319782434891388928900886118527790123430478099597809975781323408262881727689694011243133696647954036034322518380060800807632643547107194753762859560326527732022364888435123122736934666373786898673195460065455354075370729838262811156912085658451297517068814732288518179729139449249954964194891670385892119885264334536805354614054583356225521333453342026176288027061103858593879853325559690885314042834767283938392032252809061595181847455783667284268904873942652765902936652951165284927234395704459112724154405878273767521430833924056849911887686888025161044775146175498780001506307656011774606615717526176367404368655786092988259389048267659696988137669257200473836343605638825473427439641567614616289328945221172891151573328158368817517189626253431697625223360777224486148899912682916509047523150844734409850278368960403585418733247761984505742097902576905284762847093816961719666343875246951776670923504810788288328395478349572105763037956022344216180771698321657772417807631290494067231040034517487585172562412260507906699559554560368205528235928374962033787983911853965283122571072313088262717683278305410275840407390342860679794559626871333700565426249466432723809406960112564829495136008446691289374060272590031026381657549011653247908006232694876681156223330313181733693221510277804135020673232333042103223991018805490915751209965092917418313151162373436574949787989475855615669321039543339155168568906882981605415673088041385378194209434258984274344060328942553109743710777868534811514249880751803514798411556825231127897886084545782262336857251887259044408582079656319279622628385705264055229293637518421205929811307129576859461235310938133978673994105397760803860020417017980764786295812994577523673305873747812596324837697633373100133366334237178834734872119414495125449496800263491807889016959377524895795802612917284264788252783228485616088300352183730041488731903826338737998294835035638144329437390291636248179019335110604787794063633340607606438313680252828085496084221750629064489962202511336775145197560175940512441200513004989721935321503323416952196327980783966525214907266649071716639607470903846664693338762918462695171872018761085667044444554167465216623705869878415568300139240297587981371646041635462342213927902235741754346869011601305901070085448533786928633981412174186548646005592415382492502407172496109648209388498442711433168490803688924668273652879791898151215896010365907313916252643781025029813855484557284251137913207649569687369472582721472580928109289421565837789035649824303530096126421281353876714391135115365386664494793556300472481500734259275436992568784824417520991819653074917707865795614300505558296817522237443487387590516895773055410942158887609902340528043681767395183406938539304529324747692449832227788855690448464999364019739337389324441715846500172434066204238335457456118249179221987777427233849387306018300346011351644196204080345535169492180699364601172588806624107720531238539353706739012183569878655569999790820848357667817159489231262711676806086262450597504218983461509995555434252664538200546193932736667687366732220340003021259134787209212772150399465073676111519450751914415911904672288293378359593733999252515039178139382456507199264134698057934276683712559277669504325859317732695210383040503571073325380263801211394683972699952298925957916374755653430284682591355616015683159587166207900118010038749989603589026466523311159106878636583364600372571208037178375046228145492117337316405990849969291283866769809565677097224339794950067728732881415887929270827198606515246702331485389720909401475820607768011428275952258682753909560380281462700948553097000618312309375061717854303832284201243961557086248501346298026353418682573535270389594184485532798064437242219034179799561033701619729771525584856069305708657864266243623680987577848482726337769834870575307372711456188958508000176869968749071789977465523881199557156521076339948284301536348869999657675310984752282386781573493425900939793537755145630350058611513427241084069896216056095848108831295828501562801384812986367433236712561095353182852499662252145431064823014529414284518710253597986610331587257345057639369646975603687407077416982475188027570083975040327382236593191160339263981174438622315764680969330712779581242338803001746181233180954144817214498640320684322904945200353689772364254303505768214174803424969274045132885965250443650399468002708779674162555652477607659760848623826997153962689886072742575647602806327835642343377877311373945710072573481801650439897268025690641187536573197713744939031409532900076706076249547187332676606273800355896313805318346206772349395738314675990833926630657901112926185124642264683250797401942918950905060440832959254739810293225296696710013562946948687466217522610089485414258593364441141097698040264861899904165080848934144907949168323001656037159551642411621838181213433707496069230224495667340101017719737873143618405048161632631831087004920338481373133868330246001165852016499768329328966620266762480699003363240744062726993171363658855448267884441758560438309934966509353280844748087072242648639616243270811443327720646452042990720322676932842131234308070602504658059393479795804849792017386087046045148541829265203410036681411113076551910242073039597486885489511955507155263285428925753353030031570724858894536282629275549271077907318677866353063446227252785670054489780483830831588530786091884267934367344361936795908871673821991077318998545441884547773745242157384710941622382435686889853449895865458472180150127144927423279021509048233190724924857014423176022988106050080800283075745201758332183675329833159666586581744955035014536649042225596740072713764286126214440070139446207970653489521731447418384904960851361559016691485225850711141851386693457838218390867946240977042282343510285912263823441512445791848511457063157248525362480022226573394139590658427403245063230846611066720730737599499098202155171972947472424128549199502273274013080094291703371859739698111192034450946973466875756570910783381362355366828002376345827634700703197575174807179597047037969821379384674860087793008162049874340272329010734233935736774053658847118241273589102474821095651140221804975134951312324574241079509600835341754651823904994455662138812462626403366817234001198965798732067828882871848823234467513975189325151002322456308726953787359561166072413194451586182575111267119368665859063009611499260844254849511945455613773057044595557442440542319114098274996808262361366576280797900903064295199401180192095228987157695926282755973983194378311302428900919339417197317905738340738881735549055661680612495253192465698837644190593301305363257318569746376659229465573473481619068340567210717873792585246045665232507339532258376331663886709438198605628086700346745534927941543017758072014126965742534559156565862301714865244710103692510794438034192871308296623267704524456458175551878220888443966209984437131629434506417156039604495016743032022373749732910083619212928301823502539474183936946356202657874903592139016201873934487970361389394404372857645286785106098907976370203155775909655479892031543720976809854198886336613335895240671247944440406352094630162379633539823398703585968182965222792723085704157767068247077860023296599527890889413474368562862058008941922190458675702193528754662045718317796105282725941944720239207829595319555703125411244256099088033851745259360722478574375987270580777105254277133190320203439651739517514510074477297903367401495297514890873677998178927309305012424555184737047158601177897380943069141104505470110331030200151885017715284672839994501931085054773836098115987260014152031209917547783144663444034939847424443640759152342274604309281361907450723801247151461849104880758471538760083409648416513155738062146057040262796689736286157422595903875691303868818029960648542941712211194321034041344556362195851944433737328110942994445706333648625274583718142422024671288328963759038359918583714304958185875063578721734450766935441172016197468626342892423502771051714417657838599232090937834974954222179912547389552189375512525935332236343511986701093669914714516955831549438786110811816767792076980720331168039844830467548091810486528177020533170762533463390868093942568848607709913038417947553735071702388974082462704892394289508932082646864663689619830229024250359919017551554876717682807439659184067141253822919091717341658885562884896417706400722095939008925554367184007875177158708194493890602203451667227761267943740239069927770762558691962500603002449371823067537822479495843088191293361659407516240828027609434168712651013557680123040597404911172976692150984011676781143669943780353248532123168337426533931238854382139032912598527767147094953025119178346829892992624561432294552786032303275916619491858612519750194051972358340320838948157196645235367381829094448708104575138248949163103874090224984073043814391986922611868330473106430397945832622020523491099604161713261192586600232332758214378743522129886827271366229320329999256909804308085056088996539484894252397840469996796907714597155723603830900456966792444406144890279397536030884986161288829644597797761552575300756791752410857350124148497909873071417857375777879383600516484500852321361467330366577203888911446692667142167405958872167786806663320366508373138700813990743110044519581856146410046387394254908440962475759856795019270320505357588060661439416577002588804072856075952073026900145084376048749375610222563822404118268141722793513506540753373107387977440664404628119994983067752976238686118897567570586826961185459435649503864533652175728783780946599275004516170957501528002341286007382547881541026430675902358065530724074751267626779552958089246767357960103175806184453474041057067636986793160243121413912076395339514536284397757792634753179664533043423676140074970946907001611558227858362173328295155407269590044845991063190387387793880167008971741490751350840649964408083933803614640071762503641332814625672862479399047542686040662040432874502119329307740250539879288475565369368054201402361968332110979849316390370149035936834824082424115789112680207774876496534429468726016938536522281472942184285760087060770751765662159245319993413858631865313760462382041978344396276110278038227789713814105830980613722082683748440106798938226069999672004265089454644057110378230999577457969012331490352576804526773994720633800209896596803983428884079318931471362847465826411797523404642826922213468349830526179079698212029420423106537657698523197181851173705425056037556878226314297208174190387342482397531494663808193935267639816193828401939684213757525865870870829293310968656398578585698128270030726873761164233379453244756276478705027578583445503511950548088449992772144827418159309783544409833377321514238813338511310667142557647807035027178103098789825716241522969230205828727214749092503649772321725286065457640373710267034606332876360940726704554353909559735082037088680584851503339909141794817487435196079496058183589361374765303440114979546927978350981502479868277242470592077982674536549125621582813519042529051635558593472684107547558066214163832781377315406568366638177759471370481966159458228144028566202599838993037786394049770755376071430547207205025589686217203135277194218716877421502498712730341492717103489540995575352894611014709173334399563338192097352324233435538119503452046592713948628193504845089117971615568860501323259053622925885725344143241829986430016735220671905990068472306153392288329889798287384956751202670482949374302042726570589636462209165393300602111026548655385744184857564442143312527138023505954854301639865612722850732478498573108728344373028220239992304589814927384996484210458718712957518967880402944177786260610526989272252662880406333388100483443670700627473004338459560896493894845586738970436483336273738822463511754979898514180037316345095318400247405365352437258673487479018999957897311063539885019782840555351423047365636931746342281192953303016184235808965850619556477054890648665308085819478670879871590699862078603622674231178803196659211181295867309284337069320944616905849984184774001794889118461814182867703003547968678025194739135209361550864933782633531832559349345028675574383261805677910876999612842951880184080431248011140392737884094026728062228581910179490972837287607532800609628313924928551584826206010816573273718134860657224819786685612032924768422099577995544866471791803675924408500110810708882239138514782766542730471039081711490471349550619060491591013624030069564727123629678130109275523441203428179774865782825735870312479904463232149227080023737294570315085646910130352220134315586873366083684341789395380884901969377142762345096266218227399103711813886171019185112889346800297697292233046754079024880902887254940948996856704014672366495996469809708192343110825114881475829207549139607438845601258125340149079919685835281885745227755603336573197328709168294269822169845263651135005220074166046391050091271892740188655513238675628989262901668634575175111542193817059177926589883753458598056691672844680438981778268048386241622807422287631695065859653901855372348444400556873101190812343776234190723577973830387233892298013966991806768479141909068273196187713819591125095484679678303230552388678117888936087341477737832569009094252549734036618734402199333088135593409479845341682402435427994518198387186661539198417502487336179701797140567625229649709256231408550523829390522908544950773446976634769205217222894257559433100088671329292698066803665555021970966545106770854846664924907542555858148677302226074949837169964459765826306584882277149956184323897214499542709557467512448990646766106887430903451633693118997627671822871148838972775731775799522181980926654653569459142484606610964432926093396523753453062598980852600922115495188644911531084251665998620240898701417924278037808449097040210456214228556432514158592782311437716938479215064787606616643409311088885664899833377197458547412340604084849916410656127044554307269356638600576132408619448032590991515488966205870171688447483675667351706409597524546262504587321823181518733609756186067399676378144561135648755809022853513093493640175099002246593174911253526231631439110183816683462398752581789667940621397129389100787625411598651208526315698964278840080655822866724318177880748756260996527366626627718225641650827229064362597860262891716513922772666772887412871177460568551120148835868104984942226315528332256643953204490426726720308326136680193253065724981452363061119463157619505208793330187792434533286882137664046579462553757564547678409264168006886996757071920267803467470402957304523738485279292468796160667786664002854636462989120206534722743032579490677504608854396705982489670738429034034951562974998417976012654812341971050039313373253623110518750221164666145065872940798698319915145573049809597194611707992958542923218752769072909658479699336204770826444762476927046970720619104277496954290511930371402706532084334889602538821331712403493246995628983881404758224670975510138636051396063781616597479135437598811247605812861096886292438399942966963885804927051378055441074628392793388103913057019377235302272612533212699218047559123315491035313309530259775906402897824395946189673817866958338804632872170117754333665590336016098905088915020366750145225469170226542736549508356397308158412517723208150245888233057932204503340457844949584118250030505135195662257764607303078226334794708923205334644207893400380155377337232674732424033154650870766066675706509912907514531412882899186816045273714830008810467012161902342324395593074439319134281954193391575278711941100718791722817651704656838407902549631307545183254102667665617772995681235829028146970347177084888183195786900959734950478774594335776408735915418108773910311445146005975566647336479869831053960947148701493920517324099000983501975139707992662099440608458330818699829574918580975720967495734545531045854238314772001926600011825646294544496360510449527544991617074735649350220759476376928484278224962801568748872634243524691427547253548901224799204093300329345517373653423543849226789989199902462663238216263489663654204446552226732284490018784540144050707608380168067774385768990236642001887766316411729577854666621154068592357782116581629241051661791635521627579318784534118220237342244498531622329707026852406733373360408234900703291600703289255528888560968778684470022587586559062313688135749420076056693138989580977986768485338502058518551286984676776947590686040786706537335557829898353759370226030284314022056787551563461170770187767389768171187243032207450057529178484359410088648201890094159539325593710209196464996307072310958218982759810384133587204509107492935318402882772043933469824726728730882377818352167821879798653497400381256533474482881864190479931948657960473231054666832435313409829348505954829552481241308123037675745769602779306187506013359853412546206049252600696404765005251564921220546549360417697701591627210442274706332401878833218583845681723885817522281246088501439879992276381524780867194436190261073265445489876329177187442187782189466497612337087659583089118955253082097581802223909207121803495238765488498492655490996488425097395360448064921772991854073975784374294928721511163235254904472603604288495292728631192826337046371797995336741584266155542469056894233250113809162904467936573878581707436425040974715536952356845582193928992826756667205398249417112561015004277385339391359273286732711119216426937352442696494460687677332604146024611020299616727918292043926709201558642676793476442339560436665933493119341793110358660907362632425646036180684446176730877814454964038852250455653769915978312549539853164738787786129718868435489799520809518299069667344942902817691318550631470826850733493112737618772671554816042801429325272300172135046013676516570438260681214134728116092158966839369771788399136198456971269773743375387455128645700031514702932985054539594769864040507485445207858254458580204370674544998108972684931261180322560986785481405388463362053212068987855592133411689770918109541516020634670774585459148504104854183072535798815219656549902809337422000793398287067114668859894197359246037750517298256252650666164300142689071203818683645941730463579861961348945432722771158707527514507378347558316787783212123421733897440158500539798589864704482285711192822734510990336275277548032983153060714034084556476630954524272821300804178329139696195475234893716124987033909533942359655160212839527947362191336174499637566543834686710614598034841780373891133444653821043610472172010182887316832820670181364616870551537551046615534644802575516943142067863465233512425754326712629957471154441228449118821060002648009797716378828986945801197729795670255235807467774617900334865756117035122786727467748825511384118429737582255625966038177929176707498664970114587226746255442819671176183594740156442684452146206663944623905750603351921140668401987533675805403705149912033616660279875145980401107847997097931134762219502162365798445182028317084423114652773640577448171432550450089681557728938564840682562473194418358814617809209947227866506317308057807986836633027743906916011134606384723471332188793649905040164610485885959883077134743244604757462194706487639378848657365031577155864569494051148638733092368641387296703161453213273497191233541911115321587478783306929147283281676928119104977560469197440311522266574525757983748983893926621612308418254855952380816775553983161723122153890198705413281351578610222940584862066661565671228830333393376813463357292569442448263018560553665746587689547464604889296783165896705405668584765893456938458721477355139687363506036337907014869691747568510825181098416823684887612132471586077079477960598424765257179334533062301807446513923392801650414916150130289072083250881865129231457434197972830851802871469415347394909571845148779436946985172047483383326468803810809910373239256873388337034014124635580443779616147187322573677298786147940748346772815031823830321025994197455705883934044128577459839121531603698745229927788754141397342324287119950211231256690436245514977362258258169425450680126955233296625582867995338764578428727338567728454949487843852886071497674840451791804281588323786022194348771966123355060898569949948756958497519593029585144792250720687651262821155565275447256659213291990282558190698438963165905000526995995908199083266559316681547611354415711889651017136387306510462177321145979190725941459637300753618365318878118139359928649077348788799691517149455839697352218097625014734952387262836629595545408411769280928791379490506979889357709440857865484446165224701678575703280543932530891124657184231932403140349968413244936940780156470082362137446669508682478004459932979625811632627553240567250070940719260299689291321394628953332074694396842777678945017681659896974729218301177089102957706500325786830662245139154842259611796074556479236689643671164890367157680818992690087267794672225858305346739557860417214602003273114101605296079357758391459654103717132633073390445232616991060809606506693906021624338398880129038206790448490753848378522455798908364100898700076108155934337954939346128177581207253102507838352530876231625249439737572058262081588097572995941006645211641697567664606859295676697862193847194282617823539083023601541070684362833958538248542692758557041125074195547693641045737932850404801037522785389891394030059618271972365036865189746858407064471297104492975824598324062855233897910269344522928425895291776065358386378699009528220904456907453788063119183965640227387074003118203481521049266803451692261477290162593049108736249423086248237702147900049794730352935320381121336210525349675336474423789867419045651604524230153132918288458257635698778960012103615234824063143971791602739658712403990570194297713835986094153948837005720225929140540974230450213869484666331749972993378256512437229010701081606738950453230463386990264882671222477522498445823127212288720868726778947228789797772283439456224833959562352107877824810008048800935812579933688584899794904754646945619641189221080385716366066678692002576202856014290851658115296752701091049373922233719737058175547266724852612900173157243647256568238648722138747545357975920397150163366992965706056918592410337463878576479454314404380423632056931519549280499496556686075415949674981147691604840559801467515527187742618799253347432060666187267285327809910630702950732839358830520356961071038575783241726050320156775093737639332654602596599971821532481494166815955317384269975610056505167321398884540063132851833701596800188109514289899536628081908270054947181588777927090950223091626879200665467860544908334712633390904502429809801791125306644796716325361186003322490916973785873274218653441028896163586790604793666759743488048760782305788528653599549972191505437407827592287927239616223479001450410480914520663557846381150200156963419364015298819532720620778993285559147028535292447337894130541633634239443156075637685397092692759367906535109714216678540281285766224470870092468077475890016708866536279443633909433152793889423451261603553209632474902407572807528128718884749610656922094096312835175320932615769520345647969932929208956115399906004759040542326999457239385524745758572837222373967569304003145721021798548492067383717139568343298722936180525070049896257992482676028105521155471664481970031207560968796657972503271495879061045759885583606244561033274359863094934615717714351352895656550970130491150057263192971539214317062602204785295384406997727336457953269760567110331592267666892228617636721597520230997626963672899673952333990418722905136686361623239949147008917265366504039875172892078102062764539973806715787137702329228666959994705228563008222781581525502895492745178786320442299266600802686110696230723124787653212441127327623411525170868207560240047373521640389117407713803527075059762616652996776569253426480878384222417102845066877749464457781615660685045205423110303336936322990844475396232401788688028437020947706672693572149268355404021399688816036090948059031493775379747499468339198805277802832436817704526373723617220151000069668057960772667818787512681246897041129562502490171137582117112952507615606375006771916142269948526177597376126134861957241502500519724377934062707676574744197161762059636062213308647313171249762312457688716394570955021808612526560456537068615370699504197085850471285366020408415378068918012817570133269175769947542152158770450408652886248554656322132660054004105679593300736593146289754266935363198920042997724568000286793798262154065836185199441282591550617677524773859372753560668070569869084964279928015425374386491216590279838015924545469566306056999301218054405210851300583860948635658350709094000546375415519099419337667603396349566846204930798788478201494943981484509295284727161710610800946600622937174175979369798163444277424870857468315217793588957875563950140341900522519393691998532127077006567348340484717788664728030298095726387584074142244291680495903775350468616530095741641361451278836148726381975714084536029585082687584232207287805607558796883025936331793599965204632850515432105601047973363342550341612537759816526788141049303705784572671636057359588936847477196902972698777783745210638626482665024627973692800837354603225979996872733390752772519537182569765749809963077767978613394000218971084142389646635119564910526583318554554095868940088378404235386685655934697980595357840330073709412341311989134452140498849957423950722904121115130461238072207825820602916233892798970191668150027919465777062425919729700268430729144556911912202107030767532895505639772491338017141345565206760269307122123206916627894235792827765970934036093872204926986447859060946841119711932870877923835688366172262527102700104080585576919267879268757311338125287821376383919654478814616333194186289534299767452725591397055435573461612364806750295956597611839165281499652099714837559990328138870979468699902418520387372650401509971649703741249637523551503001555550152981813492802778615340333882769808620082281865351958133481096023790880003329904519984084303226615588869546998156196399790721715873711593683137494822261933880877743391923040700620611895361043937522632914702916247352478972635150037959533562672279161284949056490353799909797877317557506294261912336835268506624175830174834540270830153769385545266136872808355763905783765300468566063204561913715318358861049734740643114138440855622296112006229451602857280134538645918930989192624160252486027342424690909057802279764833711168279969250819380786391350905311155223588899189168733213319805522789968100819163742468679980786871939081698743167930008361558067121567339517314799433581653650590164162520925414655364971709337628210355094367376657482057587919702226432966634357805648082603213259587311820016094937998812220345251259661166531929070057434306840777716856310984997933055246190749934346073921087330829424826094188162140965978424651735687785266852030219607619288883557843396757739660757379004706425757801222515795144738188258638580931015310177100621897117606228870629967572085458033982556221776741550543233872004606320885152322842436045687547917863096760042737159784477326142221528438539144650839592148604064915619097685827075450877772360143178019675114876656971116293772393983360753333687429373828481092778218559512910410479714919292782619963051043180652143038691898150393255406384937713544191752590196280955957956836409473716980710475034634520395247294295486167857840411077563231946444308833216711623160231160512809827851651216551710548717381542597534197874268205091054426047514327801105941400679474661577496739721125099350158361189681140089568792316197997952591222556627016404211625219670213434741377446121282738703372839699807325994913677308302374559723451283453881290079277873388709872653719291179287222758105608895399695112630889768900886129011650923747969264176523865654262790138192039623739400257596371434013220241345696446295548538877824138379786743713220379778607703168229227830861530439218304414298591325085421583890394072451923824328195965757565682595317296097609547909705802392752077323005721169874383593407756322418176353040048722605284564214609007199453535257267286289523218452198944397081783059014730990894199159326575796148862963475464010814806664879988198122959131883243580260243884276288763230553100275096950330421085968800128054125430654221016662704522289138514702112455333479106628613931716843812656687883329754559577662785762940629016872077838083996490096502494549593491398516733729295739408789735119248768872518537229509714507813968258877640527529289900851569432730208229838889122153871944884064092369285674398451872240569275805449425903031389750656123070174214929114145766971099194578663525968784089619377170292260507035733111082902765504080339436908464572904475576062439696212898508990859369221108386016749630833079248563832598061513668881270407165675905400491414345545960111161047262782653765607264958457380490205364320737344845475504485806314354871901360386271453528156202004615478568553233469581171986929273399752782561784091956898842074059689924995983788363182812925507804986746562975961955913055251699066056690856005616517762881539833387510898175128695933076702133926356710074581485320561006121597478481769583954062832240615114949261731554100862349610973268385111463547851908323899042018128892912403105681661835050078700496657572392645987405528028795583860624051652106652475529453609723118169376112049332274576395531174576403336105767908080153005849618727025990917499064311741172683430839901611493651143464425168508059506584153750058965213421312020501638845504877878471447559284421053622856564170573468685836842950828058940634582876898067012828778875096077779502046628769335498661882734847743424074934100459917831417503616196761863095281136469806309561843277114125666776229268807598994685618192809793262898477232132577922561326389067466541121169395832169069587679678654701799138324947959863445492018254013115671836349696741366041121665286920780248129380810113460644559012926110936262594602893508090935371760043115738596781830859344890537295981499903409004304996931058650399027802052929699888301720824824175463391622169979589059525880828617791145296230075089642970341192372626518161666202471276809763219897061598633352676885781144589968705113970391332333352765009755974307863343089392717487627711991327596378731231424708662295987870580197002320544484063051258933541925468296588967535757879813950015096510137491549334383473786354236101833112727863729892770269926679208925723112308985058172019022683838374254388771775129207173349692487896047703174631200541018340478833359561650943419554107090474553349006089561803587986656425740138934703956313793702529771857855108178576714906410805286805583740330693559546768473578565375741784018638070621579002504497919235168821733232872422461399358884063030921776738140927019520209814392815115438853574329726191822179379140768708675840910693702122166684706732410784137722162473542109854908273277937428448735665228564022086461273750729814314873362751243657784052925838084394013418468356774320489156896579491606563299299560848919480641598266331491732471037999341377323609396272614189413130382559076975901062171085408497587306816473258438095545674978778352979421502650922448628186556765400980043114435898363366785123413299948893246356918749921536586408520235113562273018662671759452220421067326678973155408827191105199306223985661428740774783129680034697778114028975177779833224702048745150958086246601553174245350829282144577097604402291002373481981017039027814585204010940499030715517842381727469303489506183697580406545322569003939215948294184167877213139790246518404652955973850260121860683793107391830828480277038118252548668238026253021067016594934314426843147824356329438042396295730583558489794391688207341505697030807477660867330189003576321369571832077090983966135180213423697328976943563643309802616671770973483004836152811657309387077332992493518880684325783525414596140224960867931063626255350040880579237750206617576047379850555570606239165506562185780281541912470750022121805012826327739182892263782321498251605778108789438101163872955682862995614263226793181003536045217260289430474775802045739276556297779423325513651512122496584668743427538114501861955182976929018839785247353449729849165687376178370033151747340725674586014495530518015618527691261932877781507350487205503988202284358016087360559293005106101114953084314328328769419210779310912557650695890843690618504897592417861391030137274874133117636269924880043906541865475813791475932570580247313914573054319615483189950873031841608571761049060477648144069432990581561119355558060824517422347404236623700788243125082501186052516858261772540184058017367518222507493121002784054743683184477213857174591414412279826591751610777152752832312915787921869581064460004684082995755443165412447417345313939287199426853583364279655680243538433918585713784920262777962169340704673098786620668649962533377071004099445187800673027763058879279039040613936179013764481116334506760462603306429853014291732932975024176266211983245020413414426762532469124367197802603629172486245810471587567947569563204398119675576059661482503657131950159577615591178204550319838823562786932104161943936397516321048834129797933385635739501901272688379016112923679698356874590514426836476334940339383461394432807144515512076024227685200123907663094064057458849638203115786670398895533051702200280226775693180407538061394222165018480294876541759498079703198057774157977174922474610375581170847989897208925316186422220619996970904307783339569990935059274694013720769147277484904963041920250715313866384354308330848133375042220676227378460603625496159967331203281866348656697244131620839204189405040267822113607057959515156925535496282226144882556719919439448078126055723502452837645502069618515066652671889499584160617175656415933895262125274638239521523095556886581196540799995227985479029864969308300816384942262163256360191604975220692667935896673955758215577051345254466601424335637746958697348988780041272245306694373885622603566352315509914960307309766218773650612032042958772727084756747501384329248067330223351623638313189213035957091122825993474765518481304556910990721273319270113853632233110374805480899546337548800562891820057287605437144451231907091876093729019051103234534917717403315465344966160587874404309491853394384525839882224175284264969189414221970752477342724897452840199879680485835000820951308068809415647015175629882283642237172429460029892732631810649746524481062714195089759513465762182055227943143659636111792373744059526159103983809147312470005827422817319910440719625045284094829486188185732706601079029601512535707139523310788949128402471937109052871431426002724407324564351208115058749675733599010748486544451301988517642538092098405362827697689771259069382715374980258575455885340527574098687406764310508904135713706044648016913696319276479802481007492521474584141118650882011224969266772306399903190935267008926851382833139779421217478593368191501508181733669552225633799378166925111371805078838676229076204320326766463452894514440106709106094497458516790982641264908256450822251857131452398910993246124928746954762149442761143277140404113586559447775699391935184376441993051132377805511572931283269119817444779193921448173293613302882579449825502720407583162524507786494563414650290160156230182756069535638732208630634383912515165588537652604436889183415566899878192005236463669044310658580039299788361089898627682105238870379495094773659684147226508874307254807775036898578671556935150820983656401119380921904076088746649399573776766427791404918166179028190639689936888975392150066406482136198868411831794615853101321924153230586135969923610812806630606778488517951123450815935144231432140569301837985104428557157818941641055493941681729214005607513096120798524567508713221975248817500635451072723574689908960375372498007808644758550048954529319605786900920362576109502347094271960345112520266601528559750133803623946228488698184596130356104187931899017129594775641971693573742554635654432303290557463696294832243835848069228304716157031757574817183632742162244046451689419139198045792860205952847458216056351682469002512965683557603073662043684334374834147895575763005355342683919831179863608757245753278364522719419670641259775305889295361756216204848772773052136951015741722371189005477743348813947251314935021155620462540695587308256431736939146302975263366194101597091204208081084026180314222356690147943512995515534987956489684576169980892212747209823286387120015371687463954036350427909664983344412211883802936625613625345620464337201743978895784026631090964986388053389830281016637961100940842758198859835696722783428853275575767220513677583950240418548745934308921448339689717225967147385113203759337417775816192483830866806044491202389108314612449431278899796669900265329645680257982216743116569530107526693962001791560279547737119788446472591620180881223307061780502268256995496283131990504292171508343760620025816280543490587357999226460617614603417902166532278619987906758908520835853831564575238534096578350190292937076898851103695129148086167508253901647352428624367135302416699621750092092918955377533714063023515809510097786468022113037349047517218691770504658587526290023712264438363007102164289384920929050268916686889390651978390230324358298754612004087414488058255317692296699734769455329863541556752690481758041961706635794248589473175014489284755142918598440973451042498043547970875483434080344502400423031514790814912971367621248084259967357232485033200947346833143672291775976531951048383602454455387216264702498415997120933350109456320313659230171501723120758504021684296123286284974785577898106755643015527937128649725353781672247903939536338974130977183653822500652325922503625207961500930860818638105821691086423282610438175843984776865323725881316736250906249824830702873126840604250576254049038385693476193936656034195159605405596055822478362507415092353266874174642790058444167508320295920268107913137782234639809198991628618000719882463257644777066771418765827329279282548888316729546647948648915344870483582455580663579003391138890613862345079769208474267828419949181570978945987172224947233283172314552062460834109622587227326246305180992807974494614944937396385456513533548004809344635297174014257039812868102152298086108774871172403801140648949304755377722050664561447922348335318450720208333370436370236630579740665571866110026094855758782746896214174897127772350781456266046879592264609200080932545953072904382693731421751220193969657535283731422456939730360993798803970994388111885648236239663800170800352339457768142213325544789456716328678975681118529402296422834862363578022707575383050029970483673400246882341373124635735933461739327461887031095668667050216096779408104247653362217676701168239485563354934767220612326401836918427436729629850412370341788980264239225598068510615280909531365019314781264453594377800524549223252848330214697372203093011936249871126457533110332482545720956302644316520216091549329979525996541148498347519546048509600318971234615400955098455679110245212372291039847610401449683819273543278630999230152534126394081044616251395721514028264316900601842593511602613369776978487502123962848962766187953290293383530314817382763161055422977791109051586849629668187354032229244838973999818638365237831040302615368035383868454365661521246395788919024331685961910352830025484377199755720346389460306995789980457028769595893005686569141824477872357825178550543761968806017123543037121582821260633732560267063262539112480190127993408846669560403085358440269143744544787425089359650502557459271531934032212290840533874928989419210589237595651360692694908830707072678698298164249233226768650391665349575237545307838597542391792794736163832324754499774973119896202813945135974094129986298237831806423022180945615768112938506058915785531812894741758141224461250097729148051000222602764113888745148478083037295593768218554892042820232547847367638101505686917072530745046908793192970410768843858822831662001471778509405621331613869361967390198758383538322178761959793806976163283231232901712431458530922451427170589328218219875377353815908950104641829949234656167113907689517878439214198244084908702175160260391705082655765123737791355700150025017612740726762036953088969835939588026006707325992717626878797921387410589381946268434113081512299230848946135327954301305284813928917401147576531297033582326316623037721251354938131224329306195178996178642626228407983648863080361422495087544243389550540724923313296873354543637890036081604196666848595906364559252261662894506981101823500591305393365785921389459593226693554743660907063818368867891261172140365466599484790450275805736929219355105372129814074437801300970481699325272484087227331368415635304223445204826222464222525433209075935026707416962533761286669077087425854526241437804000437905702684230240482363731217878171597271407594138580802210927421226302236909530786281596173255399253622206552533956897286691875704349967934716903334043170044549553532628559703758990759975349916517096531448696613672847199627896260895357969299474091984478884474492917640941019213796177697640246158840358606996794033383845550335471485037170634268524430412940965427202400459059285587505145716748071425597124430370848022311748839531179566455860563275872482617292646653463490376984168587199097169078347596046146251889360587609267735726344456658870941245277121633772811907254280863304038188951519630481743141190892416879545698759628181304988033825837486314373245616551360571004367431979983526212408696988018642119037937625378862870290744274725689210914130721748006910636386163907639457398374862870962543143875625961294930510987527739503641210328007810525249819121683001737349728881578367340565115100285441731995573168006277869116836070712393742681990592572939459910079318344315348708321498928724527693424016812742355766326449228289795048161538858094048205145358521444159234924817987906375407222920575268098667687020650462084750123081338032831499118288713406464797495884230984815193689074742316724644732117866905731191599464942943479070621662619609324705594691133003372040631596967536237074867467702649673371850498438229603340335521454438989414599687487214021190640499356927498623709035428344047220709246923863111105377053881747792452740635368430074561126974771269769102429594813106365053356485643858082217261999530952670458123702939144069260908652017304047633205533073259697464566755570663286956059882816329023468935105918576123444213229889462539205057666295333560037799323826950407793879675214027835198315157215063641784402517520027878933960809187690955448920153769101882213844359968329234510250809460018412261495642754277350872455726962643983494448704685697272907494845493826613269640021804454867663670608213681166874612787887995233450939048354806899279361378820333039279369262286929164559790978934844224315250579315920912584525861746870444250949801772380128060367164110586800733570781100868889870640143713966278119243974430799620097621720878663098341050594768392649929467399813928956106171098520774485475509299456014072218753542077118337620987005789809429382454454408687471455526431155034678260461225017027271082268435468296584979073334279981768591691416911424924640569884172142798579340570132961327666441109384978058413699780254654522257701867941501980374258322857856569369807018536706459022784811568917574087039569885157551479347651496709970115139607849933721609891695690222080841305585441867294324347438380681652170660218330416823457942244530554152544368873443766792972572078802584041023864894617719878579143749559486075274629855191163411392990731752530880239090915962946021537976488454859579906073454385067405639306336699567477066251916744694186262133267203180803026480518315381648377517586372611345823254102246754031136531466093958837232256825962645195330349831790631995946861762124831430810939020837702978798576593251734493724826514764574678586834956383920614918077075331821622829368787588076302508052475542280209104359753375599160818456928574294754566718942192895143627072261380088211137703753297151626831747000803955684624447239595337186019843513719349506841608886392341245818900444389303362779980218980473865426694061169471533414122606986270174103463950876418999616281460494406349165585506269373636602303215574189190127683831867524052993555641403194232528157046867155900670316755003941004273284134484670807659671293599621167170144792485729094107622849291388166049477957421280187078909212338960642618747356873914689469942186816177259628533222960618516168964713905765359106557852146397222526633039870808353116506999793122871481739400840160609382347204094463999319394153729275154920428339580718217214908916727899455448626075888261030288028501899766216164288120424334362092737406606887843805668570493232485439779828269168673164786651546346231727230467188205516497781370710242884988903812116738596618566198486260287794098916674823933952313490193742731751363409671497936910469061397966526999994169783934057236667663002655990340088756311614585420381089331206209641746628948542598766526051538376360228653970082453515548794925891208813782034045470219907113461225250378671486117487399801110809812127125114332664698547772939437742064239325769392791728792752003650853107766918707647276705008461176243861095158705177432871219588794262830477384389889783524497288979119407007248182436766660546640688523461963615138759225919595322323681453395480412413537333219005226460655843168638030638689564657973163443164680289393646827366432813132961224781210949515373421170842908336031324625692176278489588320718014175381978100693874268991451459261011013232928070185628586427062248581657640745964387098275832969680232655743322605992439830351991551786787477041330826190648624874860449783943225511828802976320489957626183621770499416550527858208091055813892472030683803990466647523189481015232581687480568077054607248123117839018443604153433416241450940534070864444979369724824125191157825385380517702874559360250610653281491490477100059388241330760160313952516558906706406797310714283029052608292232766893855145000012113135850191991144184451805934866192187291588678173239072781904779647923064436184957009449555708914938470909172858329513750349569655248882474540092842227349741792514090373854685011990058399121413892712136783355196469891708190705141588241861570312149024594404157654443572290286669416931766904799325741330783491031138315482836972852116230112016863397688535476921765782127029399056856947523082497339265105848889735317145182114177547874571154767855528705846182027102516552712326569966351721605140280446437890677484433748894274368388251294566772328747439764493513753675592075495792588205932446068346237027448302983207903127323281060993772052707687907447495711569595820083506544156679187053043714802474431218739482352746776034329196641038150996569277377807317404557284730346587630964537689377642577100390547981659414982697695606695439883775332690649957885693981473219314623776375158581845183790504515447657766270196519613455894518495046712920757636770889624416453111822689518602915089724912192439159858065875364667132215535939111060559567855784857376878982199273889301351617317525307567296229864547111461896652452679709343813942286221013940084212411169849965021490054306058639638593006706374973450187344104150708009860968233473981125497415485127431872340123831653504219192900281069784816155278431237742622670591935673246060988066208633533648532736326014653081037416801529892884296048098522960198299490442346452291653480410303695094877267796098074733233618816899323468570249195927800797200189892212639783443815182407254144310695978713553738090160472574281042860440654999739634992567362622594216009203137864304126464251503083383852826208044430284054890702408447519958700058585810653021803806219046787941221851265351750692297452447824373351338421720498758663718970863149734222583766816289225309847796853948576292546998273117594102036960851773550876434406165172403941824668013200014338393749046698972286229395278790997097773412008979426615269945904564174928100275996065314117564130843814513124251168855789556373186580936808563230752045286469530498331496481672362383577569436163801277336033865432084208130951533664794252240091903679823504355647067229867785411403657347279593401048844283051804710477553599401711594169121835281641342391085248238909021814661016825610049513602714939348994921739876603225573591579441421217538312476339679512964362467866447773141015103781354699190698556805305502419712684752279843482875993054478807659776740440658886492088083364555124767409829392080784664054980854225616074502445849767146339126623836703922418942885977267375223605586332661623669691212265286971898746947047745143851895557619704312367155469474847426309343368763214236547796516455922705384118390929232486598402612341916421558835065669613941115900540580350315615763450858205240979023518181988838971184118524171197599695347019399505879988009987308617593947507900503207130085913341405444865255493676141950005843455471926903002061278000667878302892448595038336705720126493283471216447234948676835876702851432484792845806485463929554172796961624861708669468451116808366822720190575298335490357138290663026915784938438532060506836013301690712776092711637515081527311166877613747351204552620843831123076908566205660203459834609656669234026648543221330552833511357877025438787718785126568311531316462518602777653683245468812084012151096051397256815217726511758906861582944957327635458162090744542087559594847432322510743621835413274505529596049238178088425401005158427139740736488094666664961023352269587377604919054398615415854554902941536921749165926172507405148836377021290379326085305218366037423385280744304804470718772320461011138963237071218027025671103999590882877529932861895377922434780726012236401628375787103786632712889092590170211244981504361753227158375803239727005189357946169077944416533742523338576799702297257974194296115326132133237454948321643358915081166652228731762221232165207489450770480089740229947927289187965006973137317759256408316040586921035482052070717761102632105534812084052454990726112759918925847907383447150221396255924390617777275765783948667035204527867742600072229569303950136819821478634736690853784361345323643086577070044060746511347495084966333793698984363002992586185295463608500833432276349594043154335701526039748680530429687657753271946214723696787250218072832633941931729049773796094920786565681092759157913290502427577647295844604146237043456769499860776118663720016114448398615141726180562548333685222526306629573499644526998906115167218841407947268889981988248148913504170933383475806936560637146753876779129384338813702612230385534094786944662406188554999895286413141677198511524545573723139188158867827903226116403235734146295727680666853650915080893018759338671679226268395007998379051872289906128003378288046486620034095380613589572895175367366501291389884992110989168103823126498447891556079699516418801703869760399435563031551584497777937970922104966198133813579582406797186744022855095976860962184776358768635955244180402755176618365763671691301688161037540116538832904018875810933594598317379833659987018447132154150831417217491374539616101810219856572205854058206734235934454013760723547217213825678069657053040469384796357264428913636346979095769384754180304737459079159123068664774336537203342079895651204777498720137184877217843563696504127446756609956954092250660594298439115558793759259440069914195074924366901750666345761263592583859922459369472266684662999220493327475430236659080682254495790411276296181423727426809483024801380399068002371565292718201903944379569204572380705310254140336969048995369538685781132130971527740290281299868825845335754153682744994154737183221701081623179220320280451058471913935846629013218528853918404836150852431300219616669959002125179329305662113382175298312237076411201057126484139792811601509272730135788778355141764833922616730813972434198481638747880231146592933953532843759039826317075034295314601097323818238090875632447588593751456869183339574128885187453187540708607233985049892189831840237836466080268280463250780834691504545363449072569386972654806632974260902513888105638424428945954887567042908572354874973746540443724468933493116936926957612423363705323731516052035457626896253946176940410886207458256692524546358870768356911837466010316415562460956811861029239174509308973882162295870787473410005245269900075307866888341809354255277129460580085801298563022877638000931379518217322803337857641790308481881479854848024986648215490832622025674409652034451803151589307843034096261307547529518755901552745934291541630795961053979246015441367966864068089324155831230604786672622040743747453549092466544757955741899390491189558121339606122148565220242585148072214868486027852267903535542338257333973651963730350226599655219110632331388004457869708235447568900798599938363182100693570457184617114646320064315230849762909604295518097777702701794952436030134355337117161439817649065948393913437716891541970094715341287335904691500084599354788925045855954271977783037633140642854499158870396030421478700377482262869768270142294447069056500761676705004257418367970222002850554461519504467608930284881467809827953684439937302933740246034695392737240220738794867321912284979117020815261050024840930118686180858393488203269033087059438079468111561667471107382477242763222650875905923139235878906784922810348337022937725432438364485866822243774823837872904672602624064926739172880522730349466809486792711177683584905974912805961624208261842210886921350663378727146415047693341068813302944351784440340599102191621585098903802608105245457580397201762898933174816807892110019670620968548854596754377475090390570689554160100136137620153204026026236938231521485439732038490013202795485470759534946695451942073163917642665650933400275308912770499620197515840455896262631024798678879880489320429534496218934803513628850304611694533768841258696825367721889906414404778300884239348840626212648722639086482694274312303145269784008955379910770277751157166543103849131150075362392504536014306938866200020578632101138692304856013553205338783325857748835865806786417546639194285261426354266840524154896032376890205835847177380564308454128245742380972292654469754744265362788913537471547375820872841030504265766985685474132698996065938747933760059674330007804413554050953661525908786662312618570529025501972588852236346486496799390892285389418459555544705758749366324224281715572144639794802333000893069202628015344456800997751569622277962612769915793645899384353202197765203448567384680740067144056642688386046477366905333560518290277141843880469469235783935313447906657141770874621140004348827487689953952255048514663332509417653561406150957745066711405840046709762551003392841580849229771500699496806833758443384740437187734318253744791547212691179343361433093211755392667700525192101154766996896748233911128208004667633164376841400916257655254974139207447293645658584552906415096803709901982810874231160975264834201150108849820304066225128793974503724670744232666772078476820264889428713746892511621906843022733441067169826813790733679310703783290159299183845890320906030420873466086148030877060742147416711131371634488717010047725374087265130486086241539639514673496720707125071307508749840471141372370370264055451630896549297698776466277380004390407031617918132052578704761700059864480755956558474371483541161178815543681055466583505129171734136064080644891642249321935416528501238638968027023400662954389524078733691018602225795323173575417687005263784808010420415908108944832612793232569372626930057692371433946662309766937222795588740949808921538513966999635588443541048228558368218117013071675171364689365771283837052938254638652340520054712780331205348213953049516661891649980131257605361027920801423905010289180407729631082627630011898634987058614370267026882161544771227329329432609402232976691296672814226724094346933193930192037062845800842911539234143900462646262599045489894048842479589288855936056617897616520815099295910717626166348731282123388038253361435114414425619726917148650879643650630700109668621482815092346797836809534833527368722797299025860796779441035434342859407545690727555414331029366743460343196136521248866795014710724528213074463797239760202991307410495826912307109176301879361037062337082469781800116688924604417792363524797091773014722536069633965203335644115788688927602312461335655731346785335653262107728455708909444473466949949384178930658731495670981660260795592739823693449562891236633695724933907576572815382172920830397472329715329334257269977808456210652219570047510355953445085260239096658153496944099948270121577395077648241444486858541675247286005999908682762400820155171609895174979524533857529176114742109821299516124871726714412840554240614436299648359712169111828945408495432836379001464580594589318710634209943320717699326175390133206154241605945957919881976633312396086590150793919993405325842049735507634697965400433130567813618007340627178170573066763044431102617407273243726347975545725506039728353455719554090410952716101235143650435312841096154378403817951779475171415198079191685672707551104957741151575719805908367231853258667928576929134558601863567087623031635290113235472096436791976880022764845099846967210291416468018043306631486362398665723346066207253806366479520204302938780917159729959241736206835069390327865148085573277395209626615624613514899260839402899987243629763687081504662091398073289201765107837481915079087853638293219726984176992029975952126994546077663943941010958204929285948751311871751988135114905421168155428708593042547260834838257498155882802185884625586850259443418303638726486257527531740577141706275328278076398216671548337138870178567568147602976023467902746316033187588546862708676834209049758372810164597784601787170957886299926298751586079424057576580512770750983124583646049494036327899959184606033808120892386499365074584677422766755182601537162142921236591929011024148999323360610182136343037486794410830648659569962731594146179012837877703196051188910558821011271641853794827832403682901307049430266078576996069152996726373218163077751588819747477861403107035860085300394916428458983795436879470418181372457020077224147592299201366594105607266646798410440868492325527785880760575316286716850286726764703539170221009010874005163839949413291910738958321902962557754397038150865193256324179471690580880362725859646484288754431259352068489109808990413193992642791224427484630185808881097580643544506435998043666637615510325401601255424056155982421661726890466711554006051898019975662800182566112843135282348023891579069313704810559915027385268246633098778068272172432888338672989899672613479534523802906257480899798749006073707333576574589421890357702428272264665635342992997157408965901490418561186930017913156470672521364073758532128552607614068479152089410739521988477098759053031367417174150184202938260747877986176855185467609190161894354118646364633458878397154067092351102773773902192222234316250517577015432033772069086311514353405421138795078760183172089284153074770697883880604364395864094153127161254355618458523595989428029868653664816625179699385939375150484013734920620629163744211515823649491049354476663809016589675342396791445849717222824927753633084055470772719265352862059367049968005269325938557553149467939629768707701960326392135532246240390626800972407808241236478728524294591881342407034078025093882196458592336703891991424555666271940691830637561244821011767205301521629105305080060147032121733421879564534790887739394695304526553815344961849914418501763416727316566524663748007604842208255182148027634581234549703444497983748687127491780430964561443951309466251228722714538599053734335090750953044713278753745567512084248168815365712595985219138514440965732089726437980162083561672253121539394946898406728726095316164486092610473063243914181414453736683074622589453440946572762720680479148296364519222282619451050129370806267567609013508109181815815105510435298487576741870276483840317151160476857992064262584777949786273565000761336434619561393249875261128459619178467022629370496825736819646430128525104242424643726250999066346506597165886580007674277960746559217210835654457646897122390604115043876724846521815891931009033167616730720715124217188975332960510400802707329060036677912184013700239415211847120084285521095145920355310971422991338061620548979724306293431240426315272961443128694709264959175980643625638735078899030987000160898649117168654234948902130373793757066584167985603112896669840833008021232148374627062878641809710167001154065712764262035417053439695971037977886812224697508876062395887062922067063210881583124945181748808955887073690130711932387153483012831695182859336193355462855369340494156030773752309183708467294679021985888268960294228716165551671789961462493223315872945069504781406738696911641639250284174129035824247129570723278048190048580601011138248253222913625595649270999678249510585007574462969644145455268047786191145359861464900820993730440040604618808579970107482067068525039413177457819581683509885351155747827133794630726505002151936916711483400654258579560908192410105049000890770039678046728664738598893076337063587747940636946548654513007289833920399395305638763437533994397688846155919139525829043081183253130387537901367244113960911475320448035242140930917843089333641677961585025042732505707038521142112375723539740412902369760452073110498483958886723712346200757468409410286397839347086244269713566004311145810758053865157279261186923651429435679074380811840971290478372351473110783657739515095119234774658519271587730502695285969673336053420767559131614324197862370975930493599495767828176715502153178925049507539040698485484769034545720946100578042158663169998125593599264642824046071737535798736790003277439218825175961354827408827896849917629891638505473484463201191073723330150516454294936248645648927502332382411564614903100025303923518640880510319876120968282554807728477032464234114601819012237253171352620853333098198670373091373297917524843266153921060124725741543232594292505596999493689780451919580905363654908160215268260271627275655008103006546457976878693766856126875063199483117069493630138533856076070958223499472680855812875093675322612585651648787164905585396959394622327788818277996533198937678146024362282307225515480275978058268944917352700772562880107890061232904980132677202505921239934584379074548763551341887033527327028528602310628441487436812346563573676057917155892547038321921564526386361730698479816217023725262590189097543814965131275106300523162102204410953446371885636056856531415117600625421554901466073436380219656302446588355529538314460921890815748723014766439851497378484658089027100845817798516111454012711295554078314439663056249884869845436105120306426409046473666661061958673671964961568061524785121143260245533184028434333112645276233619507797792168834201896731528905012105270154849023934718168296411345558097555009919100397538426106486347771648195962321642661067684525858808055269662288525204059941887300121091830179807491025548771810413004517256511833565604368271442472725921507546601725330444874642895559142776428017317419516406062451743933558943577661994598259274601909870657055535837073573181140697341112815703644452094826868500718228400602006429791362838822001149937895923094356033406933264209372474340976757801321688893786239425492728311933225130703442427148635063719944835756618962290856559251735386773686661186593066236546753966824462453697757008336563054593983264502836212139063602963857549452096183934658938937301470821466476877223264849179050225563811021812589986625500052967629413502778405165279979986895752595337833243505739586760553937731431179603643874827373714392294064623030137563738013548808249603919065875079621744516746162246489220244690119609943891082559528558534787060396198448515042945050336797326209605832805899331532159108931053649327336714891661919996750175611797501857762725281974639044135352893091655761571306607829104489967736582615124646542392638610230324947221539473615725120775276196700760890611284765609165134393069515264128506373399750601978873046199120980031718458503427957408913519657787617238877379272981974027424898173732907713425948697202664160611797132886096731430201231640570567830399238833159065592029742020747002589423015158969367083879418615795935711748686248649382617697356146468444693401461470741526930283194933878464041710945175616511465426466688922860278819827722758544124040672473830413950784989589619830077276287586968030295168306179824992278419480153756894315692507085560193350911949558229655100127096623311451610585295306095278093533739436044761090573411723627814499403457514266521129226606175677552383408829895842189515709838707034429579286994081265987986180124888145277480146552613412060494969784730745743826850130382643052076098840021237992917256593552817253404714890617821518127975660828146347500552891792872032245988552679816185420037770557355429917996971374290939003251724189822411312128276090829622374676539105754470609094189185320182514501781427709032414974343237001132725991058721744953034647311083578926798231207538983303229646866480648317110298424406689850469142778254809904779134031687489042427361863681553318701927069312978378448348988385440588732105286514329912845518228777028153411783706350256045843810758338127919926022473810663380784056249873461384093698429388180472647653760590315145529455864344171777667208264552296130367484117110578931676410580974096482062513182920035618577744285762646345113637487348138609559149895676193628828959919311188578170204824282233098114292311124599005490893835631863664395768598082406497253291048178372462164369263138330206443892380595084050285150109181366276458519253705197011325936209476711984546533205197867700895890178357295457594615986893820458547354847374754056314534629374973463423550341498821739468089296271079888968442217346263212904196533096748163116916182147034241936598508500549221048275180643172670039787930049577329595563168259650586202185644382929763026610201312818649244799736749033710208946428937513850440023532042085265844283489506092833524308381683188890519100913753129401985206078232016543111953455092134286678974014733987647034942778311326471723371887842981198303542652926976492265728125800910855115344476682822004124936364645101648936319758769492734349362467030912001094224096507373036090631623337240240488651143139887258120676595812162015070329809435141651719775983830692813960754162320582940235359839779742646483898215485034468346400720922614186584064431357206560642866007353519080889206796397004668677870956042908945439007112126375165937423474116080369701527535146307875549255836348674171923815148226228473927493479293161263419325344152802194474359128021271371043502934057695570551424458568095123672538886525084341274116345470344706595267141392913123374595179202855197260676435843838151855595579251224539020859818403735710504310160322454042659061039099610299787410228819120628985983761992156301049556823331519985165409731110652155275808532312271492630104481567761205626626917947121043642671174496417964656462700866779257905700511540341140926367929039817006672365928947212628653174728179837992800093341302120860466718021357163167510670340568496625342255015737315095102525831726802139548815556163983271768530604788236605170237524126339454777711244739491338679587776692730880799675268829218076527301038383132203381195817839687164460970169966191029926062623071829284391382145623793121511597366331244118495269083851262368167543391412284269721791582598964123003121290007201167519859294587016438634017174324423778998025100196756064355679502577816913705428631089651524272824147071148130108126773407596120067526796010255463917790080795262870558156450846665958525569382365578559124619744746211981972952518836643212041460994720253415817779325370950016240017775198230240867863153982763935470802126957997775218721304789086230902939757178780916386809096335562984636992638495244620385041281228149831528670968399234095645769619675919784619293392972081179155524993695923032886291161853431234768168701064805379142153543212296028601961030263777212198775640331501747804860977380560572200610618149181544864812324220952441838150685447857078825361276162483618197806945338775652446872362842994335669436764711974815039023737844989742309346713800270595819309586643058292347950187535609077130814262034449198373240396635903452532457409223200897179200341889317810197554317491453947673675164329805454595950753416972115237511441069169975563520264830968920223015121582875083517143911630458719472559248459579744154553455383009940310403647174526380208203981523264918962770857162318666482768420779463059813028486509486699567044124501094841298634175384314241166111118722260124793804079175312604606948120672614263175605822761595785778026015765009344411329122942404315403624033946195505441808434058867837667441564928430768312655144234231896735117915202261539807385064198589691515146457511692330970681379082967884945290090355338705287400187854838275430420731882327435040230673354816608350506668962323320801577852057763495737391928999332627615256021326077219312825621880053453062469114118124688990119550642123737009602339658582100752362812106802342373900188270766820555043735925410652459277955061985748363074200259288524957086068259071095893814075583544797831933415653687011707695886437695837469541866058892482434792552322982508602305020013383921458013509722384026089408076628833577878521487614127324020125608727057882123389044262858805774046496576643354686117940081843581367421643660109287357280557310273760873280189555741833293772027496632216558267445455989654113673244854052026433784489325869942081861065408058845631798341364526408637840821297225885727241691671432544608770897322062486978805819346308774836242350533577243993846287575409374381135407814472666987126622453732270787315562795427144674950143560324286453525948541176981631040902961506099723726009745747383269832338654202043453778854090511013326738183460829048712709300276495107763183806546786592696928188019787295906510077331506384682100993394724028788818509368879855133628546787477457823793231586986984825644053347265983139100853765261044558275784232911219319235409917790046145944674311338677677698175927323048114152277322860376086262377034643647184114311618828169672536122251625304354736912394920856083088969257535034363232519042432494294854194300140571616263814540882597098365108419243123607227960622003076435807768385278982509284186073946435193080043656397083066776164150679107119716242224180064968343486396420767283352456549476541970687071494933603218874052142669418817851988902233147243285207160722596737069349968434748175014134583383724257787515962256525925763847469144489056006327356693161722331332061784265486817813572854711425612035819504010010680760912436274281208470767369296348860667770621902836724918459401291163078390120491994157893935957972134092949413708269116190746631749947767918465479011148448176473480211270541985459261985046623959186195275689858416199557185165812783575614239566037624007799430664474103150646843353630289671815684117610799290146806585136972298200730248964914240951910073526031456851327272937761402438357071809085781865212670488662616319950334140195247367236806441361398530514078712541906070324571005966245501925115570367449136419806526826527120775984541466019662594907532006207165202963859349185920252938004508115272603178613947967311100518103131533748704462020965992144398384113928511991153424468464644771128708800019271240060189554195479511129837733181419510831852373388523802422926489095889852019466792762341829818715930584642435532482971794255588016461723353104083082985816590296834697732521669574070790554376147480554403918507423244081350770555112255252120598141911488475573599890960208997404438634567248143847309366157266436305325667445347433174735344973135860691223036651310137201799623947893419005406025250885401346098885519110851145420087303410346027858509773237109613833442445769788920008041673576001409832874993510432436923582894259477062877286156011536520860003221598457578746702335244210260365088842756967504269163099037466620287462645906777621106533140242951246330562501873986627133304268158479557113323512883366312254729167994828532739222039790302557872201046917614404384916495450610887981890875615819324079942515925616513584280404400144277842528896241961555788986068237224297139566978569576110072251263891164471143576398759621570980077427007369027451883655082799368743803958636722288951465488596449898396231492982370213528881989287334166881282043101899981900703464679896836440617592168944209093489729836488484852860726419652496469880363850177446425902608120259003312767325336983586875616669591757086946839068859566302608582459713622291577510390863117689740680565978025770855397994705825802733785429294336911479651936173367145075269149573936053976754661486989266884917306525765697228858983309874432013949477095652363037615600726808504416970923535764976383302953071589646466862170792939085578315939195014061478636936967569163017388785283223813290379503860648337355942107351306036558730682873360442293947812361756250973411293928788792303790634897171239516952384901887172364384343010783991328585466120989652763928203399810185513590943781172730777920548114662541252091531531799591010632980498878031903975539414431894693019560391478117515389322840518304883278552333932131523435479277120020229702495665124963442327065298874223362709927517537795693720008293248516621606729131482530950222071506994244355117884623861277561634502202524084454812620260499850024485615671585760965224951754544290723178044652478583508732167086178978506795253249161086935445330907345941369458573297021140710359528475597107546516035582709611565461108311403262509446622758864477004903195397190346187272152050675758304641345409852183705969068676080656747598772955514074159280855394460020419404874257359308625452671776838910098995263355385431808181216168914023107587928139066580438611114331979039140324692469014190903672607209574823269285541370804864094761289279349138491270210812843813936812033429536973920744893027488088349804479882561575615798673826773321004107820029070194723013737662481227943824379515575187934727581156565365140438090106107811858860681260647840813793087453805739376092181485264038459456686135894879343675829603855878812613396133836232971640106029229670008838050525722655338220526266008630791655622353263735466757683336569264978828740976117843307175112405341997100462912243484719483179593913437487681339655747562462515668525532163771441438424834003560261900698902738032008705677795781008784203456074541586447485319443193810873194301584518503147393533777080455784773164729846364950887036806022119736209253146226313374184851145090050254620787022039072298030335471737039740525582989132642732412041078239964126250167179406340947544066954423433037182497356735086685189452490720808393725887712297742408496235201499344491711346029068501483954331401839721344676605403017578799725768878901139141260810054711575144299026652681347729624950560635609744870561719894616276906565149100974890822546213710963714874531475798257673806162697691994141365947383386272813579991331441794766839612978211059614914685911079685407680074103670400281599199400832166408143480740025606668200438269603120850525168802656152128360938144159683498141688331515293670926745261914511428751975590234491879374778038922443350568941213583580590957796276549862069070710958961457333252898067170025636440525186924321285350957891993350121694947913660442074696174354347330428280026176523483226234285729439078467390718209478424994263447741096526963341394751722837870096869753305892536372938688618747063291047773210528479441815332734387274832985232513761010573774840611192621257894137629844318420240829434044440737292429861444554345501085457474965527620505702692051593740892922015739035348626826249996559027073277933772764729408271242945524627771003305775194467684666972706333382830512691475158404601203383255709817883570666877413130324365223150091407908484355755531462156120014992315774286496544109052801141090003214215875645224943998214791400794823260325335262016815835801495983307175036654685613831263143695307723153721035828141069927410761333324281794737345685304770650486717305879462795391804323246474568786490097350104315162633708828887924450230261225784360367825917351806542689080884635753597094513618692196390029721596694359063227598820565733984806142734928476755582969466858871758348238859554915149655221464899400675000074559673923284615920766799171968622416329315085053690661885550145467207867545176242892037079014281077197863597818086448464008455564221797155586474299943911239890235183042529481241697244337951314982457834721482084191711102112755678611073305618984617449945968420635289844289917921934341542779240552749745520778032941059962167752373579317244216436974948332106574133609467106543267233152500670415653226301527579369209801335688774302011551261827219044797433010957221181360146187212783968475608719470053289996604059725067257875864735304023919983783284165702095874340869413348049804831331371281136388016664357497908719823342386377000732794462784420460690981274565862007775267440298115197049354225900905669048099763335624490632498742970802499412366628066007348444234445642688319928857014212394772424919789121018436856018216663756683036271207839002584267053491205120621733263984136463003966642039500944009678533957151328149534003618729235885376931838660095825890063329853442273069146849307535677523953971501825401665336761329796119730434211178371093659365744217829185661228087648747451908582845791598066849046135769874555683453132538430466598398943581521380672317382705847142768834811360781550954848273047020900305483997834403425212672320587402666488442978089565576582417560357493157693144956297654909090828536514596114849032718131724802653580174112282951234870903388439437897394516560572769045417576584217485296607791392959859569124343972425634369159930375868194990417710916795748803603970089967373921637110167250564110558146810862787586089054103149453377330908731263122626140564823774526599106828661146883289567718136494933852119680964823661656335116566495772367255620531491953810781209756319913507316513336388617512807535743680150250941168619804150606300395114601732522928532938592564851572644010732321777158987618976344022181943363003586144980944256509412343076183230450679777955954289693094792215541598969428764887502427745893543804342819435156462381677704114432607993620654511232433839447882152523389908075223066628910186982148399304484923545461717801564131494805773211252212360365032487561755042150409409635130212226043546440816783706360082089878318205605454107794101821081345931636435867779771101454801686558850424622496846208746967724674674403626609359668134921235147919774343545065177019688476947906528920409927650640417430875320745634489349242010339393768772879982464741105604573246694374956184993055317995612290114485336655309178854169572129558323645658133314675398042841548742792830171553069319772565592096924232602929130978496351513566214239982370984344067627342034794285461339745249863725970732526548877589914235453146545856889378884161485750638158718137128638785575289058105479468017781141700840093025150588608688067332842893991490453218835117189622805024577301738035226305838445856972131083199629942582616120193602144806343700756094211085167862661981464110593365831386345936489072019701542188357163566472525603351492320204170711141742629748980234920317420918603928917159031015036519214204390275351453489524476998307372228226356350919828309773495066073994023355267271562707346534161193894675023763794270618277965593623034048983495969417959892512644926474276962956989412179117907234704935837543813939639409643800585680810359974377093958908851557355395341856164515245070149846550385979056764933709719335789713332370833789565820048549956779967944307713093633673885646960828407512629310803809638687526083880623741306239456026917794062585480163993511374694628075731379893818981311783583176003334440507742335148251176061085135350514427324873080555163766364715986513022315332377521298107118917596897653432078549090567921986828188933226273574577899459392583828543954871774337157840896810231923696595024476844619622837680051863637696543695564043721316496468007674534521694619746318952393046023575447200706305601640926927647249718442412419436171479078713670010888588136884960382811591182656602990780672581836406422557463730326366542331277032556528455583464300491730301567307052142583184903011026701597715550367300098551400376049538096443861803871786044444705443148456741432297781060317195124383550913079867900478522873946099805749373193985488206605181392583806263516099574364265190864213823222538270124067056726139912182960063406258598525499751196460069940132053859171236136835622453638409841272239355944829517260650998977196575798467369699982277056582459845476752625347798131051618282287365269827070437944524250308711214056447870886445694857357192848586218649758689001146443930446860725605829588850617732899955081172574348123914187141464342870718932728965906715799131027197541859251722682615681187723213605084615322566008439740918453381124698517858410196837165935327112554138815661576978498702441030991823139803114848946325479880336540756019837399000785083462328550377381519385982626616107145466495593963998746366407126793258034471975461907475143020947901718514932409792485661076461984945976669031563769722242364972997983823444723957163464950224773140006410391954695664119581965891058795587033192063407980929573546525169329853087080090006147998418123237552596816909502776271415001334309538962088418941290875902978954846310422437601379190176655003793014708372903658168382093982381043050071508313115538525141335956374630263405949083800519533361415417146113070291587909109046888040884940160079985134482965574635844440217761607888289845727192518092846037872743078654711492295747853074868528501589815744581865176219969146026756660276831967442133054371763068162295128146028519687566698940213885317813696606611482802874136038616244852920787058821725456422835611294560800446483557883132121380623161528369865308807888165968132336705895223562272698397898510066296842916666276694955111045602981242508500943140953489049352744796415113960361509887373827733122710856634644658872910391470839315431891472266233230853129104207942957975908723815485976162527570411972643041392459602859144672303816394722781323899454908228017225812178174538615578446170777713712095493327194537420522199118897092155941460718511960813334427560402112561116158188323023785813949172544972185659651665517574958811263081976547341148087597542581629875295847417512294073608054610790836021671611604793444765639217500320768457824414078646322827262636802569213829984494641888290010722511233503398375053715105530183624409543196966985938595164369843172689294721236296035099917953164521817386848474541873698798751627748428279332587507020080561830729365866920683483561100146615070486399532054540195470812693783907142150277020349841338715553556610470434031603626514972892626118611798293036566233346181515620517595340521281062530352915476327863005716436083990013427489098111886138284679966508077690570397716267079992357091519628850320899587702168923508298151782834154053157932862246652178945802947973531051036886356295043492176090610567128484978762670537131325184808725659835576393900889849215113365764332228939665356243669415643393815600506834141912402130619197875837556967481521690909255802048330292339341072542599720441684444658808338162715613684230645606507969771096887306947665846588370119722723025929054588525653749931601749990175597849895519038358187209729056328758348687758523449917437965873894238361919482074041452259352010831972274656038302866480813829625915511124515109183260475449930392452680204058136533596515185877306878062087144454756306476499996057167553067039864653122263760694264590098191261562935429513073241573763648994769492383690577333680872189305706963274301253114622696399505504829163267754491877241500813979149845646286675300397256979513071345805734021793185088932896111221123227520384048297370729987209677006954824127715585099439514954757935588367612992462680729152533031585990198516378135922266225260158988615607701141342335004908466274723674827270555270316441124404299851151906578779072199846289124584439835924540853543044884247062019203292463662587265299808747635306413362465130591249389945915513347231044217183978881763786349247106062596473320871821375387870144021935160603882937552215989490629482650721751002988696702123729603661828871343611042643786512758762874629866461743379901000029499195419356997565511504464455280301139205842653594568358737284307752235754177302424588009686689424516085119251847284394356680021527003190703113985990367141299111321061004437948224657468393018704802162748417864747548952657601986362073365945199931828912416468988724406939296694325793739866589185409715569317225357495123777592837296797993313890789189899261095075631180001930944267041599885091159894724000625301399571782009231269917622212701095084188214925737807607552707700472864493889791852479640619319204917692302883317100746371393740223802804775514361426892208365214942692055024174185413555561428055539168523472566303389519882138851445548502270563905923246672105687756985667339144642611965349805500583364982293796747397752757559206022212270958681192931318269302239088458301036391037360117929912055446986343861883297987978186410728922172334582577143121070481817956565200981163806153871504144746075763037840264018800352651072001625184517366054657570205470184957581801952328312220531144850211597573320617135040301031975768817982642150900298685796808749365315773483536045582430249733482715880910644694796798177248521066648721167126679639970233149228681231549058884140656416640734697641765263405111746343732063966932475508511996857544928475633795819112906994417116872474332342292388001285664539111977472912684611284775745314354767848288952483550723893127360819991625207893098184355741661559433368952790068709424194910562683361465089796482085764864502428154295092549962824967463864072593048767947427296155189406779011957263507883566556679955641226630617745776467335899458148280009200566017844299617542805661087445831308927851130335912805127337299541893105324394749382798646255976783880241483682371859360535800705570703724065833379419066677588019585464404660188546546595249033870108637116000817468613501037759573914481701978808596792581326985036393093489265917537133418662750170536218429771929613798919623795384751434488886805284981887616408180216686317852132339875930808153007088669742701704584912748143177958788980362286767556662478371018855597127513816958609724405749648928007812737713849090506106887158176918312990512571330337754584925265558912023351335018501635769042796434573192148201187798787661943179542324956443015055026772199262924136624722909185506896836275465180769772421337130085126372898730950572626864916409478211544130216493860191967034454372842076746062718565452312999250962571368622083212075551492682991303749709710080563147434785539359135561143784259822446966670062502200168204011886023946628891556532002490687127810286436286925421579199269944421673528969582044629536448804514716814622483018153606431133683929282807744568728342005193477615308251014461417898747887198880133341859249080662708606810977739595697433839099954883390030322023676603374574960872751443094741057718063679239071639453002835080299927567980796933610805476537880026463554104724736872474742567469710195210116907383483766365981675121829996887391429286049804697944270770114155749826160193638878038348243439321733934980519825712191684759154169956595485121648094492297193001892331987490651769839167978104335968464588884170924938241395753163308789921879055164233299078870336964002237934154360632407061403592264181556459701321104950390276071902961239725629979168574129617903884956028671815112172551558780781405809738202479725302571666611778121998179650893388067710937028980981803541137967786073540108415752649876543968194267695433674151397464987797423437028281634833486376241165566321440070660681884875933052690644414393491415370587741839319761461224272229518606561269596012359905742873174788912735296389564549512065262753563426345887124555036772801425278938336964951481379530707356361230171553661191091637430244857112030344493001793120653950201716536738011537954154729051174715202663528448089661477276127478294786624193449532945749634502644105756905552313250308911038615820692840834233140469684761206503103281574927245038678867226248029908489760028784133903674725977544720889923226147679139967696467823637668071455114582885158635575817137881510639046364328348409571148855802166445303299553236469206798332875652888073194037646035304765666785273891932795929585149899865838081310310029262973701579096413809608025965722205153041108815114218479419863178486418223523834696497216198726367641542487821657925812511306380323954464545655599275346148403958545945308872345566195234907157626773082932081127997933572359511668153747915472287956063008505438793075440660820339333668690365308713936680780273096017627012511179248824361373173364404599562933303113569035686052859317731458344260881350116228635953679829227630219910590911646190738309590606208788764560978503749635960195280280346299154481208067152026758722823349722241224374446496218903368887979811638049782674240538506680979361211516067835541108849125652352794984143170530981672838770354016989250599599739404088322084093032089248332133789529526495893271431364756080480833460892631355727443766785531650711149789118681970572793987352636616911624350075567013441061569271723346890105893851323892170871129622230435124472420787280700780306099059496260819151148925253988272078367207236953861132830822658599892313990694919370419997936168483503937798742462233173881889412306541165950648869105888544501933779086420142043197785303336048021184623207056856109226891381506363299995509607937329285496687128878698381240152944719659450366453535365549216731455948173842733467851665574744523142037399815395040646476874421070546232450255886930886766699274262308867793830586663212888016503921463228036956696179800970258531531699498843772084706472119452822881372060426081536042208151403282218303755328982682685474923497347313780873138021273806605401227835821649371361245878664204651962500639837403754483208777985679335606707437989343509127715649131855099013438711253646655690867968451070811208208267893014391572563879710079533479777910938417049897557349475406944024422964693725755926754095991238598806381741174616709518252668822026481604257654270723515456510710996287407950253760625072708338969983471873108726197780680384045369760254423274922845076357500799358909645326061153939202462807522628206631557178495967002824712456935281825958758169939480165517705615629642168191390051903708687697738804322340718723952861942552925232000734078462410553032307655183970642725227271002898016430810686051996554768624509272882914820971193667097874116690446359544724574326812430078745734211683258756011760251917618773929614384792237264741963106863673467343529986136546044871915378177120201992574646813888098167699378470981122768032224752498587147768507950393834246620007388494561955993304368015740357518273083384622785108489515279960240773278587895607496832433187381399665982860679478237739658123958702828721389190257716006382611557693445670349170566310389345378248726409005883923536002588156144945553700971896266903726837512304489673322339247118349606773499462954772119714179715713618611576303195426177719972833239933421068512506973148471807813154502523982091330736093543730866014808955562995772987069461177640485278653368477008511218351955024771612150155977673518388157065487757262298117353563428400278771696454312640985689160874960123227671632327157258101584796002238176153589041905676664456005609825152236572429130947771201569383033544241180620046814247872822451615403359223790627656269940805369016792991480048988864946796478706693906326268834355979428642656865605614991538909653802743433356783202517565356089992551093795634614276579584322083069259511865371599343006352113500171372784566947808984974650111845579916999965335478376408942058419385518211250224324430715845090082949653054982694389419838239722666806133830109127378875919517753707240087773514590621480579606705932604087994469629458930578452560362502106246135826203293472455206853522947253301714426622606962661458701925123884657192015177944983401209469060739613495674528311888346160624034213680558760298168970335382085246563913856722173274444877078007459933884578998971568512381696913859744547752029217990856923359748897915127871452999828996163205759906332983560832930646433548504380194891573631843813466995159718704005756907877412614501208451562762412240819013131387820359386638057034416340359432174581550524425040645773987742758830350381939440288166837868565224254552575848946020316769157181033372478195003451038894554484864039013277523675227028371625465831546797690759151550370203016810955741740558293348681839953583678423760216071418177759342429386533625184695881049629578832780493395363268088376864044204653960544858174195078994638480731853963544672384448128594640025768445295871305224867223506369361880936968291299908054654562677045943308132863421998032252475231418777784396683947405743443365009756813871233809890420494335951374451921037118650864265657088953314850216743806190154690673679505763251425386964226912940262948889524519242987694664920993183175640692040466293140641658246274412707112787941551760775891860617646796495959186911000029961947559116153689712039007216909891950529828702354735459795650690404195958948517086030909612063484969721869656508653453064749977288695757345193039049919052359478254272182776330897564742260298658191073852113778756338914027702781948216680040647463344621881140794764236192284108742187653913937648201460606634757142047299555959994647641498043493921176773515337143903183342597631719861739597818160906842698837432375903614847273094145417171643290850316446137287204114836520437629380341654177731237304955851544906176973432016657259713304130142337308965891388982666397191047897889851456655121991858287736610963977668985452057011008448008024688496051549367590853184905564403553750831030557354226664113653474043655104390571352526455537082182772465194792328885394615504230642375683898142220774086296804929687134888196911886187811400253255508693364344641482912698274261016361856229556384371882579384192321602776533901388688546756067898687399477694186061209940704576664955167337551553753594860547521548904195516868345185433673685046878387333910965415253179211276113508889171669352005036305782015309015735439232283621883685264022817449505220495677825989326152307489831111746364391877332961089684049282334154106709809744945554455850617282263262994488815567385917916658727251916656946695972463591986330620390443931162454353706468180693555810069572063809476517449617508465088419626301525557048714212618433273305308353144417013415020847849109703709748696617219089494809419994000960527171911327054588189310800106625605017145328557668454966310352138782515059320881890004777953925469508860806557811247032607340099028331946781010324260707296087632571671294575478227979326578329125453280327017931683218682988867194638139515601976217701988137867544384954341585798880097190772598674563762286147573258657346652826812668222702289865261628226849313514394339358438531103978836236981271015874032829363048134399062984582606948773587323443586600920127271254342091758485970589806028629768454744781327954354697840253116038100370276857295220565852337667263548381762695545786158518603457467842908148488082326051818221125953671139065857881788005260203317905624954252676252263470644976909625488818625534969170131437464457097024708159782243238567543130397537576575868040128818361311076370441366424140914191627773523929424745411020341487973113898434588034504969371278816010811021912240003593859598751219381767767637087277265782949865493053373837121285141418521094869994018480931153231611415051749442831057474303304231510882456728522456984913879613258011865432375745925232028372663255902735812412561484968708009582279186079284312582085882439448961555766281330295426193149939937909001944721344098559689189195761427495906650645418327141295260928528731008235261691324116600204995509748571414772210431568565438570353745926715361078171942414073020634691648178146884322635370007555698320855290450626629154889753536811739808139319756228580049552153007064163168527957515584036106947884338796426297593728901938853823370101007784484818890814427846378956143306324804383662145265987415517858949532311125340877732208455910308173091829298954689434796015036514774744637052342875034547842094792822688639666532408188320197428828572710483401262208316458303399323205738488469896962873906075801183582482510941334565044526968777969720895809715819414394142307283816281357448375008649678724831777396884016682538369652694211306984420543429041658882163497455416120716883736206307784082690818169250540831512575732928646411792366646756913029807982363890508143654369236138602935148241200248656234311770309834733741563548451253163776916119284944185860944340637369690241570023341044151503322723840738295039499856465094777442854308990665405702813284274583114303640880657605418339883246792125511468216198972623735791080833735327290947940217958936784646767899484069659065362165830663361300525255724436624671338691230308913060811344918394274613553076888116625863488684447259142219234728738312966369499172256742151223583666777400815879285243497479877867131633909576779127241938111927599182938911554519058003185546099759622190364551946485100301142115500632418362074639588722889955604804663957288157769968289298252974293448957856426479773080263246233366317287541469579249916189871045284882366491066539010515358879171261561930974961121124302632991023267659842959484492633698081865427311550879331267439095959087584420550121424217392127878497623004311628316173173273600215139869920053842375100207868905709456734864721270501081858602051630679842868597464066688252513223904500137797728894417109254792854191848080473542057848897335947221598647478370377237674892500113558191146530330395114228310945286296392070363521024483069610258348241102894518301344243483699627356827201392215039930645236068086239270030210269792895885635951543480812744913685844804392134370725201440666975803986186135050033235324568679188765061453038205530350723231575822432645036011776141689079202984913235117929325663987155994092858193192827758659014766787231470386797482869725241416868337998326018985360416475607595391922099653849833627045427742820508817564044953010219248655613075810325043755385591615546888576467704533829454450718643214647560926614427664319723517881916255986346819125660373228906716076244267285404546177558333156615862912536543673445718690358304061951296429858227172778061835616178902353840543207811402451025415868105907827876006192233594702617431397382474221638032233565220237419718522498585291034184815772283295032395716424315969241491107108489190959383280574389558773656691810648461489273707655588942673170591347490805190720421699110634254851029935569892358495421569815711346632449438881247579215972213369909149783754406704271531139234892352980055711140482201727152770759640683848739226364879851217045637640530759181426629669784104251923698230747284155876796934621461425200693480082233887066531814444765761303382356925819844259006106248948981515720459199329973132890405984362485127785385300369017666748938346032334115123441020576560154639537509055432246609170937528823291635899824215045428496240325738505664505857772680892874272461979120523910294277190981861382233458754975666905167799881684049934877829612474037517670325893455678894022339800193321390016782672984255683936285657056832188603656798973285811704963934598930110416261906681761765197212417939878270727577411352321717820041708013109684077747371641092539211314373307378527373210875983495836506789468006851196652992842745845549578868015463848883709968779845594186432674396468482854638177387816755520175451562376683568862086307972379758321109628479353391081689716507244320308749283314251803014971563330037876042813763753601150034654318831403979101207063808554470720389366287922896501279142917804605629650079007938464444904966308371063527924500139039382998897311067798701771981701020329284584413184892911513201544369454011765099049067516788552203595990391381862768317327152021708651208023183702904992304836754595028185148854254729204333846821783535009010459314264177199882540185208580489970887404224618506740191686661974786422256561860229835168022675960017794170439002857502605596005182511422050973279037279268925043299881826190590819109172614102859325193577976741098096963370937739853868726175074665745105912743037093447538784579063792583175371126403963726646818658792660253222500699883843962065788521171341251015734082595496209039588327803190516281681246231765328496974664924587741950215864720067610725440718744145648718043915646649717645010272996605947210251926716326976380937199727328766936360252541686393810044443905663374038643611853342436046547972595552450204297058643509498370736705591601863563898777671780837581567045296008508224204727422758072641282567860341546975061063121646798247337356897111442593609382920690230828726941840980008724541182371377242097074705184517638436676277484529024978784315032484244311939944323813137359484117464137057331960797066431981191646656955728366407016372411190016661538524738092910084542325568259988374385101577113672377974063328867207492642345684447633178251118070305622838829459109941654146088339570458470443334119097313154558289974908150433634088221625881596121458672420041362462484309906523178423870192579770184890788383401154144597877766624404858611968182361373760845299741627708349836862198086608325023274142144862560912936072531127752999823854591333269358116230736249249629100814239061739799920407367539719456603637670834254106270406597070326720317423522039973715726230669172990889129749739315199920482876313410755473944674262655241707787315070137059552845803029976119406634109105269028325134017494677835749520447752675470470565821273498135453169295303315860362848539903126708317445951132369347384851091217113806436558225152027092963819451251696549347491745146362176483000748723420034563127197725695389836840808477611358893621651496188963335019446196219628364833984497986198097532903607316305567516052442194868325098614930430580834938269509044274693110055010869702580347403445760849281023984546384449036487280640383385563757193636704816257787328740747440592587352849293355939143617465970741448706261899412541139908571523585441692756289573590532826028714580823629471439554665170886161099483556253637436817353395837939852995475573971692972812567742104286868366305710291050081845860050289489643228906910385803584302171956204380326758793152330291599704478454767485477733337290125747095972382170060882127207511192475099063478203533391635817158023171959041655044707345129806665734288940666619843866263917627897121871937085867821901625980680223842762374023255537736684111472572612335220504901715704695710502746521991934593738559512183797230807052132529854714450639994942905646074853939240410498086074048727883442027992893339985799766124230096145281551118408587599975939568876883114602749753669360462273900618061459950321003560736429114197576879267313744054509160008721634002023484714168313671625228541464987430720038289982168037474124711073889385532066776815647531068043157163505330695328926329586799557296104989947571584709588234399461391025661700402215866003659764374783068675090960463378235197412204274036904928243578476656038143866096812800152823651632980994918973484548453968472045185509300450043807169417335445608865230088406502619704200319112404038170800737763147695246372940472063328048693417200721338195945301233521105215131869619108521974985001197181156445497937349950346340088496261815685221268542047955689085301019068302770430910773168359549934454318935520792346887690661243565701645710669341771609058219252319784955626703944678651717060896235953244392129591187418834435879432320235899863522883306269834336081319057543237332192224648641166973215303849886585916595134577689596628556590305132037340836618545059178578318789531934565184199514650928578248862614510834195583628292592173825882650879130996012330578997866451509404433547098172837626047212614933206897488137260746481678563403846475342596638507536919783443019436630246335934936734211591056770222470039725437013051777538496091337878881041402014843923295896528932870875179544498858000923471609814605038785696236073162777844110160119612019487516684332288779672900860246984990697607846555596100150565891345895441919231523740144248042370802717704981021753714663582094892731456306494136367522767511247594265295196566473456936619198162558787633635711789670797610331907788559962672884464035601777975597667793860625751082580316456070136072478196958421796326283332477231611976771770599066470029209406674009132833987383781320556553430450941699621240936421724571084198980217030567289257320064214046918397719916562597473411919219147051575230081685480991067781825685602699369789998171569170727394524057769526988896503755420504737824904007208359500919522737004084671566282964668933067463488458677864046848579336586347929709944290839390067796765573702245960002083705298498446996692508960061515322104503714697760304958521736970246094177646406776008614571502376472469360338436295796403086999061875875967974005946174053837993424455035257575365226928909729912734400624610362730020849157884150434311120094119258955558879324695678484274319852635454029792594940893472052856418022410530473671926685619551584708756333049943557484774384027156728133813918208019418962243354200956374963388791122128599701631776089408145922833300958322031489555207909215750467166688322173196546060393625102689901954890711184678507087704989780995892024616445521640245012175263374159084013514316865667414858771234679538626850560359684976582864786129897648658172549463091546181264547193448783904077478988169643048954618746130604054116528519176889781541345310824341314745150781943646519247411619224355563074060242642509433337474208884107562409124075152432954381132119878745693385944526896821651044331406030034010102231987499288781862862407776306498956249339488292915154028260244494840426251623029786526482154270388400720131415517594162463281520149228079386943848949614250888580558135586940006561511966644387039397859501506462946954145203350453514965108365899136632173829320601148376793958906694898629539069193106407658106179745325199906595640447845104367365412397871620064516000490203720708447271681443128966538058626053649716359430658906859002305875706532940403693537049207445384493770121034214717118425466072458043556524589076499699349846365508561955984252843234446294092674550356648716290731964172972736927947790519078380745249066022561951547879238995074940763640922987947645783868875092975420929621449943116200949386968270379554373417576188978579877979361834365110637059984661805157747989704563143439544755698619865468982833756438059312640749609587607632972805734021197180438039519347379958451484678523077648944664943544780743497812551297872772385421654566615248898402199573501256369039497511233270394988865355277175971686455238267842801604674424816350576704891741331176260339570052396834557836853932951713693836892731440051671317378612878857311575572586286665445076967980213909395709708609604209483890103789533034339643532684961974408584643609696737325670782736353458073882066129103681686824397056461751755145396929937468877619785422825022513711984894847345692551673802924078994677255650522404904983597268116388203060446665346297993114897269135151795440154156120771384926114792456685765077893568273459312434556464122736637381514976448567742388967167291027293713378460294188547472815846106620134240202463980422303960617226398130235961763150679713149295918470938263757875094476624064740166123689074370129346925880203235138797414959126846850409081925583429325959229783080282133976169755554039293934783806768727957505840528207043431354597118112898128429582105579040968990269150127204995599127921414560995654824047414620826987667638437606052798676347251462518900165207927323468937945266207282806465907202085677934545749003369844947546566610252129609849421257666197525273453074289426118703458126246363697001874967417969424582747721669508236037502503054932968813047439859567536367196765380625616916858151797822693617806748964837579332113552840927860481578602540258850101218553763160338354861888172962239762059461686376920721206144177016242493585657614837375885418708458312875345241595299663391783927258555225859728436508046996348519274543822475508150657415298432195600019830001499817352726223693231098256577994864709218983513664181110200739868476360018336962898491660243543782135464548326656511521365653053952733119792359567914286057658043196892094509876492853563715020689277755883125413583759151728395054482274029981700758199254872704571701837573665328103237725166407000033555531538876019241815073709516795501211152690831679097075935316448665068077608879888668077390579062998369168718409931870877292920816742377540337764711112762354885784328437363435233229351943037149866193960314302384346158004565075574888095497488200663628667134700697363529480465195269604038005123312679844114430845365079745789073893631303134254973964413768978974609173545983682886809014526345175494865084094136362578679844408861510554811643765364261506826708439824277562032609977609325526015395303836020468077815660604586312735067857176388389902800290683299892653989314949212298386038497310883941919964580030549487286011183800289217214884441470981251379889442650470499312506912539830437621628662080271488727747171364697637668693194720423180046355584962908176339880726306170366602554012364255168118371550959847178007207202538925689802721603098798348155018237846723884737124249336457475307236514754205093581150423028647969498907490466930294360862907538814510455278272377242722951397725670664726891156001669833499877253761861581319001312844068392022222842761416301115544397202804847410267059133768068631653401706354141941846336941137065658925455293494777044005564713075148907625010433273575566764330321114488168626437483108364714167570653179595369872684006496619811736287055903810110580848587678524467385251502365596286272797530676990107209294591799682469960989617508551370137974771227624531373095648405370068283263762248637532631839713717422151220991544300145704563313239206680891629099115361320350883493340687467976250996459554975407386227970103100051595312424877230632821112823460753285834346259953022814482662387019242316715806836567625397669521431553826100449496246833580682766647864127300465890931242008889738420038434250394519896169642385044369394004958369497773100183430799371285114211999449379553272667827644343418673537018156908531970741721478980017874389225741619349261897994332252374186623138525503904335219634263179793687923377636726069307975838460676198070931089987851548934231184386938617882944270509271056787153923826354347927228988391019837053626301709790601548787447230318984485643318679295072993607539800824267979585373705280104377434475495728387750954946662608444205192161568501725661726310227214592871765001126075798615142706532486583825186681925362257611789417115332076514115486146374822586769651513202275849605416049967529785961876798940925769884460781678330413818729374744777328415050232522094330409806925181873896691242635831444103230054785987287857415107024147607222611592297528133771576829746654485968873711810587990386703632238047346797520428163345613977001337280507091134740773248422251827404770962518054364242382007658461034889572883950896115878615379883778994257357132468199647654358063646202245158256611747751910870860866788448816734149356518598463491936956271589565652288965713307729930691306872361753235038966609069222536464264822082319275394378351426970802384308560411790515964058256580313745123316893362960872872886674412539868311388229110976034281792263319680612224750130680139261137303873185667827058524018585895864822174102078594681509386447234841519913304238158488532432420518197850153216278141357765724931705178540290804206982128635681171952591576569325938424182071564262143474961019723347698127772251840235384664805135481697756277539818655889181928817343077454533066169885761213145351984260464840250255510414145555032443729435240772092841530103645244560801841259467330688029153455842206080702698371110278364711751448964996293325184407485919110296513984269176752512013557068987854978704081721290081464557840052610826344466398064708790378104632620206197764932842544840250517478000749729992699266043657415127700735741366649389346812937970848643998732688997841346557951336223088378514175884568253141885615540069547990049469636940754453826618983550303722064436084967596407614326017005363925856641357824069059625320735930641301592122446292418962576092686823636025163925697072449988235879410436091584095961027219790358995507819075251311953640696751821476580479276215711927243389238456912562735077689649318095110796946037723047532398735529974396353811541043270124223205204589666258023125821722665712873339615894222133131513994481708562680520195407408793855583714865331528395777909743917240606685795048349270872678264071736493609238202795153578585706225957562752397385134715675189676734030184660850324810395328833818804739485341724015385466269545868494860501140160583587996958411360862900078902599468124061990185600255837179280846614778824191808464323105739716861529485300355481876148833341373016036270846474396393351719910429886028325547465304003676633252253061507721738228627440088512044458120130155887047397265072232301474403993702118455073392337250539061644029048027433106677074778546615607941536772063547233885137867892521962984774259913138555143347258236740266534508075845053913741440949738702525803989820009370538547220735433338579115823328876982996618957178309249964442413092212569789944064232806138357670116185580541892730295550343667810714313836325387412384655911069534811210899884137649680146600279656888714342404215460518386107769843473888471436626039086448526073651538763907419234935979733930818350052413759167025582205119293267136424671697603114953568497806349468635624328003074358048747662441200092214192388474297703372353330762293298399008523389625697764434107452912839014390589939969616262267253700454667231585657217811707520512516878187808392196643906068353390942820870114277449286853907467021978035052926928249702413535831780194745107982797396240434370627772426078257509965326173716194228136171710183289971930474384886236786417577162394793753881390930355350299492339115422122972213441042540296462272895837282989030548660035866321399073328137979333619796909832700496033904025814467061363974399596092835813939236467819854792198392498043234021198615773619899737895036858140442496691410387954594822156698113255212310284288188410903834367374529410735426374982156962884182289966552528388510404614123032585488473353884311568314120807609179433327919836906076625793263554831941484258532931582090108519445642596035036154851023962081258383245036186025786610520800630650979415973162984947830689639541458634213224795069794488056496412401798825311574589703343930546812618796463043633605356907063178066870658431890038611163067854951258122421439830067855673846804229134551360901558910466417123545615152411717233488386310083564142143498158538217745285475467544043307815062723148371051455690591485909020508543758683443609936147216656210234478679661838519446451725748392938493604365258013978720730168716278202720983632224549322768257529278513356190137644581655753063257362969689926773511672488684887338634660196926739446228074973710666914774273741296224140972230344041200164345430456564481833226341998938092834893871774775874346483536967826829790198678961773460694609549196712606254898673743618076877931689991197037094889256812335648040904399532929714310894060228610258824867466879087947727211298002199196567799094577880064609956596019847302947925500515970310085419834049348918854642566661172487598052857404809689534930725363307943083622236445470735364288016149149518360595283297371557589450996210781256981457022369182337684974490333819510387124974849040488148394753226221157723482960404745208039713309899832538000808862737357983343890335051458130175781199366373613181320015232870317478379619003792502304506118602010890922067927895905289735283302925733350238768767979700708823032219012385982857494218212845813631551463176479628135518468491782615400200039272868002561957101887397403293603088491518121082252213711868316642060619540384520316384998399006404831844323219809368041474439223204768426099384417197272226029108398436758732666414417935889565532511091815151726960630585383438589012033722016034701872712531230359567927669634534837523753921412309822916933370641005154710733926192160694214980091455033647657090186572244955734756094297759421960814065028189548732652700067615563451482302885981696665477978767949876334476135538366642137413543006010437643925925251376766067494176515806216763003941076041849406685333947132390605374578057357881891680360973804728781427179282657019750748739136643983043248967473959661266246224847216054997323520457105368457505907051623536602283785341127160423822115199518283340598990878126482779601552548948682290182445099206337134412418161820210185598516971364605129217298702672812172851993683400974394324148818896282561945102305861113393002374620416529323771594288237423118511358562497570462949513835161535965165690950081902666644870274344363033565774518504529813220552164154904666402759882340941880038021023772547479987681551592881327329756017468901685172691208551455039853564090338754168703475463023661430151752286612977070436006544776985647085235661491939291075130416850987167700497217987763688400342260601172208939334102899612000960158323348409417767582979699070981879023579089752414998500057113399165736034126925681822064158729813884477673617839129633066358308493842273434957344503888293945858014857191140746357665395968961070634771121384413998734912353926955030018909995630736412232977891579705639527286463879808158544775728600716655324543842506087365151914200296914472313952481945681766414965159443750798538378294357150245992339370125488243836704850791798097251092634170399053365382310484537716837963158891366948839598279172778119822544610349836737400959292905508822204422443448574414245279103440625980910739400000257201921340999597615135958193219345729372436662663874083952978559120283040484136186993153346166503882015295995417940530513796661764289914583084519391585003872951253865069017330545857817582926720988266986132486365619621026770527026087849144980617348129805423752104897628376291029574681315628089279209893317170918710710519687643771511627692694814279404733022659185654272404683943489542150220792033320660670998186652604286505295386745207425345629571228113604170388905618030170107433203932815381777263262397674279823048825259411874994232699072558988056216807829064932545792902900563712540033224059359341835271844188623298032031294113647069486694445155267293941174957885516886763740165392698764651187621875993841612299054496011904548699212422169104809556888639784785665844700862227671281126206443644056602654640875799300063894534423360468851683826534663012183565936258326329379389908706538374236322501644153226670199155524302709808163144306066533954884412024921041009927439523416435603586263332768534956370013124418959984541237316148015286490090189537832617795310711596390771121708538938425797556660958189369538616741376466358501382078722486951327974157017341450683915808833828699023321950470649392071912915492746776647647795585284620147715214316760469800561377068634542569718775704226349072235456646068782402858729785955069970938724475676269502952872628074919095816486652594154660132017983632349312069817552482676944462204181548674254780337479399318814412880997602552945677259299391308866325363827130168597590292431821782695909818259078928608448388727742892596355895851580489931507826716928839692675701587955405153404906444855211142789803442440547305567215228788522918213337675539923983999277145661918741225354469859985930583782852527469473809135307585641017434006203999170170966766055421785620760780607211277415061137648202320628392811902871350399957465131624784747315651126236699292631770746549129578584072835530943145358214822499172505796253558680248751556244790921454292307534194691176973760694935982703233543897585659387850250609820684440458414614091154704135195088581635402996931069260247964268187637001593657612218915492802575283952595696813669497855230028457688742454268917871196039609623930677042093450206498729069099065903004735877183409443381647752046820800673502074235227238378312478242009300214698843936152218690890029363310009959034828323662707360462829173226929248233800356178406580642060329177479043828325784446912814158855825126315927160468078123959676851675039130856376910127163528645292147949905656935235761303930127037373998863480528920883939457107873726122482797559479724364599389479571453598729580273739324658662607379640077051311589008875731544590571943348409064256081328385151232244930018978029789986030947951044657570976175680604712879472461380576489065069236719669298536991623989791942095494485840154545906657294044291907744500195890854639179330396967316376929382015983869719922892872077133408480962088357256318095192200743696388792964487351428439564974265763295851387146245549362257863030795680349834711589569457586107105094368161072929321815950127930167340670436183195754620449293173083985641787908248630002232806437398219041881273380868920903012115605894912136068358297086369562387727276010341795712128884130516252606229369311849056888337981383830323343837719137044359211977806589585927412927324306044494025770678049738222097465050339736446687351097038114289668268578380597456156802618844373677301942617362056738009736931896948520004875173987063182761284599759283619011534174466608690928094816324011516135305678589947123314250040265796796266391269337733962428298886594925754977848855849285232840473271815810282741813881456835118972504009441891405836062287258249956950417248751459224989307517334534173212065955055117505244423622629478519335655994495577530795939573673393689525043890625356316616568352971971414453077223046340096304668725372321253784823295933889541406602267702102442526888738445059534605981860690247396802297170197035656120282319347464156747310776856088858911317237867322368858346204867365492366085747009845768638288973776846302830670393846701968983195918835934821421484030468775851906258202190192305628473681120446281829713836216856138884386118023677447314376744550243202419518304232689542768089574588204428727891075064244109102021075240942085249161379418868945824850447062140107277852278163459819707600930355061700267496802432444366310785069287368141136112457451027567278654088827012183507340181586562970180099474975881730184169295269382135812436630907943244397403976070808526820943046337864951096597037619321141278483680607605778439709778624857308890062504045883235851414901230314498675038463331470743571207447123139266336674981088647332686125274518271849681320762937857653555418569228882476062614393722365842736911108905433991013053511980967318567352284048587545613597592735389502446912889089562611197603343632250980678233520678127312593605648773554318484783073409210625464160422590271116345090870778661502762852588655659325346398327796411609613441575078549175309361829432622993852305213422369536894254334596952654604847179077105512540741178064776370220247017789337023471171631506551447151530998051734850304492073770824244289960179993714756931334168750073550166723217898753622620918284685013630199681172097285547794405067385893102335838748491675655814644590948518838242344220983787786483433725433054054235883922581466815773006821125248389117438917459792149980210164968859028698608168516029061254645743137029328052326366441912049047802481188048683559258676044403554098966079641573204864515788914397438115504178206070688879764746005220696370301582165875151225619996384360256113689866477474331785180536445235046430194482343495540832012123472828687271134276591861564474353999801885900770976932676042727940135771403922882818243737041483872245336041607495945139838556870754157597782145278438214021872332739920724315349530065063192679695975125080092458176770130576954601355441652499149379756265727096996014894519083286437923358673583828462881552815993578692951521620550975541099634562350986887376234520880421304898052469741285049122931454143740816671063679967168370080671193759938620945781421117438776381812943615899221075202230210086027994969713557388122627574244403045281839619808581679602113635677133035979145292504308152888303906696300329308254070282209364633675239430109347064049874099123373260984027502274424584087222554180686147005716820673835916008162067804844328652760574629611553632766030627877253650784073293274004684973226891115699162745429341361369051087558010589645300983109791426740034445156425544116404155326290195646517414794175390740529217137055967995616953262924045373472638186663390541705228442675205815532595457237374678427110974408664953508209414449244297884863102808578683729947647772092075819908990814552100107130323272758723740311553177158857974834088431773038162633954958502435528224144627835185396369068993433525253831888019363579711315843352534221377407509529389843074436131264606429619229258465263290703561759256228373543169279246280425112473755610187475016822335006130605268292157475923250761731443191156910315896323997865493804063954978318021733815463235134895038785733920586434986966020203982117568288321048894827599557150130372479574811784694308347930489499200215157645610754377913163931290931192877270949637045530124294005770001665720876334363713548515078447378179020733411282655862365048025149811696589323283024788333874416309995107541337635650503962090940207169164863229993194561717286444832147101231612939163474869598113042354694816973824696679636421989411579571226762217142892938453847070821447405533220909290883183431428282214698508230447717566496813653746177339205237861569676895378109219846090331851337633440293987482479299036373492329144662029367443415153397305405267437626909526807219904044830344416689882384041601798918497445433905171900869285217980788836441731346305358020397276214603282136594633507354137813624682246062511566187654517077509461479125944474788073004182420996052580986962674373246341599152073218771342713927078659364773157613377755896557887269859837798334158932267586461117299947665058179721006615039985738590599982119856382016123307608016049172213521781462182716191050975051514108377685985207767150444898607695215706510599414708977956758539884762087476856937783577428287194415051115349909114848090846826724611874071143032450618390864895375155988561802480084685505972755802496880860290544591897487468067721156270111656474031504384062410688538071994513718919422243778889679165261552070226587872685860240402303474591181242646213474914439450508849845919903783650687647934309140060011579819332973227464869139466646906480974950747942956329434237705845686088439345725522103706633177978561306585497173413506902474604157928082844831388609895470989720013131253268443833108453755932314935899460546823840571187847880794837331432931120420626994872152909606270350855020493778038609241474422018716733790258880343808842452700618729578175112350475807041040076138343671339150257192958258176844349356769576553858333518259594393153723868366103072858102185247509150081110418168282659995744876949102204753292342639864909721774059126150559975383442492116343851595514356986104832306897471031411174889609680669534872406382682718258401999540935465860414243692030178802129453117073073248656537552719921005316114669018864035648358504486568660847847465096018434956865195687304006881811650601323963329804647335420626547653787969343289451887665067833012954144181110010390252456883056578836704616519127102770564374361329398478404286859850068279358799493669989828122438853609432386446702658505268337420019937526297469277557851812540801265961219531892315333841374396179548884330342504803841283415632481857835647636591219006516925759365772160317346528788764275583092865993614986002174299078748093399151398698312227351298163766779079867800579007133257552877234563328474716607285518170433397702858520662804193180576792129533678235331649572801606338768557747949437887798179361707392351015749977445209573497309618448459225818319212049984794221172991312691701709643145227130354656117474466511500024860176689012361086445264416576434496405149064017023381825811173393120889518884645220628779229783367365090521391521518880790927789724202861108312603969184117918924263475200342584829800567432664312724154999784962381207495178899944151067805466770089375342427678944330670461560865762544247969408727744989225168136205971360794364201457960033219564144541165818068230582852842771914412746382563764472171360318534086242896588296221687950345083453675029179671904504121332548613263986223952678935794869057313570483769868392041091390700848790854235493115937455803470936092719139833134023786083007961595748992844827404729645550014029808777124476858876080131468177410320900016661386426693401940677557849992816758025458470008989660889573840837158736785062945963634533042145973862511182482987448464225302209110605342425006110455225563327221221075300821689117841283966978957586336187363249428701401942210819316724458891849756402980899077021049397346077700689565260731888883602695138733622644705274539164095941186399159532373742159613731818236910014092068317640637225850305078665045424466067529987386779514321966773641977281059369556705749597107165163387486892686905154272566616112128714265916235837386616956812630922244523710444134096304273947877011330412721447216806528127089239563807358411799492007909881169374393026324452704214303618138006249031926102422046121691988585575687731529761103249639200570844999860700138914787080483412794002808241604236901974735413652811297723585391567005752592185508532676030526103432422239156098295878140564029498422136414930080483855431929088542654284257887227372145058026087871404596404293028103270997856927017573970371975530340242235222970983088790077765175961938573846593510540413477884085012184183477258406472687880404821433899374241164231455572961615652813410569325255621056562778722004564525992363269787513990438281316686538682937394262412951287163282388087666610839588516158314529098845820840246977188788988149786628230106456857989150494983679178963582548854603896256992029018016114827115789767363193501888586098895108373559660260513579893966912180761296822416153072315808852675295525555335861449215074461223972618857682424178552622463128805227811083033307732014754615120932870980206000202451509637096977862498094455881829505028805490887829391948249839365759059280434034719771908526612716474459671319447203075129335272353010308888625413311814495543036870158118723877363485285590174042541928029444305401500134652803320946143709405465523118995955447861759391031836959614701576342801235740880481875942567474840254409694474953607341627570807516999706248851633197195539008663329651092596804940181109065800835127001737786478681367327770064561945450944200013919761816611083141331090142713630003331692103653167876288727035049536438779353344433910030254303508640955297840472966538525745066573278828262269572358998290058389969291606981683001804415948981868340831243911053765467167663789723164743826085571181209878745471249442120232958062407092108230020820659464762308138846349503443589811696788512642309039450935578360757688832868476869524983319884035467617317397564650148344384279105196695631145938066152639095248521931418525825015133155244644987079591766014342354249452980600235692480298879998553109076391787584201011140353825983933174484964172721074835600380283405446810489273411210676445805975632990834800024802606056663726423007973116867530237139068665083030750168054098141718293043885685062793757942299119045733917380857184926200046009044356309748847041392878516488931340182608879601843144071041812665791500210521306776257598200373109257754761187773103058916153867519112617622498021832682767113483642643599526464603741810662945358796364773846643218468683355284669658997503133279839111678184786544477799131749393822893552081649303138972809592974325382012272054728720332279179363616482919373938607521100228891396416399239413532736587422414762288733856916735548006881111525596172272468534069343409548444009748931470029667732909784924412517022441304524653454502478399659024151458623676222966354068287069542023481786077386975705345159062603256941511856170191534218249318569199733004285260891406489632345578989476854780666619976347085232388610599995078180465965173035170760305741065892543434131165153637129401775432979964973413934855498605301935260865053062213686862355029589095169458858934750866593091019605088573262368787609490297126346413294490564826590002080359734597380688933065257729729085889601734486310296707720487185633857035230295360838098934086476869305280919772037938160895624503971840777862229605900171403064403071548153814169139367488875494046038120577487543061403426392176285348123577835748135684892046636480970930916506219469829383332157269252823705587582886777371889897891431958077360167506992834890421115014204857848412568271951260891706256104115608539346025200564666130360555939374260295578062631343939959507495834724067300426565813434340453991919031527066470890685787137614617732641560735697570263713319724465294365372290414348411075023666487687546854768679050930713118511151876447218372668527947958065619598375802606755812397452562935579791566955468915514595189029377959170761278549235467141950375647379538055673137441451865289431048449317887995706271319321915974491396033801026838635676623522167627655092443414019919144713653656780720294044925686965479523483629681013736207063498611676087408811600023364233781799849530917457052043987861066865377612321948213514032283016944204525711947784566547844522772265154892392323255261867247031638097980624878408792373699956410423046599788257290941446226814604495984206937221825748301254021724889016748491585711430742583569738958148611764013475664413202829026662463809674622217977451116380392465391213712772488084481338281492708254260722052123751432234686779731754427383639071447487694821433953873304642764545565564695642150899689645815440629237450173020883953989654744466602957993265312566718608420969493051572654096892058446726306051441672857970472768285560351941223805986844345330654593082749561200347726767032364279637408881608439204667141591943827582835042757529733780538377407730939709659475601132123842434854230739891096608329598574633576192377379130545487811077753978134064256900247074282624843188454955047950905647059206055695411669561665533163440518815940879313519580857289449916546955027012237499068904503736973148175749445742973027538191122673453352121824850943416999437622199682576918898896716432582781583192446259275851175580664432005382842010063384127239161770529533068252554567713065066155013034887660369608993138955529056338782776178188308632018944919612249022436447018003692083002769505890270678258647756647501516364166975129613012922731613667354470859852343505963096644544888289385224990496075985580379144516590237312518163628930689944570916485093758991226533819653928333032503841745355708555608410151056257446774330485070863826621047882786981078435701049995717224669682188647855937664239222320576926637194110852937376750173468291683768657299460165812160987816677143951936692163233020942071442590407002662858005968813749729563374007790753359534287946313911184924506184752659158196608824414252932957686704308096171403179427891399437007472405191523970679198514959807968034584091532917977281609837994197740841226832682670009486159236723864961771165498525296341460665219645656589833437612728965480064942695338387768235352226626376687556209954590693137494633739089842847909983352179049432985527925464952970766876022462622629179804751492212610403742292081710088931095464207517951040990111843801575879219608628871019457551839095094138129980398344968030468598841562833077820556319266565394477832969603427717799974947595382430572084448357515125099993716556703305910807104978651438102981837040231143040957057870572936621266471166973802503463523683082691165643902288421573041476453219251042582533060916432122729033902707637604455871861000125719257117852403499800549990977302550253888781185144640869254869479265613732069296352186062333932198125080585898252452384701867490661853540346998383377839224920330133378389744934517069267106701915191407845093533958987709621606741344697411719841414206535666310852686598325992471788284736940935449749973151744080120231993311551998115686950011478197720206445624800068127470180157839672477675458833078118151759418651584383995927804708812897193078391906366071386609215548881175766649549791727012523607283546207880611326063354915214670521580706754584294456291447307168776081210012637896792259292063268493434372796510026923621688119679847529149762508958132921049479317128058246974559417077279577371043202817581138531892214714311207953614630839874166386023209048340557320792197898103266208743902889847363265584658867910173505067721921890530572759108881806671086521745618797918436950451588691284941198916401567672375472179799995159807639606479579897123889867681495598866856858994756351212251678849090574601035062013913672384841549503722805369690573019375343301363482926874456182971706541948039295153172778135947987355703613793726397575966384653779644515706380596872813370269004608477013481873713436724951204873601807350330355737856149387742032936514123924957616453058963905881725257590143962417920325952891697587863797003042728734851073275558306266723699148656652715064968285764880748026925309820602593773284500582714358068200735027581005269807865745549144815730233135725621031167350805463227021070556239002787998185043256233830613778656318318509700382422201939384128721299675100351975592643261481398719765925484535446745116477400415092466919909439234042164776165357197943278679240980704009753229535109070495526974057894229198924223415872377887799880885061742165955922869345755812292696314815538829670227444636315758645733970746681280299493372326908833770940378576195426497244005101347759688769793351535139024172198196333890706480609902978057346889212185068390978656677487055271079361719923029755641185322280617811714702646488622129799733458212360926319514471121746205614935272752489679375569310247928370814094161646880305580956924869973648261285544205286148525828927166806984337091116016298808681496329868424558816412613261703704136930031191048072695072425618262436814969540617097337277697705497727986696285247990612727772901174500457224701618134613353065464318337169815100771502948492387583915259658809879928516348505743032532577854256172394619665105394217309158723862532206643129443736157835430502033968450343991920371649487854307088396777209090511688582622074882234738657536211876634190101811523482694303580862409608807036222066974207293045555452141641155848096920077462739767079349277527143194721706805991484080317253266424295639353329928385537307581535355946496197132741342034946588059608461259190341187708562654394083348551426585652199285769531524597480116898589502376813230674172244091170871688899761101468769787292994057588804984282236172005336912568371809842493618927890036094660389814153618422381950972965559533476907008840415172714591289067487758875697305880630977425680314908916951905202001207068926484502639437477244326453617414492648213144467993884626795322425054134271591627961778330815047152480544995813095283045318238788991536957777791252833044805255779106516522814273374302489224707867450588975243033124228230992174326340194683137832346997763727303332826304899953748556881633021603369673920840219961879897773824782692496117426280548926232532440855105717973487221370336825012405818758569701079369421427618542061586210382478328385160735734114537101035962454887308090625336389485205479585974624770273265586480384468946165498594581513299568010606536759623693455020122879987972713427370363678224703744530867449058414348392705903825303970636834890742792061750106101923708719431575804013056321904852181821835005588447912954414662146372305634719130823240930788835836756149434765940044915297836414110702973110568382143717233533892382584117335702818806424013550104324393565801521168763048952151436085963399961638941286022437832558418246772698695749134562059450048533538807151298181711321304186491944790745370024890863160984932263913274794989165277734849548815968882712681494104921701398714811387558128321725018839597460221729245500649262477594226518867056944788171002613772064406312037016299305580730755321118171098801965849091799135717793274280592108389040992824275100027313673696782438190568320060789539203855959303336626549034648838210314233965901078836228262244466565885588215134320503706211697272758162475735177359359724839078588410425653634720576458378643174045718585176774224869158484119026151210404791959917829923973334999872161832608008979557481037323626196515213310370835814291043931030589473560755562701340895834636022948970115288287503904905489939053796414802077562641241370293365571279549183408662332457998827071697403982552876060449174620566763262958713599472282394060186311682608930957382181689862424663311204908937193925046116887384845587942739721469387297965933795516479568033042035483982576372569837896861526422816444123358589296056863139881281144135895427739035439980907907399510961952477579306496967054281101830953297900516982942372046665943679576388046201108009278072222881398432119955273859694550123188869064138849678937019886562320632523735681634737186627345854025680972181575757953297971664644065032687754509008392880668201105365787442213443006326793487932775260229078792506277324450422218682264071558029953394935919354720981954352381372175305189192120220038926012959212246013058759777689566723212096848381722377271425909342091063187583931158986935122485368991623610018186928100193764108590260955384247440204326776488555962580151802435465289890033024688618334913206016656237072844207356917009406591674008478434469970653312560443694438265033342543420412413340034590889229848844034781075695965263566509657251561864588570553083222955592990166121155594324708817105454610566242236040225765127681948447140179561523063573672356315420940980489144171403390820527344756619435734830971024575610056332457940672246572868479276791403926548573550441639169570230840671776203181807926296674536170188187371420901485559843718593372395787738645621275826301951980681011485135440748842392804772720762552729605004538958531896047787332784892569030409891030432660950953662209063112918924917897736625310584469137888742419085478600690441626093339034693548690393523023321983414911342774698684186780992692686826962130304919313276231620183598390545529468220588350195547998046464885010705687192538207227675006109600082797042315028275023414988746130035637674784041714898053222591577388168981176703421558039391941185625404071915089374196486539741764630806352288152300510035909149364518015777759033532989734976797804399962078195439238937525244723691668589984019825888178645631897698596585731154214013319766836516160495703729470420441628922008014676290372114888251674449195835334609371934251664937581314946091144556517265386429775613083601396311836247932666679244988193877196480237915623698787397511596555266196365623223204682819477337570031128141806329438145074364228006908783904934482233479472698072490024488988111229114632437129926113195574055908047366526131278848457273454257984643195846438160080735320796110104321639553700071297766351679056360301192556415661556746452024838883191350750716247920533875858222496753704140292051976498689333736204833605819652933818484843776306955691800248462521480635117105919614763557642445140641287706685637677363148084738812934796371936704899612450373803663687969428701935557328486155635085185482115513527331787164850201707764664172080900547782345970484196871826683480811946531145086707903968959421133784199122286337423403990281722597639931554940994968501871113253845624858539605781754929521801345404428893041767611349646999986470510508635506694449747255435226333728559874382487693489221722815732051892077189581557281877609775883317420103910824973944043586704069326085338715860858609388282995944442285220591551857112657637908558345508156276600672987711315738873507353723111146542143186193741202573540970959938424973391867321598987101989690701650434712642176877363881393713874326583022278008579775223826604155695888155559689209076356440821195185532786668983475100287304136875283311614456948322272168379334657290801132415471199683108515390044194164047931510833777100293948593509859297177783922009248995508331151885223444061551103933846778153351540007564857936711851006590838924857851823571638833840742442490142629277196031329670848469226346079863413276824092152277871946673444626834660354482098136193852407559587144189678654947426437938948664138132926577452125210007286017717653672690615786769492744853689892241302327011394412684074219478853674419683757076098656301951684449278188571226167295073994948815532564348638940704657460847719617330026110674134316861996670054186768307572149706597378175467867790550730746033575156409079451985660571895218252243846356905599687126344053515784739306010773565999862413799431708295509986701394230878311302914690844032139946705056334816475249653782421835299960879850334924552918300249351234786473330611779017190074485210348843881226697833920842014400996002879451651892218683742311996182728955440302225581697522232955067338518838635528516408166002651733848341790502753129173142779142352733358373128847800123347248221040787592090144355091393911954921348929012608829543039064804867852166289943821527989361358232494833986209214105499569402081475473959673409952559259987602256754468848049276547379332487427144238730645776807106026850439235189976865024028670436345614408786110532874978481791257098705497249013444628456729760654228430471237384695777657831036607539129125783342257061254072427725451719033833301721617742706637576611491534778714982437103137859867186645719307236552683439297844307152679652596606230699630554765373066516261308720827481748884375234104827022117027727074950744869834780556534640659376363369674818115959711341460737931657670561501323494825847381810741909989723253532121565406145194026827309628133445048969098311264295498465104321812889747583609033548768416596879193666780584380454067653545883649575974324584221821906712311507101609488412888950163417695508330716308625549555278227700371463576751696641441586858648357791701309540226781814495494675506723507885280056064093823119982114839285752534623926684203520580157231090422629076738615707726826297026496066834247911772498133664657731576819515868288100048571787447842734091887746910684881323061061318253944640814790313026034102112742252683286703681309260558110481757547027793756031747553454051317447063847057639293647699443979681521513520589655366508994881545078275922126602541027002824163521566315739372677128848628574601317830854879354108843617799597263340353974660225659368772190782883803239998881638066535703798502127953509151577328463094703074154107014071687642246102659472365690765810391645955177079891200485089620990919262057923345762116010511104086003665363783728529141562677780641872057757333678999184416399171681274198822492026510780472183325243576812276201541898314354189202436535129270707479959178870212911819508917968306878048266949756232465436593585486911667580556748287084399518926080144812699038703744249809445947424448081815754051551373401229422916706189986853176137652793448971423420228252352804148476082014086441974125558139635419539503551304622571724073678896183795649739483454064545695200198976207823355425297485004261168013682703791363651654554097579462078622357079531812185853066711133482843592030543122815752289111940789119421699210829933692867293644658525156131038294330161220674583343706842111903586301454643778935630528847732661302301966333380911866839826182242043242883918057021041771931142206465250159339389018980520350622621545859473295547595953610603203395041234699461780376578849070375340767647330481425300544889291457542578746310082682165905905765908046403332300301447265582420921346922581598014164164610579378152867997777280664948616646596766332089306992343922230436564794067931193331214193207037624013018901090329394778518316580772938301790294005379674430451353547299566168629664669904061762161168382430776285687138178238903088715289445269346024411480372644288221452230588441888880865149152824236816159480555415104460337060094198614139868608208490548053724145343806499340407732116537691936622616886007019436864622769667251823993143775562930719890287408059764071595285224644126579354924970947070112892897586219321053253296911460164266628785326778428727678533354205961474871807358431574119007658502584109776851474819351841444020224620439685254248106718866537144252358785946984845020227304246910492207600013012693822596253353611923422222727536716558857396813744637950944039958008922583343292235332866885535383984444304647143359094227255011992003794991547567887254118929042518658226768536207253145764662775245548188147787265827838571710201376624095200902755801596817443630481438802333281700152638562102611444060948592055253733133075170156740372656381807190376987601809433485869034069816605451550876557754675217254855244720462174355933734610167829852487994707376728789535020380112637381195803875960836048459291280947011279636917176277043934625515255892341477946848361291212439681756905242085321549421357916432471433952956530880358111774409971733121694445888799224369028893767236314142411617263544238104812707804978227228120651183964238417722352323457760797652338560495923317235786004150833621374526470234595176523087847689414949903789820466188426117501884619811153631565986585646210053358599751889910653466649036102935149110481267227997110301848147615927122179615091245970057394539196868788110423382292217979560645204360640669723046398828269521521621158163220390677405008119482714939287831598661687014968014227110088475206472439038057624112508000107457756200817678802057799835766649267333429601461059260207104184379702291923375907484974473587269094496894137888870817011436452698886146142310566318726833818445039646082403793289926504693678163654281053847443664174139165094706603331563977583069331534671366248490351695905422423935549677675589974618232834676295124422441851631538677197300368432339457104513745635740749598290960074957899478420539395112439335728250266723903014794217856046388612910164187835305496690337305712648985426601993754860331843069625255192097058002171330793036080935227983555601445092244783136867479997540045211662907310467699246245142171665623156133427714331110254926098582563620641922187876296325851090361707226263687096859132035679647771325259008230104112488531870503440706741446275030705406353142138338965090392984378853042114793923750947145335860776560651134559749199384702588897389338205454763895665386998682420854410001385665685648862056765094637367283272440476218731517051781163643874273022628143665347646045265762919507748729779773628286377910102765044365646702943680211059460896439818317568373209048533894532875393585790375463652576338377204684413186131622612438659390975166939401578515175198538543670244008356774967561583693431277295557803210804846370023739414228178600043731034969013395502143687165412179199012064200035443507920997265286850282276586646568388846880020248642928673229586504560937554573095438496665524485939913296862339626785314834390049630241062114254428119578496637966874902690297877738048480151672021696515264675367215372176389993125630970716006607750156057780346412940902720214572921169191256201633829932644804389304606611716572214090493088582965912856311478141338217328653487658342373815165026941173790565845065765122336818951588989913928850202150058193775142435286052349359585903203061846873517845477674757284503070414670097129827983642423492290392970505755796258211243835315321050189890503066543066450916275146282353750575810884155910995215740528548980469146299372735633251871916157273385657644311198533504095328965928881282066033362956827025387424925893140553300559960693111883527472903106426783056683386672174920490344460770048016021757289377790504188027691055336275622236049530771657353319935960359676162505373464398625908917654216447232743810203407143134320480683056442704249362974257787944584246514380899261777941976721147319937907382032308627372045070130458363870507729063526907941232338990514278493659338967945496975301628411839686582360154604803130811354602081346440407031799504807672541056409135957792772525456571541494901052451303857487011640335475199863267692732890066033461308302930786779953283987190295475820616506843200803062411847960485929468750664187240146930769963773907585259403034231096715273690690959115285138361377516659450320253458890582066412351586254694888388737299521046135993523855526724529137827063818998626571500858143449851401126678862426617482802649894347774377945254364949239428713249683668279676544036702708050844930043483475362810873035982114498149146416505635712500641296504104271312935641372883520697291315886516367978492267866365936740746012529315928648391815206835605620838806211862919791439294145713200278699127391863118329949655670765361819301090168518598742085271957304332856953439579142593158510438049911190235580196891705156237746278733568098906482076072168535231366507278651414531005981151102977895247968161525788529927806436250173415755423093082656749973469402096548227405008027440369544885333626425798179754129680727635562910720055384906655106951246425348997289276117169910035901886362428930821684479738434441682073517718116706072071841216565225173015731783060280210159812978530608793297021904750929283266375097750209659075873360118837453963485552865130031859160773515769929027120792101147477774520317233906417417828159212625847727121327506500826834048240356521771703689666407382630899760093900280732906260737533510658978584916039171850449204027913446200027022968668397203125897960761112711834180148408173107007251253387035441645693056192280229220117959957306517095167708142776619537811953324017785111919799449191935270731044848930172861068436306883616147900962323113530381777423164441519958271698832627509823037088255464024728625074423035126053159788408545146635634325862612740930432727048912031205594970147289399285039432329816600871231880894889499308312805685884947547204584300765739770240289822818107590964130369430154041412967432798790936424140064926374594526797226059548552179161499089075394487928096811355015823795047681652892834738785762121463746404171745831822417005791914302698776886579335579185583528497297219774314051541852674661511245338127398115753659394003830801768890081748870327012610575437671933186837984792720414030757606238221971148156776623044079196161757142952997043271244664963157236016224982724428370482030922632803491274456928577524019298119295021514358993148952846619271308922658914316384035717088428761594121100026098403286837854032441346980724611432080645881894404546263178161372598692720418186859315125591437654105400880393383243641758774681346984167719315337244895632742643016111954702264958922418797545718265195697706795139735317102108899801875773092652032775191056859999655577139079350650382297294642696266927024559240542475727078869886902418078797990821471016813977028031640315141334232291865460227213930617248142813485862995173951011556691369982833117613170759828693357064510767351605187997744787156955293033978588602426216328312050496092190130797327214736326867369338416476578494936555125667329633577241230129295368703993609474455099784104700271743796283964991709827895242320909307350281489785792379590081968317788394311661871153673557417028528187629761677862641153232789710534485577700372478541687675446875124500417690658300021422401505754080046285441327531453744792445028345275584555602191651187653084347814586729638948006830020294768760707320191859289622203995931924500245155687279083288568070048132514754756468490829129258591981167406235404460417828907451465220518877547033990871945899117517330232595344483254767010954303325472130286797373063904554177543490564731088411555429062843949568699685441626102661815797786759839394997866071915584520339056356724835419115733845147204379811225620860247741039113589985485668758658927537888569602242753450831274262378311474223580935550083567762582425709914400790252128517557676349872670594149055908932577601122241601812143028816112227199310388354857237193821170716673431988951641001203220694776917784871943293219853773557749542481029835675928248500328414344634904633197299492214220526015095064548426459909133841401643622935038610753535529541922084224833585799080145909920271370596634133868572879866901784670914453792570829324606786578741431263587613020761028563398247799777078358553359415171309714450475616351078803559432756284137043024346520458283971353245128127456202676862516000824426488708059789417750262096256646989442360887709823450691382785197623142666268595508558792431912768