0
1
mirror of https://git.sb/baoshuo/OI-codes.git synced 2024-11-28 00:16:26 +00:00
OI-codes/S2OJ/1625/data/ggf9.in

2 lines
977 KiB (Stored with Git LFS)
Plaintext

4765568015240730307964581654652494738796328841167012007910330124294692650196695749447665037944764462666123059780905977989044236426169445280756954828237778989207175425561322569125424443670652178046414921310674152562661863162304882006256186288911957228561565414359626750991722154930098752339498163741092224880893080007836832956361955973463001093379183233518418154089863938150827210632797303468532902648836573576936482465017644991639556015644104789716308699398223550040291985620219289865700844804226203043648790950025010710646848956694918907551504737442917896894187334949493831199253940601710280637399147166164704898858013479147113623989323121155207276910050914897949709260724242918149617770120774293173303509409753361723951158834456507167899968640621507751042441268092488920620237053550213581394822764249722426860731134142298564153197389435141450884686448412007640685563904240113393253490650611569130274373157112397546061584633213217116645827417485147008678962615769889590175175902123409230930551796694341081538124242318274344277175413789144372484764653126880805803330889132841022278789433854787206159569831719259283657723808823760210593584716192797477655691987195071546394923194194068411276790456109689041220620870016837057597453982376338905047679754533123567486526030876545391542143309125383239759089216533529739284897628913862723713207739588825652271319592834208450967173426792336399167406408343729850569905424356105790796291879038105430874391305194960256936815023348136507188996456408491575485050788160129258214022806875084600311875702605548951387304037491460933893411681571062438314850365629929614711893961193657314675767684125502013656354625435040634303937127997244057954334702123717874927994950627013973274342719461138278509215312536768308334998097238744684833123019874401490097904746764830074038069682858997352861202559491329336431735311768018655118770176481544798023159180699720244994503621565431122155736446462192799111772173407756877913506433977152168226575406194418241505792077551132339205930009916013243326747179352648934918183223394658287915154518877171929153354053473304768327461832814077066861738830467588806330927187802110267787791654162233860068822216416824529318033908577539045212970177302239455810599576168091089854466463836330621656280400357003838928767786439577563156252437819616999544294389951317252475439224846842345635557787411428070764092933756534848386616671582520462270025274798944934765288843880742985177611689748473058310876803977366101533676567866296907976417492535955387761162114957222375502351499863401321453934956898551995629142499451614849436402098003153860507151177291745653674999539378147114971833166819616107259041315562509728609116077715894398208177539946546222370617618169413789256696363991357075067237001166596285913962122617380603445089313981364617961168706885606884802764085338117886306691123567547766889430492187193378622640839782491297718315855290360352393782425505002246857616428479220110726188133748363968071493124580000368385128495519113456609757034895857577785475049457049654598476888322093800639023604902486367986435880049685344195416422737856396527438934440467595954269507770250858869924531399615250231341544750918396083633106939589781666254602584970700894918828444915558249757504089846174822856942952068712190044609360169568897821376360278502630091913145049599740561405620486938912723608685885389822517431081546793251378378705549924392253168027544192234644813026017302650760978722642523116352883305336549831515143514211979355063785822914489720287577346754532919629875445766703195480106862247219337856887683395170063427039314263783948693505398872802300806394808835445481459994286185870882794196355507591513606861063377581555181175959492774283673839990032244175701119968431722567691610092426949912861481623185168025973790206904322004145755194971739232917460281726007570160365971988181920599930274104114855390078483866044248648847999324996752848813393482075190812370159667760469539913882567080121213578756858055352230302282213479762527720372574748207611404285942216965065436739601673360872618662696376607009702440262900305056804015987573091143961453193250506250538552290872330318916769965778877196659840006726910033175881915584724070079232684142774309576336503659154168238406801803537852420105264389171796431060316337548304340289082764423648703243294493525494768008268608464599228122341914445250101515756740960949552576450081733901559440362605579622502070308112321077645172833259610014082791454964546425700334463297357068034460173028204253356041865149547364775833851126526272524806070105154496113415781387193731976455628685090745652461813662926720684689692935919948461959137160551311180736062285786575767615535750073552961479102055583440329005346902138375037145617762576799730933803328901982728580792794224602300153230987862129321611384813754327485128437796162812045128127555184499711938884412959767486361952138244076233550871698079796562440663799567183151326009376169727843279656221299720101152456976441790251353127601543168295446608950280636509099714123393032197560910718933987866057752208024736028376782428600709905894399983867297594924918007704411716686811722623548459404257311030890124757824985575864182648292299881000329709294002229298126792120074334518253137464443181320281912325646402608266113378732987683461311462914431453884050624691956018933447762154070514071539474399475527939793525032330466698261014145669353699562558253125651871612714670943430600798727233076702227860818935836061564966883500002972020304593094293688533317406010860369085266044155707303756263680428412071050348256179236108172528770386887744362150661783078914386014193917019110856928330763924601280805677163789798739862548050502940022124845728454212140822899361404035594382997717350863542432477890708003974121590353712490001844282748326195335963723545656232796560336308060980732166375778405128712597435753979730751121827655024574774203322132750044050638506769106588798287788591298216899396609759833152295856076135473342878558251175191195103061926667411239110437746467698702673928708374284157062396726065796514406811940392295891685675630628561427998074317006551489673309433380147252358633000582114824065501020910532084301756149702949343426659835978493456848329420507996621881891862232349397834728489873990009781709092814812116655426170172398398389450641596034301005828271379986871952612429411797178252975823064483770938013203741682793631605215731984722170014133162209821574871796590102938959150215612247318374583791147203155167123241812945952984203226841325726098914471873631342614887963746625450143387186442035575973749565680094635686328719126140617447675501169197409386688842633502396681717514594644210548611455724687182232833121283729444352506935107898323152781216254171950271130455516682847914280491422109158195887003573060455746892422567584475710088997053908585345408640638243218318812585536170559329649906723917784939567095178967735759194689185158798202728562651313852339450152873399274190666496346757899095685359412596711800206695886391085498209108847530880268575724731319478589600813348275698550393873919558382769158255395245188361885852777348602951371149863081074110379040196102209826638332210260611228785002308856183312100036331851069251753254813615850424883771355102192437924902025935408726902765061708566136683163348442316407865918878516484373274748557733260503328489875146891138920103708634499621914035825434393576410451616509632380157277865126323119485139974145512418986899086476974192315589134456558248882659500278475734092732137822821288795326647040298327255090482647559405081453584163004370410979330321240636498242334533547737947505915097802500238431165297796486436359788098974443251730834890451898734246235317769656360614806769884236307901758134677355021116856015662583383042643753473924660143287603574353123357270106801830849546283861301452493358350882057474968457743910689852763613853234270109597345364961206822901276339230363145304864797917857357159521151476051942082262922055230285565767077758694993181429458789561438969881590230333550761882048451671359639110878883100198983543313643878548728327627980664522137758909842806124416395502905783539614097907758413023345041844482742720544843754478033210519950272715965959866107383192551980640373993983168627608320596398528904709302116170377248454753998991931638130958829064385306007960193706687349317663528622921964807384792413318078684660824755977786956619050558731937324057946442261903589100699968411501262093004909403899263655181891475889967423410812984348565736615308909330754949729849072632116037064050782280442758193214986264084202317999296967655172894517260431539288545322952109656072922932792368565923024170152904725001083548970328711311074864600871351440313025006319016940903325838818505824443027546720519544701778882504086434144867762908374989703786429596166139399885740515220890088261877819880491243986467184815869483386602729175787808505111995380604600320665704143549766395198712239566509014906204730612374645380643187145766631404739983041241946405608633573963378403728221693603980553519912828082417274174537042379074266884961390343019041482615870297980428514106510920975754925300207230406188856716384199312091636472919006896572834153796785521759158788684876988937237066449584972407983591208987141652945024851186526339815240379806168369732313794704093680489616757894524941404964022779115882112999280652984977825772704454961684625878411130090270114264903133506594558176382615071846568428414377217635634250877407592757365803325502425139916541472399152221948826000118444736595866144250493537295826853526629925696462780209831487645947068298984299804124467070456410151419524987017594425527331113158485818165209900668878616056674049423023093946566328872696385805568594408518754821002377967493254538916046920076292922186565222130622407570350024365820701042249408432883099584877771558803041480317509989401285918481785230608761359364881087067221231341355400315797935169461046760963273610052467278377924283603872382174963898961618398720576331611393686115440299113576324469139503637853992830602992126582435497160199212082495108336543909495466444295119749523469743066125972608177806378139903990660627043375240782220663929759046138942246837515583522382200990082391517560433675660630690852679766680371867521955412360426349799441559804936000848233539074757071814501153528241548714552522313105779651610226136222158985610672992642767124403029525456142861183005433711765643040208181688320630161064661307812835236288538137963180753481133769597153811837658934613329206935499857471562315966035096605488157741880155583786279225543437340114022235924782313435654809371841733280538464712581747690414096051059817256131278758248508958548979740079645108229239568884037075976429483792261560563409280702713442202605682975482893976069850026128235423433491970285535529083904291265987806356816228328141332282040398369166345053007391973978713148060394562583618395990745950039693138643607206094507415700055273818985055397207362065015109349121319953660796761394260121353720636784440684058911432155692012715902042831620088905272894498958861406819657587865775302068065169722799858993635023141856478467922340737893905781560714427994158372023159218979696128803264712272045977278150583527116956853610439971048020240145678136479476815327890408171267704002622660645609091169504030071813982536838603724746899833468585265980388373744686257235572817874894321264318970624134745161369604905436948894344836649815198787658886142711132475915334436025605540134601802523452785738555371967219726677455144328922494305781102833677175994444726054393245784571071957256898903422464124568885492587687996338368506744471334698801644005944099972833677404743794828522348042294767119570985636413040338615526855471298965908447087599664320137408411694304116388836240911897931075949287566108192029650874245451384774418743317215975589671505199481578712649823278074353260153900153889876020405789527287650247697299209422849184820101621033582721220689719965166992313058058560045124631829618919669558821621465357872441670524346730060343280505411801829954860821878491048743467949599104668168631352775826139078567071451559448051092394953883921816278886387564615455330533323505009778303180584059324274685619374081456079052376331164837343882857465290434076218757976886956162233163383202864857703993164141637461139001084303731794337130761483918860917458732143034141189443203603005079486788101791789120743883047922462779030440907322561876990568370516725205505857840911726721577754034812421899705931404131793700257012642533550424008965247423328173442800667285608104628066259481243313235209517633452649403578218735339147703340953560259854948516759659807334932751531945786677040823224380141290182990083551245328816582581861138304678844860578539842698378682757711345063067219245328941928255944400301378351593008500875966515787634480603390964518092259329745883306582380602364065073657275343528922629154590788932496881293364809200924812805846868097196442128756330281023041388721564607381634690586303719022534069390022828639055606328710175303973229482851647619140505562352399429824663571720247777711937551290340744460702867828589024174328911000571486911255398995269677461419866702492710465716358404730516927166242951401480034950031569127565078806937080488424625046813101678892641119864098502829692444653145423253998815469305397144125762762658467241510324645633222100891048265099623465865963523434360807131340763935078058913070820123893703688277152783820129907236155132905704190104164555660939292871800467256513944316739854272041848619830136650289926606502808056775798050039177161027278734529052296440600461551630904536987681935129829784345027460753897120333609830695906836043438305235392749986167131492001139125568022717273590691906591930858937481158803471341334569794927557250353265981944749067904129895877884600140071811723618119273670484642826707177379181127185484547912528922694079507191336653167023061528428706958217673877630226396819576249974352499032044031403786864609485028088944828766619296619877668134439731771285277431731088892390048596256124843050434456070965374002805798718688665504338028929371667355102312264416804732711539027803844294469034609069177470235936359497310271003394945513446793733190147768280205393463119859790054819351961803766443838579961089140328938933602951982354567347519521805237212577851640254666738478736563730679810033217781812692336097740531123522965500483887554836471607491137269310321810395130968384462922051670928354354633095868455271053152913588485795518807770040342482431995721456130155506894329248839400777375771079874754180040952665868856736421727155614896378105038282754892851066970654328991398736473269489925273821832509395188275511910972824369348037590417685265179294896135431452799514722670854972877532547597032481919574145362008091564377453725895439302198967189609170743410707511631124254250330800190144572159215794303201701095073221859969267118724880482510121218221273160040575062812149806054097534115902845364809159936798495399795053986146009917122614486348166873696220018930951737235270145096069263739290203138529941808108027135048874016140874593313779471797400752732744420410020359254184222792982648213013162153303055912675117351317238108435242962248922618053731990244840545397937101171251878138328587414279991784317636413813058033273439095833181072423587733706602641859292832439398405950383886851797857335668855307641453718440679337242014023908786804203921379319825592613663127756878544873875968931600566958691777729694673052302818519265393214634488242515835875876555021172951775958476652322263277433578853764684320974320872629504052846874855350702988238706555913884560313355933257992733933714600677174436151278080667625600164042274902488844507481804146130671398221228152281627517486747687766328926295461146730150284442316895173571458772526037062527296948494631234958971901371533939610973547380756878137722696621119441644141582802553191285641395293729771977010476660336409227197792118294691166869484214014518864292467246852065112843388125550172522440785635888161789911181629474847081614611537183592546881886517477697396244265275206710170132598008374952418508179268042692855824881945452658102698621270528028889288064433941354674155153360441834446354065826057779654964514903768126506782471571309725123403404675770642949404513877208634316591913962412027457575358530212489447721019330034456022930050423545690891848256267124668104415760845163618061428615858376503671410682192720346866399833173758982833518567863140698264952351946261697085005090911927927727056694711738503590983536750846920223315117829728218571303255376677028327526736503165563159701135326690145452087550100879852320378286504835416644593886116153207255151036729160603381159364036493674450620285613262624211890688049485488122759079482700780655686583544324837182281039948137191121177313541600258056557580453031569245138852924072969499273367874383567896196508054510263470945392308641162951916684369883473082371798639979750725151493327150341578473743567700008052691361386099496495353993423127310561067888080218281842308692895058897752140540061240839204274608164775934702188786063833686989155290403218433294428313847282040416963807890744260710620719095616560296148458023387051661227827556818147674621354469582177155669265004196280539728259611078045173005564802756301494216883664644118272170221252245446084798731766253750075924636845620192011263121788300704208393970644453647615998171414059878432521562241230306026916284881189869322207943780807810672354868714493227264529673988159647792698698092707581620598476885087852742428754990552977798290911549211341905239700670249838593787722729145933142385054708030395573521093977747673693612808116954269002806735395512609536361815089536376603585410892798654663076536930073107420488078093097015151618958559578980877432749597695329664207145459054816102472551726056485424122165744850559675763296209021789536198424826108026085506005631652616680661674730891999807263280660165923274853896161518736128449675265585997406223996016735357847976351897730756211119851931013649239032521257116940759309097462498296918637488749767477513670632755968250112161604778107409851370647272137733497759196874651918457449824828546818541271352435701321748504681381784243876518906553625575755880321989608870201289897526433878510578263112885351693326419520689255159088915502889655394831214820261459923181589295581963025058927183249684908219511824707000894131746846448263509417185588782070636918024074178702544028032323503064727829846655901732502995574300092057678886023572089258072388041642199288602507819486312972433419754507988659442382440300573859961262584438508596806380094721263688603241122683408886407946349531938382688343157955369259131851418069926623514892887817170665870208057774946966290951894429802725593094291057418650179773735998252776430199384150974258945928929727695670529271513720350397973667883194245672768065990382685391512887564958321567429206050651337365512094482799714991030742621796212107574500960117171287968297720330574502252452104586806601653650522584279220548406972341930836283650382374824959729158530023702775016731566604726535324608874228272296968660252093356904523919966881871684453541983066476117208120543726147105078160512926969939549356803338860937996200450527740610192236604144953330724517604502102061254787267258677770980599022126874580623368714083378172385309588975915120177328475932790903617249610515195719229541625785449711762070553881145921304230433667200833455307922994318228523700355773774200120939001777876379991817050844486558725997257570976229533723623149230025320246608803252735401277177493819305242785251816277877567209979175938107781117686685328255973349445291642521601544937742054429432760444757096546149673574714077350615740315560993845119715193193536800699099226063973681845699573335226668583213715546788046053313669227936260440249060529329514315560594158090944455243879567455358041088430127586938506619731208046080508876506177065973444817228365803382414612322400238497220083800196143424237505264302501719457093028998061617561708342976437801563078078361836868183260383491469175061209502668961134182651337776129641332019652913971566376371570758314807723150226133508698079658747528702172392936647069824515193583017637774958795587200833932586394290607655969366591841709207630034817026291766718175598846509448053449862984912284800497045494410504922027219102264491078261146417667607866505143032667527808778312892671999503346780906719652558280347395331248815415208905583682692340044922605009736266583644624236184155685287808540438699717562803443476281313858265436178891181180548957886403224569845173318011385557511371318730719717819417388660422641067350674863646087459774306326076932814126344818988381558126097903134347430004521491337242993892575256696654035413766262171656673074244195960599550024671977748636333698800779221120050492008376448270933952143104870907883804180971604291356272086046248740417195653028072895116171134777103867929649688814794620667005533878558644448733834826808286280809091624784819546132878160691723330848189146773721006150985520172925163418869096238678468103545545998540918447680016747529771724937986928617995830307009856355634135063779108460544274819560510763796038754625186659346209574853027486099448057395255976361742870369235725003199937877789844478003522696455157446500892859227258308497277711643451564609288624872302390653806272382946432006828166949225314132843533582868197668391445330078982928575320161021436719759870926341821506093335705459078076042348928602391222063018889044958933940926082570927659780579241507159577419665822017468912071866349432273614895472862381431922093742015008728112512252597625123681592373860614145859398622950192434187719306542494549322252234060813975091531939638478583068361893800159635571926694635081262388882178724039779282687127199295606991212728967215108673592692283700469459863557019551782489278873644310270579956480828719522048672843667251608613484312891693289130807251474127777854037785951802837970993970555802536101817650181419725716332184242614130445111209711600779326410988607217303576149066941479892594366507632033491583392415184895407662576656836730180928508059727788479303140536093183766925831381215985546468344222319615128749953318671982193157343789302755249187151451993800530047259216905739943137285521464803220193421749998181904561553184912439774312753828542472529482361378652493683797206372963732321128679398500127541801866600015364919870485131631068135040311495825351542527892780774497020771980282644852422439328171166499800848483138261676207902738584470084891581879873995980420272394858142082317187715831696131988727675452493776550552165946884542023409663539860957271122418145937710929313341967552801629820053057591532707968713398094778414539266640408804352345739129441995152958581176777476807043433049158571715331667512259050774535767918295315936530916895461363631440306878623548944502103818502330352716230622639379282671030414407166869061193224172320870185429739271163653948964871059299859148939473015004059631295412051955652301433819980645579681269043184686868818033606363142456334110812469149043971266340635621073593534436125764571667341320222825101190151986011811824522710867197862226292717259223356151165240057294342368614580312124521080787449827919691563962386990439750266252731447428742802866686582731937393166045425078653046978501062314988990847140934457692731958164381687665001758788789272136468301728072144885344144854998511092910876371418366916901588507740124759760166824606838079988193878307807191177276879043147794879653041527262255622674918136427284226307644249759550356366852724677636203479800096287556902599362295836057975472713855831906947143062539355248929758528236326461517485531653219880172338411866033903574468844175022901325260664377154678881846471780583359556384606572489990676775919962435448015628741659912485923568145034781228723710296468171525076549154127533016442143496571508955480031902714966432799278339032653066618731033648264692801063590492978455433226596337093661337917903120518687657718111948601646234367988150312541987500198709280282136369354406954401787803415665321669199065753241190847256547179009655984762523267638947431002650330984278629251968896685131881080717068917100665769210316031286020797647396166534086317054033824149520212242954239318306462672271284012506362475452921164878034054411729655223022178746705461442381053937372169134315313912689719967462681379858121137154418980375597400034852256964481330621141403289872036241406661446091471899629060516988065397477421542886577313004086346348625477124099337078982196258172661560571914792526688381472601627910600080826648651414405302214291254473229714333421804079242318910287651566738581031720868100708237377293159757014932403638580017783570626212822890619371849785177444665946843182142314555178377907892853202846054197792947111481733570043463593111747717521897854961294800435463220974361156255951046108951317516616270923028349647251369835535203950234856991531550183244457478459003362999717789232092212686014093381978978945389527557649158483741204323192454446740025114076128309887037069816121551141737744127301136805151286750486461976021845382747096599790947550734027077339671479738868342997215831177862353012194318157612067286444758811405990593941276358191283997430367618857488767478402019075093518568230258871739204622236372814459410679219335036430868321470912557128199718735779622466555042673470531580804635387254512568361383756923640545698434647351091603190920078699946664303735650267533415789361946190452254390575244421313623036974773964711085987571313824702409682843873613648597803007293201241627565272403656568869861207851709723564581821665350205513669197159352382792313939867653319243534165536166417107386570734650094591625040261810199685287624936566125177154453970602337017991475880025762507726805250421866926256076581433270081677405522944772506815350615509521523509156862542094193697800999157730177770312988756907072651242646361612997074218361328071724467770916544756752310308545538289311228462600457875085993293753773211248205006364995823857309654096220004570319736300614623259224599462712558383836756456696593940421285903365659969204200453183207340645252617550146271466648340164298940234882860001674794135774406928835202762024758280012416966303091888236360955890557540495760417144112275570300067841072979004974955364576229478404380561684100458231967048145929914090393882623176425055834133916577129166997201030503187790074369511681928374910638976996814324244396460454862986054559176676120940877717458745966193571405586351872357499254560325094234061845863446659882701946662323794155929063601605432055195005754041633311954137619772521239418848726414558205021113571981943564480408286104024331318100749586583601770915323469201330768173177115082756140435402155727378532676814035026270938985444264353925108866096714739908674699328685963055128953214625373864828664778697791969014582355855455258712640569323539547126663871940107936174358277535487449340581983419626683636475240200027212845889382947332604607650476663382952473430810147785064868472920188249528370298915984848108080443300115886446052771575089560142234136052373437813366478451816522977076214920656739200433464101266879272026043975882504776988024501923311579730338035204096939435503666471814097313723152049432604394041710934260894020359178234956349145431081323806183324085662624391755951643946306446338099572666747161105737257761109824637645420808544551158996445336411617702736407869143000619601852020419664652534436024294115589052137213951000843116300206769106998507527004189331819382926135882598128116350076200471740977998801758756514291781282592361651828863563718748564739522091203039023279265661005295002917026809202222018231544864531495203045999204855294466794040787557021853871602478597292444463013405471276074220675850234450062544817892209125982243013861568154853191992025689196248526316127679460724420647266898229284596548663705335030775087662770251821500921149887215970891987673968197472907446028395083718479857713703382941482367814172364765723167892365926960192189177626618449192987136767431590861131003968481818059470639704564340969699350691219873318417518112551462642967732879184151966131704670234623770326471079395437876635784253410876811491092864988313851022401382666380136307174747467289752997640352031287833285327390538820802428612663800049549451251154699243683463392828533097008549353805415762609543190997095176254547952781969051774543334195141528431257069895723531910781469264226722717922680286832190365187803239427650341821288281572490535325296942496745208960655480401725527707843828937012969961583957230745359332701619189145862746396585750885192035370944188673397216964180360318297273639424519808145504733604712843667840126271100187838269393034914043676155332168578557250018088547526412274618564294955610458569918347784221742875554160932842234287509441565497390303595366910421119348907513414595568928271933039261953255806943999428887961213893525255786013322296688525841979104507653284736593052256614494540670616642244317286330192452760531770315589819874430747065664157923516271354556141333785326191187611693924865050216842789293303702486370173777608239970071488666036816141024352782200197874343218873040920987395321455494661270346143513884995599206183704247154902960010209022112988165692081556185931536679595213377841443374968338151952721227080552158367599527323174128706204001157936761738631271680354882047152170835003383228124851705894490971801580386369843945431513087442084920119919808405824091129818318643924951770958284533654572859237871641081071723791447320115408520175743725196321597059012903281614882205304081196442936483018467524925340288185983619351674463257032699413276427249327062225675189136885347114598363502041592490553044944741842127710499798840773571037875366052879972201877592768050613567589103510869877829173562469605194578089370266617913285809401069749290045111170784844559287430677363214616387019393667848899819272497346330025016461761506971062300173634689705175830361660724723013773005831825215797048024812048596648817029027880874001267466804873036309496076857037554047791003577875646860980876986039436862267804333595196772238085302494028287084120593443927680012218414414656695409474346517706995276594258682329041690586777206407405672919673676787771891363512471735313338865358604468059385873988790229129826673541178000249569538121009533424750564071684935272420387393433276519847465985502830444127381222499313593168319005677209324697723169470377131499776668539539447988987138466873190932697844522449653146592719860506675940473781081927654866835202435142716045186528046768053767710901979235133928263972587650804405595114436256934830856302703181697393329914279687790653259825238478372747905023450118571509078094876153039075271976736393692470182915659959984183177319350314339375949020316338257476412521784056195932011819566548434789155607311575134814472552903647130823026814344786453518537898737446441135634075297424502249445160312273859559271704209982116535183920370152183065835360700308710326019534867507477762600917377083194632731194147019972985432783099385086194046956718255769843721166420205046487580099357018940988994108600690954383717622261856794418504303899494335722741793171693982399853396085175671670648420181695381527582901773100576268289356256214025816946170824443749325984832806876016293082876994879796348403165350769776680930395371902559903056554473084645436045251847460582936318178627976182295413566959897180749275022749250375051724839460208101791398554787022683363621658037542267876078280583759042153089900051905858884760575883328986777233037716033091028055595916890993770501641461744926824539944707061128632679192699991442584894615756619694956456817459882132676774845346660382603470369024831714600414140253779955289041839653127586212180821383718539142139094745447454044884475804509763389567843541623474157984672719738210906199098150192599741617739008831605259507971112951494306416497356051749031533951915398982299236158325942338064145516925952419205023956690392411407675362711516866448704820860292378127371631896793995262500464903375795540814268159076247655989168935889478711560457434997814053376088320007916560286628679482227487464758918898762133423469375121260300658697880600575232712579342459462862820113609760138843846482501717842229696428704848599889237284470082857275509426614889168185734640501301216130949772859066369436695242630607437207356862037491535963853854743895684650391852798800799670020137837787957044818142966245478107501907221967450927354411285405907039015484997325248286970072757033180442941075389112805825424500902959156324511874194577117944746419798277678003791306118649469228824974250995367291330592563577690179631886041705158102641792603675021548221830495615858381208659929292136133491190350959458594842787281986039722514752201408472889069728005341364494419002052376179312378105519541984507126366295687185959421695297782086803235188133199853939580687774835866880674770989371118582608895464348471537064273884489454537395867257420349753056640953687258055634326958961490057614640504836250898899745105285686371207074414304462434909288242107313772452759248672830297814286549348395464444593701177778013660494742114135756397676719681843113246703117737297786865617639128620652025520886044623061279317315307969927199051964899236086152559054592123329787042918850240605193907054669056934041763014808924837909660736050318446581910194181883279560390213762126614307151321856382006773004072586977771824618854009254236598507705580563190444469785992751863937076596087001668862389304413766833265388423150706860314680224687897741360190611249144887420124662583677891738945935354016461155205884271268032745228271586148818148582082722384147884219639767914713648464500189353099245633960663243053772259935154585226031457298543277337093324791329997289519444077074257987751426836953341186803671034082121381349421603873766239410670762028155948488982185106500836391362084128937161867050893102112617047384590049839641526545039598056216583595952877675881082221229458024218927650855482769419859524414135656829412423588172371505697436270045544561347350500752936121409763633707198342788437915360505557098893878135129298001394317938361515889798224270763858051615323804827337342993718086968626642844636699946828314048311405978996046644085928451375089887655354944753475346675366421902445960764719386377404748416405385593027217444062538315947504897381774269331868164867931437589239788241203721654134748039870538001746596120654313064322381797298087557962981858029780520255142423839257478540187625217770319938998638045604239996856972678015150032082551263904601307326382270078534038554272644202941150010353691794685686339587843040893329471036562737508756466422301401647770193356680615057879997749085598028667407640666093006204432988414950695635950539607285819889590557326619231291421844428905654516578662958466084099594880839746340343909833409727630972907644051514009307613817834372035360535364442329841311847705624329562320256720570221111455297975950410471963901677982319693527220485629679452230699060374753416399401585247552817053818721758489646298556282771010046121031236021194268172549058335744409107082483431240333425464360308956984954902921075112731830789283461416689748998552805191806490628940131783731298547870759101551644211792545604228218213852036115872937651097264588652321076566975840965611357805154397420698013083151845761838223246365970406313121551848933438644189126935549609945375937790215746215661824091081786367493612253379440903110320072946159028700123195951054164735712733524126740266466517007683446988526367434389467022945775575948470968602912454338597246960882082565714595515673027865328887638765670299870676152285243155633083582977421854758394040263801238026247364856579083210221905197699972944244827462469730662226115607926094851873346902462887674732107564494673061758084794196235363613052416584436112104563555634878399302799503688793405217701167311922471638877059593921590957715200191817502739385731753923743387187912312549330806554865763009932898379691579852793699053909139295197503308885175636944822094575075988925264371007080269930722303605510262270410528345324858011262039348232592793417704862209666096775133371165010781248476896884118469972410389446538570750069958653315780584246798788276248207602181552441705178647429569212985930775000673446511039075638012309819307745702012051483859561536877823179939510408332554284299397287386227437108596173815177742921335570327165865023778252482438416480257463895056378665912317642738657458579667045015700680656095943485916669438727830889964362406522485590823647611218120280156855983302593675327908588228893136247633629081391893408063580416921309516223161889642344372397434915222677029970419549461713367266563453591108978754435017667308089803722482139410070107259198126222328206055687970128895877039193808143211256463861652087618603293364155510280220978146242551426781679653835965641710558751827021918020014495932884704308010343532180335489145632590210361086260537924706751615646991023963683213476349919303273265082653696869226764310591787757724720728358716702742293547324383558072383826408296203319217806316854750486334635434718480261368925515554202036714959191390582016457252240062383630732581378706123301382426072055207737572600761311163814334010699600270974902920776024645927360741553678851131824822967162232648426378221142363085555915264536867464545405147636748162254136731362189932974782070162907686502652288044734451609980057146433795465315712158919768285409186196345016210649485628665761508355562907695597767791330793478742233521601584852772073472136127666556509599033644860451336309190521177883009703979992523233062116924975175966230145011249183957626811897834001948905829626256730453166599317198327679163633835378663507140923045682149755472652733994239714737018071309207302191341663441976712830324367775930052718043738139077488427182834481620817294126717794337317271261867922325886321643907212898501469530920043541348723578844856147639066343171512230757715868731724540525539705440139722513071008459181860230121573952664436203356070146086083698990372851283849038150384393713596789533443571972333427385891321419054480431426181403043783914808857361297683237467793235416866637898433719841659309585557355062779180566295685375514951732090615281918194042081904344153858362285590840104644789075721643904793852156711385868983427758196996023235944424745555088676295104412609807897177811161264549188923772357612028727348606635593159600797371743424865516212829627989865971217971417532977112449134405185276424045629637922609004833230878685689306622661904255925019191213986670505006711232112048826207292415198280009093511175758832598758817745198899295005926845920985291287052998553751152913357978000867806512332630977137359399752005816085970275782136682514304091971755933817881364705242644558221430765548739552550290292954440925104049799980131675847654670904308845765269983547624586373246999413559791184162456361818918628152510927665402134256131260632978842364518193344561046799004674557608267258832229584367343533673029885930110717271177088071807106481107223013435837942772878449787081825396494529667310667023601817359283970565780409160111870553562887078584549636168831223398632645741212660266916798650861050354080003889343689491105716317953736857480659769729023707087369053083179834138984790374577649659600915003154294594889943692530274017376662525204339892147416785214862260705581851437543190438744857209179785967906629716964475966781781808956941287238506643906328033496700689534233522678212274056535675719408251425945577919113730908698760716578524983564474753396503462511510026328927376423083354214745023349234670376191040509029868738412857647201657694622504518770235777719957235849780996841301382794878931583677179028114533398946034094676027415166018314321098013177296651073957615069982485983272763176903425449157242654320889044238518459941893082844692320843704018484946104096158836510641762438711646377117536713276512574747620061325357998460943872629411635628228752589636447584351189983515332079729331017057636640038795764218588435205565983964060038379935887781146590819757420180691823902315619933648811273656921035924094340219206422628020243636769228053787804003821087777854261703376353061980196645053003708038258907168195580931046719727627387534787450319610262876669206621068658434533375651745358060679012306858982814921711301299144749873923149797085343556066249647247651240893822448210890189803609087712177376308457881473454489793886910333815258626328107133423267445321225960220760606112406026089421069787158504278224124112859716289024219500655074368831673449891465255947268948888506320469490272598034011398830152439720633585729097007020641032007269813292192719021917099542631169211982193783128516514225133799065337461922772262990747685344466374332188812937768247080676064731288062861515436420764542987059981887540091033919755441130633544426120907706686954113641447105589214638459909853996393027938056820448986392760031781913701726770327581269650960927544984069003445383743592358914926790659401131120193652379423727344467877343863870451421203849500800216742803222669291024212915860907114307663230836349721178722867234361917104026107802465154698175606193091446973947645510516511718063936719281497520983351831835988258291904283352804759599691762796583286794004529587567205220405297195077217939958115525797705580076110115526935400493372327997700482963502560832352715253305511927971943973699034859773173744345416408142756565344200310129288621185740303665066508768618852964637076431242475958860932626983333329095063083768095955722596846797020586822868578234605024577556491046889403591803323753054326374014923733997748474001121140246791682126020134914240400747931572726467087270143127591975086393857184298970660593316008697003354095090360490921168188106329568244138131792634155498246159460198700059135639133859864704600807830483782420468363883606103841801878607678670249511404201777915637131044411172452167599842402903136192929803396035734832283194080524053907370752609666136699367376776687383865608552894584212807435148268168997334035325601218984441694676363537075850278610418712760671161334391608269004310042406265006451667496536406460549907856795385493209269303214802494277018060995081050489553645175420908384597482333377244324302154764661543590772153306276296451329288946664484133943089073206070351045317912068460714889244668616253447467295794796436827220043144025531124295254821776637019845130252645897799234584071495707948835632660059522238554545774673458565752523788186995970954694545872217213109975012411432454660699904269504557924683569901503802295322771272066686394940554158844010801156483600105714047413170984366839481952185943579687858914266453889100396529340704308637661298640810243493350452409890988658138401391405180850725423617761263833168203061313112231999711928385338217560560095512623070080138486929716613768041748677003516727109079998765897061967223561530728607325417460857891570050865847994763593167947438213828072851076444908451085292941688033766099162492171798063806246899240853044352742388876960738155414429384977740415235123321260821599270256104470726691130621169579209268052633431822220653159248673137307835457814637047197999372024440468475695139528159532335431635269770484893467031999241294780024680851188225153457278071548492685608907452195449433068293513506254061150550677817059054521943113069419978870519068470897427530110900547838947610469237305657976691038584583869711291213236736891601141729043238162531504063247162465918872733773075856916526284880732141359131916285215863437988806752383102304527799315030205557179586688762945143324006108019715107620311356790905134139498448143863218528787212774823894856989296941296710033622378849935547933830047155671319462665938929194146949566154929711218582234909154775512571024537572232838663642476101210292808414750825211216380489987408158051852333669079296804457439956616454955578063720943566139433413757969229695862959672132687142776315272432436482893900672452037209665547417610332976067353402761067300937481393842826187914228554738831061111801244446485391649728601890304803522643453819508079508800270384180959418133794960473244341198552164248684671685312498004179858654042849345265564782424956541562618293708900864232201113656679434350051455024725812990306767392592951330185978712612701867048112055124503416160166481261669235171443234462813536694707912519000341717733299337859003269412996477533325973285508889903570499315402514080485152642527325628829186164919088109051988108291120586986396663173379156019692914487504695531732772101624045544103401442971430760328878888613290304819357325157365943220966457714528126166913045642547168548147563009239789854207091234324387138463014305869474604559353745411898063633761497433115769191355124412126837047003823693798356446764337659820980514050234288552507693790397510379933112458123077652980164268866016229985324206346446609057816882450733321393247761814798314317871923379423087100290506052044229208093889152700275148334484933037801456454398237150276397907094277417554130632210461731166644422752266568143371899072150554824579694128753886648698962245812113554281774012003485993364970142927259049636596952198498308756238221104839330486333408359309800471991692428479614830863774133964622035147045407146901312680174707543825252513454727399071766799324713302235553376054387162889291398849318500130276376608264504569699033223680828050685973470158763037393183460441023262960569676161072305991402187744744990190054532891900712272243615034519635855441849955934390269041024182762771783412472465757824953959125038228576349399896292344184822010010991213043952992357390780841224787397150689827654222643965806907147207112843311972412010021692811096655621854305389274815811186136654500271133899241618474438770298647981543282929891780564234275213311292680601269329372248649948258890187122168745076234080860108883736175325526772545946276143073566226773600691666505595817476187324734252919380099496817977545969800245885224788313175527189292132487179058334412725765867039021873219289859455396237439806078674839954471301993391144998856943616420935646121986528973015959456186599887483851316620799758349728594311629543935658024325741452833812264072370155001300043892691023065127880725024919775332410810201135019800814514681498618840358670788990783769665133196782522414295860307641662690013460700252532427303197577824799257309279601720492502233241796582145936665293387508959878659447083161319830105332361396701936897786697546157530780698197954396044334854125482286264712813035253710945811030175026470340031705695446760591365891397098200302921862878330102298254930078596292533813283827546119441675270031103131394247339216528539113480867865235662621728772986178721961463100553826629764366828854529452907930915578381323496549256658366088181130145720902968664679582781169728221427464552020934363952931547384690152989387946305843340376043157144514314020624953379430867116389583923187407363182356306164269130180228195957393947857484918872282632038984316249777316758765727153773166570811980222980304835507971723234012790198429282333240814933483666277129895763487411849264879970893642956035318368267636480985400013713840105946332595539532910811936362334597634226341149605023007272887280294405070437259003908418457255038608663880465237453490516286844498237184262526996583253750045574933722935947087089159381677702649386310715637147293880724226818156248099174330219251487458096530412335923888841100468935117464170011488443298059316404465450644561259507435927107364695928679969042855362097580681096517406605780842954673478846957951546117352349751367131114624150483744276362519667603347907591785107608012595285702665665380057851747771071732690858773605150083474506866442318571144372958132521693113199951530928092859467498578837576138429164626305582663750738929498540366772948249358343311167792414421819157198891781155139423848420574483041228670603332955870051568795390290398078923252662663534247116739654197193408941027207229273430980619728029828497049506713792451455452335789224038364743560298494584274897296302762096866776431705657724326509091136355226524551855123075753744339936346969380983703449253076804528518755853111472552708722293198384796107524929445628024121433436482095984578385337238539698934277935219986006773292234615344685135066972705705464578989167630679694167723653886954768637102307405049728846806209107232686357957995812021683111321743037777815780069797017119441685297533544326805219473729382771499161480028966079044683747246366061232879695352456114077432673693447950995509408692081280204048832712092361496796262501518761039036910761442126608066615748161728485386575880851707897537598592392159821751059422754695236427089533855135918175828086553318919228038390300521666027642611403395610900264487710318239518674863908127325955065162516125122203564781554468907552294953585151685849474250540202828753669761947216647460628487259053948259113982326454001170447961549749782038222023504542931780568565506250545248457357019167355541894634746625988817797304324601174684747961016167871636531229129316809082676011694447918200926634074602021989279018634970678978015259020127307537828125234440536869363323000357937329167281954498747794486574296383688347711625922174849849346181432141081141874465976153291421016874618871294552047441716213523884083136749621224793289977614876576030740403529159083661678397541194749527520528168825067419353362817177356134044224874991827308649581862789663098942502929089824299869469402135881668596471264311795345000718480966456250662125404587622172433541100303535352620659330027743676964062360419136845747243355021772895464117886627612518738474180789983031796896541988879736814809294118409614134210910563728837432469411863668389057734523372822597591864978629275899689104824410062854965992148804946081400384505336938943002162111792644238295411605986135472906219355351245240204752118352317134244557920997778556561778974935126528954560113418637949165101703799753870874981622068897775995299800930223175436185044326443443678267358146337131694982509009875271432570590210497419658185919741287443560790943465950905634655700431050593932534773202701387833491034076190030972982459860418939715488696182908003545565270037264942933018648401131397925022114927875771847654692606147455554126046068715946273920137997867458693828139187676566432205746702750844816027012865477356959850217672367976895296610082617338783335668441016294284555055139268423758738184519948293413857489382092520292945467300081006554958494981544975120378991477190093181202921541966087655561350834120239715599147067801503919917597614464452417990765005904989668539543603823031313011771658674443255989700875034051546885205926849384707078826365327062306663182195267673875413136058045646772232386317158769581424129887527763298942666162262548242215946880838334506414457363763169605599662367429038358710414825603661144228968047200722973871537845908298372133497284214656564431032425703115966498507504579493182795407528136587144127347923811225493503505741990568408835087993587317633016176424744896631720905776516841145047035018416908254436737739915452186272065225670975961985191752798982212257595292147980716053719780023122781023516461558828157835069056784451655563014537138140672405336314722699747604751465468219202011056541617234480145331212777522654637644617750549742973346499027834067847451834089134960450087018979200783453798863708724066202065000567331775194949567445544635375880439808500862600452511440118472369821773165522004438253483341603823552318755191342746533495049718787420104525458569685208511776946418611676021462308937508098803524616045272541271374078517225547988727031156398839246729652602225868325624571305183225493689002362050399835842531740761700383528653993674741628656756742514142482707885556599300747987336355394206759803167516240026587279586317885640197563719965023788771517855063198511661258491937929138740233667441648695335216160979273535981886569312435621950525896823627267929831766134894221024835242146133102112306650463040832590902898915829498256429319428417270963552119722428465516812641574992801011611067806555788269824831232769418360405805489274049877941270658834760622736923301322821840981695077679445413712560759090567582074940359415417825304883416665605981029128517800265005910473537361659140412768850295764056430449972958821133926951156571605839006508277201970467218006598159947976878753624253857606897155151606602712967335072530280018424884720268958183552749543368859908499750187770813207433289060196295850336519451158480565872626744375076338879976775783139813288427910182516078530289139132719549846827835818750961126963664735290692492082282022928905226351935978842624162504797557486015257664361378481939916777287868262428203621586545909753289565074813166971133650711722925394519817723144596184357866160338986088546347878969643538844081461956760298850405503471821827892310869623206921666115056685487314118459327470808888780606949410570478058425576908120576123733655230793807210251869049371134842375396750850442082924473484961006271394780195474276146588401310198349131580911648487911319051041608068000614762722104140744241100332861402601570619076688597545190334553584174005537870287768976549673389778915613676346833577134227820128451868922352023012164067244295596027538445147776689945370211064478022240211696092380243075258273904440663057937601204730904796004910767414020802807584076090722171016387837619705312489442522617631226229637055746377747870702965198840515606851503702313651073731706221263087659626867899375958709863794083072453974132453881630130965806541611953495575759363189158078731193199590869220848430456793428257048321968488472842108633713085295164939627584143276633024919415129583218628612322155634997910511056164778232869743743602800007478322076379980043689884162799170831486633875681206259871606685628180700184756045455224193018366113286158441263691637657687785859893901305117396725693618809921814975537408433614341517070451495937992367428401948722905758422517283811638720622051880747757063529295419663974608597935996764326965871812273830666981777849067066187799788263608179527971352245147888541572976988544598663240648610470983746604958314094478528969669662294658439005225498074089760551531422694724531915972913575773446553067407912977602502301035515072169799354363709034014431819793140727318261304101924040048503756092083881625007147660974638846055870165177229245587585934278133212500741436731769411419669199674953772727678047376317038457267964070677899446322257515733391424514484233099883366415759856009682756696266235715713657422957043841840312093122720181169580693846836718205647934865341448617077526445079822780633003586519322906034608469847662984697196359063599694125218007409700770872462527325339048109435227371673590168348893873084614855262530972914907169570739329868272895448836504744241628965658933482713234588872906914796801589647602056175798623070874520529705224669756662923773340595468379585619641843147160826585124912917054205354405682492340532981422704601144741334279359655994659742278286592810493891671266206277359528027407595969337258690638393641926879378299771571466506154258654793154120295859931015928788685873794728315374813309506076631666488871583177516438756794398073328156190782533365774010365546630990690488005770480621162396868750640969638244340282219907772947092447316881879031775968868948640784848940999666616858397211139461917353542141594773962161129669165717463200982715353363345383334730547089712963049920436353657054234748660688761082722328090096604444779632763765098464437779577255424531629048776319272817830493263134354454348006318599766380024797649496430546399255024894934412044678052339972912165886098078069004317600548489240215450341734856082516554922434415033917013317071337667020703370347063601760288020954168776656038168346287473554757873147763056624916793003156951126935546677052465806809105335972773263113246995177411526322841409612590752452603781474796880130609738544884280020535947205044472067157461840872155453038873856327077641761109724879664209741688112595935607305047020228156049770406330421092664971488434063301827369360492964649303104957065886356142448496076195728728145996256947049712486129329596488037260386193330880460686568802015869458530144619143219379653406207052484655100302681740605525863169109932977727464488526860478520629463990951500120149839885993829963175083575530262940254197002979322740274835110417267884711301448022749518091719248422378490509407433187481700229227379960773868943252493814265631915443157200261790996893172582862606452669439240570340898949366228038600430560367416965641164510811793792425974487261725528980296664774327567058502924701253289600279145710402167353543491942642894697769502703901646826279855683474054091531511653057247820446316424812074561615053374034745165175176846929209689216982135915084803216352468726709008897542394325877038711966411243829885721290355438044094397919781413440825349064549542407075724179686115572424472712692622615083923101812943104571152222823059367871457531354766791392770349442605510717852251700884607661237659382574931396150066848245545934210345372636428259552602489664187164939571301027607403512563064573008027130480171471243724815715907918915145607718043174851188913668525983063341758153551000763029363779685484292510686965546657645460558850086496229620128059996165833104881215748494190548879777726439316037200858047069122428910209414573516813567413030867590732664508383679315667555130203534636711066999920780246881865152487216739835973044206877306603746431160230365068816421909259033135891600946118308747722606108286369971199026305751718244761216887513508810481946875205079472793040277048715026659987893437538705548486688275095803777297745334332900271846795474482753005215234682820348052639365918287971102254193322578835937052993712699169396970203715155030240926808496621549638142262743534137329546409771575520700120310627301668989078341429129246967240976813483722040088100253498655998625251325200659176573906520651080132714534394126932190609125899574509568170883391183835069200769920402209646038028462182074971155855951686674635056064665384361301300301073961831790181326197328943366799839209307829281575681849251807396225924295891310774407421752824335487831780966739991044946401489938942237966151447688330601354962383805521900529596870990495672309447591604761259919713147016049176934788701733716872171141869421363019845664137089801310124383538642113609474838870151958976171918389379646404740894596220686574732241138643793006411425737253835169715130740606641376618695803105635879650406126295923576646292423150656301937323096506184127752103999778280181058775249084139895189607657575115605717068362176932257832227769073690032430113722086805004679328947535241621223646311676895470329886645419058055266977662684879665341525885683133507912120054360660224244347265833605305858609030174726280535082586574119849379030452714549407503894464989772172248344464829731306548794824349501204744578914947807673743537096942733759698361718333953715409466686140155523697628340469500317026070939860692458721684031104168136187285613963339014411637496096009284719976750863722062096078949949175605614552038508982108336896127799543535164066220756130261137700843238204722908324695720636730017344755593747862894675198420181067691810335215608264359786580726961122933266515859551141997840427135421296368521737909924692623911821987292131387033531137836519450227941636638318123668364290440153783289264189101626650956127464998721842496189404070709926556760871681924190474922055157280447157087768757384001378106339099334302095333282173253961682813342577607499263294945903805258226501583028134455256723565865447565158727293035812585078803106779237596507380849765321762876426825472206584927378815760422371332123694260882124983048792909431202450483863497944312016304094587012403844922498012647072623427471690554786281805099170518441272671206863044620533157605011754989682956042953505259383871680200726358500489102125533247382761007206521523213901165918671138415341802222859460796360122707207607782103479618672349759765585139469083401499972690603035730330854251550305810390501245924964060220263539493116659303648280328553772773069719861187603950554925128755322856217690876897308326082721308067119544033977332870792304310813483401923189469208281990990687234761389576155023156077873953804551097739059828113734798803723333588368178623177957492532806233539776450545968741289054543186504025532537504243698402689657832369718918832100284810433237846767395131828713221256107594632286729106906497186282335420743401390285034288705320937248064069773583901617103900423089495371498213497745049728992692902071400192597941484969331757973869130223365339862300765055906597639602211567360107537442941348771439563532811588873288963292316561866661598721412599737227702073261556462724419525727995107077215222783427130033349407923059877148197833255747801136352368582983303033506139809492806271452088727408844273809232980515253872724734691442578401773273504693280775156117964512013659629456799614322835299197336995113909981873927278651045198400653046387810621047470480285959557407284348310982878477025998900553602014385276321321737183633146332515145410570461810649571886066543097667297849627563129260449004333172083648631145353308789423964879090336198919067082756364350529702190037897777420155622161536214987810118960128114154720733635178439116381264116036849887975615742407697850396104888043319460175363846392374150626629174888618007981939552467492239456827138271423896818267530864297674134056730586665372632376757806499191009303037729679255680975089996117877749666431573688684668263579211141349312147587768392393063349638078184420614269661026562078091556352590614947733580519168264112250257998446517776753627431545199907776743670412092680082556393812538940778880951240633293536704553069677166762515434667425661973976823964871215504754223634404655188919775685312392372786443785735243199574997466755936074973859753161530585620271911869724354391509498504322668205498529874037191166418492904577479486095419574910355661447496035394272676774486805557957406156543064742814410626745899985188570959631787158310905897158444576724888809995508989208636341556443763430002986877064640984303025811339135198788179728484541047067077221881887514181813965485811730249805326179714868600123891474884224837833038857777091992066948646744409478416893197774050640312946475105443278222927413139872430820410872659532647285960309520922859132645934809576515593101198610194549905261660582817289744529939728413119897810552123100522520985939439483833966968398881657277745904471037195350234107603356696010568168818977034018205188476320619353922883833988223410292649844216223459805062266334024345003833886386225293055931542437912163551688805008246297825692319843988176898750691228344416692498624312865690089999982504179738256668843820532627673033578014952436583153567373549994414792471759441882094760362144747115852490113156776598760034945402903380525605963212914501790295729197307033467211859269624241542679235284807197477239091881724999828976303665660390724210860963839266710828785236923172742728380286330184302340161813400388551476882321016830722311691766575554707793927462712086904292288476429382770484010628354467589767727583811373133114235777442420574408621135469255629061322917640294936849831226758226883034956194722139835164438532602305265607679111360628995921103783834319659777284698894725912362027279633140621893347951450248663634601868383703157832827375184225606577631102496484467262007435735748426170427867221288784518299150417518798990840387754189521214980243100707307354954665403186562403445449344122218117197742943579669183556707768037628596831540736854004925757949446285262970786377769293623671406517976150719530750288273384354117694465473389917722935498008152668695980859071471878687107334562603923646419723401529689076881918483494249900086115781165307627915718585231865375162584191694264093247202658928213738630192352215114493826748950164246438944922764585390476152665493582001164665757591577729579866934574934500052076876950227790514631674568366367495844721858004397338334797182552521649392083959352642066554753735613757951228583850646936049936865476523785102439031715587180254991951232582736298583432261493510212856980980075377873689258493175720644975033367060955148906641119336212876175759502579542941620265359746222192133118692672991905190924706672252401374119433381898736539312519792845141881893802988459199360863035596118749576162991587801309391263244366246065782676381561162091406960377582036732639930035431013966528735964999821877565947088365505595426926192486874602041196103804802384038338915137899324382495052552387386594501974097196270947723666956252012546767738886260570818085913937107884344218600173335442485995156892265192595822997103497137960462904104388573952772628296596205858240221059953357332768294645456609563235524197918496591289414599026133499008815432983469606535315712689908367428430450393955808436427317892224356329768337731487185930180824697573309977082438820233456713981724509299100954509159318331794635963832384841159184212946384038227311029473856388646867223094191747382563914412912782212963103672324399002713332511216357597182107994864849251460348321229595812310275498365999578451508439105398335492902197939942355810212390962805731642026953341838021924617565433242344380441035565401196202366505386871340497573549497408397337233076183717360445931513938688525356131049039229860534840378589262144916005470760080030164608047864684077282005382280764008707175129551927064427691750635730833121520891533538568461089877430861343871222016123869187170984664413187949685481336373326296776931017941837218533549106970830484817332942226890456987836460692938805855246734846481387514501970134034435232691531717404708987694394369956466501169181679225076309687111785880218590929248033589508631030965276432348604826195967045044888036753973678711214559732663475762509962211035317591419956159150190693770592990425050115572004529039741572488796375960319822891844877153359902265279691966626616325441486446151295877844864283909751099783122527327545200621279831440169824051730400835199306034190265091544267002965136885076334419598420036910413256865182516101475086171099498627439941361291376246405000211702053686695125933429330081567434379269434062266262215498325443732364591547584672495978501582657755503087806991539968296334523712190857871932208215948730043489691305911071524068376006489132612106271495770525721333670101998537057727754751693541629043206457143137728627600089996993434823832216913254862803399031959084848402636596694916061549210760339646678934242823246112730567931712066971039084281261544924023817274459518579545763040271595997250918250416560857342578172553611617629454295087206138927194778730268795411934149130391614720679318452789752124206913412555151399268678634124120975512103788553935115029752755994830861393767693325070832027504340485826663188658176265155156152472585436250265161498495557014518868108850220196790285513850595138254825390397755745663463883632176037802360935504125916470271376400552418585503211680231705053244486567145210103025539187796731884510017753368069382553184439635683695598163617770075812653257994087623014244597973812166337242754309158315166616275710036579534615467676131013064955125122869256557657035055179156861339783345024117235176915001867645501587816707239999072912357457627353672212890716471975876212172347434234317404683344807813087462748501663392091331208567176073181114360953572630189094798395516970582410878704553518341273700455300902127163269977775773881078222582536541003621298289935097885209217282357985522636912663786982311007855726081723860568297815609291213309027671248172760795442289875558747454479118360950954238323682225543171856033017867798449893493228183884953055592054381415061693116530906163625920474906699506823712135280353336628390302163535858885341491375049582323495755730471174955818033806915478073123031742658293913672692482657949124203037732356521570193342989778946046249735159133876532348057596634983900586551821391189841851835584502165591071747459518650768370579962433975032741175580848027937129376142109356294900696333266602175701360600250587100357077868387215355683698821788078997370774038563765684541281906044385819796576988198342670674125221834623064298575514109983452537928042823721720639538022006678484586537644802055048894554152069872845280128928752119311512216124641268544154934140569566381164950687179504050287662334743406857184768427788962291383082562171289908356822726431102631597555300932537450716652190453012897596186837254267914356915241823850719184450830196360462755482505419844527173897715652241061343063613727595476609964970665058792414411580989524236942313710622846881202969447086425379178621759698674454060325776968441838911297682735090607887698549643565587612677961421257037096732349631340050084812157427254193596227320526776480075152571526866615434798181637153380207593618700920411518153188552436849410819540793446731645237037025682464369333664445374689238592167478077836836984866781009926665402345490147654460558937744992404356910829148888994050766761302120004897764158360958772437170173556847836725450632786284341940608437020299113707791778070923563817447298493596935718926163641953826747780218854918850395902560760773196965127229462607468986604912903312750634521526172413369269311580637663346237545317542164362939824576507664253862165389174291074420324662250135890609860831595894007166274801039002486493244253686907279632308087116114772359701496021501683812029950410072528706069236481899033582703182162832189915326456760500154344082629498123730269180573736519359146953080742247825493190846941152421330738090689155541552368884566232398914581960314590932246479105891366053405094786782029138924798288412442981732998883332917386340916375384137684981750606731586928966158205607388915087774071510361525600605732630394101424471647006772633605509919201611185189158967090404200345252767595154322126920066819510855393147162488050933507004975190911493533647892479345089125963811046747573315882753502755143453784530470288337290117123962298050901670844066920135755933704972320088122949892864947296310864297486544362802223792225002117474304789391185558352027587279252746444727783273578022904888844557182685839813763110591628325722997440653279860335033647815986437843005386227967783863868341394527003752104738304251911015448524075311909080470961261886652279099007579917033095504696409919087400385513885105722978843945186720072117415860299328841249455632297848714184695795591858817881398428126525441252920949563581992437402462765836506446487865789739819926195360102659553379044718986338470803938026937197420956910720563573809344095762283218990855491465933045580013285993979695413624391511374096499748427574604324042351747964102595501861656378640407199216792545645861963546568844147446492001414642294039178539211268161938831934437862277010184947789658037764656756861927693005842070239701269543039028482677659224315628105772209919103202068358930345383198815303731133061115138580251970157374096664469801236359466358166871835717622654287199614144584602164968805199496174485660694260697616404894686281625748785300069554199872103186122273986295142168632732943297356743934183616230466808290602824615050128346853696454799836083346552556091103528515353524067747056685185879599527135326463316509802683671649606042774997670555738375268514907663120225272199103168521561558072656053921099177135331187646846559674887526027691807820283723153697184534764903115107780010434456938231752170779759027874419865108707456227373846862841450200554159233126051264309505465790039821709634275128363366607602255999329965777790083282413033369724576797218601891322923968598070600971071639838190019677320856607404815226840935829773626201755412588452771146506909562520662827762066423166977882200112434774023214346779426981039530887135324768263315397696849818066690675258576082455941582421351851920309477972750782906616422871969357439588021448441959195772541727589560683028417858589523516511502475622782921863080840381301073827440882069959423503754932762832339474780605727896744388104851564495084180158975531254530255999660762812979935027326157852433054635254511473647213376309498399640093893690181491988071234705097798763116022811379700873282131404797921347748559238131201640839626556108119027857882390444084063777532292882853392616840544638034687808774987612048513936739457878374147223027487645804583891057968149811509129979165391959357705409206591751015396124576002810759218342761245502941268939132987371403716616116247046036935087421790197960234863590387943164386793169792424123808783172872573809459685131288444661689214375435371124579853496566244070640051473449700144343679891971573640622296771370392083838694543436348628812731809839497684179189724856777106418608719224228643691774493071528231764636985721977081012509725378631283834901815013290649914241681990807474971931018810000302915093543505587639327785718391050133867126665630416580345961000508608282958651250711982358611355175467372571504871779118880853118327933835985258447873928546746760354263603075431159878283381561613172128952507082553437354563648016050796054812465640549350143746072725606198532101361559244482251510940089900627322948397692951489482926178200844159138383793008542359584766923380559941589342709955368416517321143246399151519756926998182294133795035325841931063935777824818005375611510003510917734484043879382497060211632700255979658512584859600342390550890118391711673407305671113797318705938217688724406638451702719779500313385763162561037104690248789684354745545900962784504459110983890137620195494510711099928985233652333854322137293632392460801736008537581057043271608276845060265081350230219686186079296192231999091471317882017841392157909179397516047708201653484628940539340635249502121132476898579749598372432487163675875823952816816804298188276389982118906341572113376548686305129982751028499681892227065029037718189497482158965237819837836541934271564570143147174861783082741105912129741539304802012632524488559987278316249576223035424383516623232311853794922691575870963172456730104631855739728063857532771954572972756720651692469345410541356606851842516984900853575765994665062643922169230698510847954435614740427205992577071881786770298472126025407771414079746136930122289041187875719657042865463726831768394652024494029211940098293467726903812760346024678168555701755749762901683717298570313685023532319849188464312631224308442622183594669969295658068005782565913186917759103011748722562927685815030565254672054104894475652783742326558223770692392362440766007052690204443067404673674839868485820626410425496687202146838632627244434527602542063482528594407072533827769321657124754933946886056934432895732186625070761040475239848446083966969526036751737903747713359083625978857462973073409351106307925658435342471599190416150355930197080779431383950216477866250957787345208829588642061377119210782659133861314013773313159173131157973566413486076530273296417100933928792372162245026799741139033086801531922639676732005185739410230078896110285265977631458331075934350142915673978591349126419545871166567887877354279885266851560856220591403789661958997134909878407266674865118722982868436056716032680958003158329443729286748524021249907019183602757680273498551827120133676975769766881905403426742157937574312191509445106551527585026109456939357220919993173450113313238493866878880586952029790172582176068302516638219283544368377500660360458222460812221574391358885338111187150420863807189756942594187567296111003407852747544019219407572099529332037794423087261888339113674061862397407287649608026633248846084785574579217906144055831352818474127464469360982173135155309072348908467025023127945517029518752628393942838386931475093139150011150065185906653988669468559552001672740838076592146812430138468263231482458269692876109461132860939571459136336507968122404157366875382002066127550797884914385925907724381382804364959046057451440325592569367662515213522682217281924095210420787721641784243091642889429519720175211995295336111463407508827550965814628525376131472108580638420239906811814216627717299098071159652160927363789836281931732482819953435183108275522727392249528945039272907991234878978721560286056448670496754317415000390443943751599911709861901781471423178930243407653137567103441613482634213358041985688855540261557408945776374722855734016061299952693463238132073361443733119849039897502021340548935240011646087412860066405024918242837078667632022365590657909554962159707566864924419182607179553974341096311247484356926871604195814105338909177609713041715544291764940119928864822232671535483716455820519683494771791336078232246961557253937497233885214988781345478356293293810368029083916778489574133804174436547733044606097470260207065566455503797504332713003343841174265265391904312646283756091499100434846108993581529792218455098087785732101601590766082594216045827712433446278579925002518118126617673861610825970714732587759496631267799956834445662626548916208162555678727441014593463005219675695525933565404143408585209438765064896268514505817248507809439855716227966069345366193535569950264190140911242702600178913661307411564225337044215894235617641331988718172052876983128814874675291118892271391998174088630203218227933241585519277390586165870259596032973721779154070114347248570828767376677516372415142938406267778521727553403214058289392959244995418552875870971868692405043156039619860369628253187765589170255264936185854841224495094621075015750010302028826091516909206623181131294348784988397604806836082802401673548238904189575215117216468572094306568584759343004970911858476216162514177484642393878891297725800620001863537168706495194388652475602149473678884422975533968675080975826562857615404388074701626018081427855967618888818515027760965281230236602736797322769888446458219706884777918107834101527839920219978338352735225322624694595163528303821788078781143835497704626195868998472592333907577762027236404774747855536330496333266863169513365749100098478289173528877861067428796761299011359397371040705370658113504980438369419175999331896548140679796857395666869186832265181022646246428826788199050364842336464933749328640555781235515856939990816175913642891696896672717126804625179141965570093628806261897661111737272017998812772675710415980528125891066672804293711582913160708837303168736978553861598146026962604688125955467213499477415006357279850095877347919085561161103091357704327645676907484542414348756661973943112407198010512897393573859453579412468406639389753496736226800153620744623907868429362472756043795331161176808096759694308305767927775378655254831283897459853120551919959873483688842017341022659523517149017130385395801924669680180503098933152607898188740214528155719114734519431353942125467132526226465297993704448223961931958812968391107773096538180834594954421747061158227917908366651455298711542729956618437983992641068305750956293818169364603086117003803309745608709098914615653708099250863251615138878131459530265801474530100942544549897747687864671563043927084697966249665284922564406321108322330880255488112542971450336617264219107816325572955332353702885598365088148761750088469806403447041130480566655049757985203167923407789394899433252257598629204981657292639416840891902636801490565682884331849003427783400550347071613943822825740532001547555195458288568190080848853297768295163609071942051407074237306377456171059614531281055552683823023060584164572138438584808753953614957055710830317009390012761154931367316393305697803508752760330736274087545770841625346389472634293466677550546338295566222631179243869369125742487735247214173450369141031493918636461957800021813429485655831851993417198912015561469784890255234249405324352689101158071411378070576962241418847954703267132683990084966506230212969274358584798223149657976183289308128766081039563803825993624749851350486355583280794710611250489262565782180410203164909982533695593019337903715929301520169714951527069768502808508385247190182253951033607326859645262399761725751258458957721028697828926625095844625760926693656667194273645500016141739934889998275118390956949418112149501213904811069823302062783769373244926415717529639080097558114551642374148802358721626464298160878204160858244210868622532860150162425345040421519989025235318035329270823933814240127025346945064325568917501876619995589601547897495137712398837460263168748405009474770688573991724366066990945695232052062636119675196920339858116337411166482176418673490525725675259060558463066193761034582630290330373313501920249705608332951129275305012959729114528966966943490654210368136373170647594716297482935233972968073109653116815369556482581020283768444298666905675494935741172153290625131058063878634153654749178379843629888997408019794825696369975401172197641205347801080016391502105896143460183653397529568321131894163288073557249604559911916282192989466296018252270685256022735389344957239395971296192635548867125383384574947931751724290487362784322671194416921390769949590466767898551117090958840698822872940174664200918730544398532957364866072698764106833628885792638196323337810394677883111206800435351188571914497736538884796801845215212703752158094344193016079140537180267063905645569874490927096095192661157900301879855355426556959548136012892191451296308360320252186940791679302297897169023374816351723674035103842474024258634755853379774137142541397514647720661582672993676630818039486802226750284948211185083338765896347245242277029693211537431298623638965664618542759118863976789719977589071766203963508300889205263333658123106830071170282507594594889428050049542800276698326976494336846608467689043093748557830808795775305522217797669378505855035215081524195774306963187832733225882694360566829298325005002258985940066002153520427620185195428577100697637187607596311074859204605486754467884208369623623339594021809364507303396516351401662396156865284022358327012169549618847501561937831067426718989921225135573019177002494823034952690670609878617311964532497289836988705340194575781976320594791652068328638764339661403322214539412791902830787955244809724271684623611834073444392419282056492108219250656619427327972917569487300028401264457456890645497704927988764622804730870452893435791799397585332040795175513690210727805418960328592186589799817213261885218363287913602423722219038789196521335642982558324169674354631056042744211295874659165976466031669972074622742562584426249888605505562712439556751029851799829940885904810339795950647875414089266216926106792345872101090774804565316848715386102863430874683416795688228019100922811095883465920951666174802734177273821782781786092749404737618542975478957262786078729904872459183827393430999429159269855091326200089968097350411915799298471405842752150243877592763600681347256032582214250285906879187888974233159851996969385107201638132297470110467321954036620907517244839397633189057008196202977450984940169502617746789084662695967012124392435977686079381982374395070933669351203923770243919506115969866561612206398444394811804282608026374126664839067259466779733517818078914947747810439997354409618095016309427325252864093263326882722241047827258367798231958091747471774799851400604840867255668993682567407663338269831500543451165675042736261620327755733213432997384557891719966449180569648540434818316053189487657050505060309136602532890808697775440497756569212369666379448791860277222486938915465466386282320868918293953109611003795530938926594103112649756337167290132308751122688425324445254875520365328996910260418963298459670902101893313668675932387738260533812601507231200050262854609068942453495288303667542208445365024937591163906072958481019841488795400988673655355220790993643514350830429980018918692847576491867451225213549996615053120049667156589577030686142805759998550561782139546976903275851918630673347826255307192405025911874113927938221004290047247924714339484836971774349189470674802237559213052238872808516065550819756464331096459037400939185036388727305763547591111883939872748116389884417502917758283807804965435873397691998730815798665918074565156472583602787597027649633287319224561392985072020843445611770415786391561701082451540028325967175542329279684304282936028228741669424871840445921547897072950290037031137637811361570794394410865729879738670282070316334392829111424030598476537325712723799485766612282496526434800923804475095339878348225773577166611462725893516520559236400744244533762191590630743628394261562534454277984722198615515646468256119586632529151964692418252088376100794672897903809942892361646892022752099775094632957637761843881005922436685632181780897778997087987291784445512965473291972389017014592860825518716688242943644468746270724395318587226272608006503067415512567005455565488442609415792551300896725044378757736452377829037011688991402371335065327443443356847698547812697848732958903294001696387048914816367949879969541444993434401350517621564633456159816624112413867061664672769426990057513778265785634359039797796839128289812682067621539144096258558790888762587738704026263312830267210233240569358351743088274670591547932374417813286488476851403276280688271715974743193443500579715277326248511608062338369913568189070641808149050451768042267759589089710573129718200736559546776882064324613005052077312084122636727454804518138961092647201648311122412534341258927992046252981633524609838672768596570036067881314119464818000990667293580265308727999464389685656296421315282359492141847751436813205702212744621853408489132826385675331290881316239272891125003104590976842860794931214390736297063365781016909648348810347764235687862164317758264354789835891826773600605284788825686308420653063577514192668546658212984959908970863947761809404221438004594376427900567217614698187430075741216407004501356868421484192356768492007317314371537901887070854140990472166536103157587432330001853640993132387125895176023801228414599530410446481438837375167153887463148098172516968020834542891093240833606552771737898014824769680329131595353007314878732698889121168650551621985207175818229942377679822795278512212979470482061193354649492367211969629684736515854933747818477049644525943472149687033541198434385807052041654592827756596106693258030498522741297084520510865076192160793034044257680454717262808761250638979719081999900067782954249151183474552168385012861705842744225569681879279077643370371120874929160184225906411227298299370208602790256340060185509494628444316300776795627508867548195254069749605964143239419442363656974080412846239394460901849903327128600096382130031223381422800429654441193610146296603148017481083623533186729545917178153470016363814656644093001224061754153781031071651184663722694679522656448074175378191464926356664700809456344459263097403550362653200557625808249159487697786119450139527633340651650085210142745628412914769829411507705592091639775445980151039493446771945669704447786085261607730185825713603877466453541365942811791773149130678837892789695598477392457634431704758069700491438136495543191392490600641406345831629926481292671347603337733832040086769498452042878663471050471511379855379276720297226340296959842442014838655230385219314112008621732752902813615012554390235859012946617234890630679521969830664668452148241678291179627868280875572169301716890014974663764278283444810241610621436592540118575641509831445721332821698568728686414553296041628674185744776088308016019683626614737621165825450267943555757657985404059263585970860846116945752093553014224859750335400064668179628718015520913070053316418934390731169817700549243411186560346870233097233242273607452080502589754838207311744513747630209202465387452404473001233745687050886103607925378268253822753149762822833798707083519120060924017936333964539453277272600996418405740718249733687247743416261169203355734376584987998826594034962120197057764134701170657922259560531186626404718035760414890836568392460799659521060523767631982167201220970651177959235774936134046091868571266141876777787861649534172407385264757677107596772101352143285329588043999006362689949889668003165733608040472117028373124563552931372508799807168608031029723174859486631117942991588512401906857021325968267894205674779099101506049510522822536731145789378839113638574900710051552376021487708320433048385264412467464543558956206716914095333431122504967002582319798312876838534268560073639381588321715749534608737356804383335586256861081926840134720358855760163775620375298071286310637934343588066450992312458284409301647582407820450497492801187817752360921957458942677549130355364648822248794548921378849027313400781527840529296148810745484094492629973335950645991547249102965423191978766545754398836373527163442975169688287066491317313927413884659887357575605718896748667071365392120480657831270836817749202240874998439310856344573350206128055365909509140602818729781584947087200433165076131982894616756849531335862972894974816200069342456389538648197453286412159566887255635874527534893871792105549765909317579613358603910298507314877158183902878989292777064714330168143066533317190000697753818174032969186030236321832579738502634136042021686587697198251203392405681990765153013990693883768828010973089505983926890703012503278284479849152481189303275591209645891503316548980554199079982693088627434346369605927453295811763340398206162935933737766006685049970763909276417436749792087207062751322143490114395037103410144890206023835024559277255991034493313939060054718297833980590593164743643013014577643600430823297473437565423346072682193919380543599675354374598387796403938097185187181012942400600141689142495005637377732324170691873669418549142619485582214102856316835689245241381963502189138382863646426576535297861357981229075939130204781676933566404613428496900926941983582456945327540223057272374951932816152460972437490282271676612267099702971637642762256623228408043650606099584020283075101778047897351687981610772817010050008929490839008680992741783734541408572685830761682735127755474253647430591696665583420531583880030393381621034250866604970795469741467389278713794130959092861529435994087442779331706976964783200995857520279166556223587442255833428002825903656572727422864694932585962835919131155146012424904832940379774343681607723560633030881008537207506642983312693753240906712815747254348976448851386067113214111858648132766643580780817079162345328783556933678436652395195933281456789393251130144350524806494562022109590546626750086203790424843191361041647927739009211455068809473661935851229422356472375444746588109378691643034309353853146062405389851824728724168992037304125453904240464498842767042149099074329756150230856180338608243718318992888492477323649724906967509308027673203395723916793313032379039031706555587665790622506383426835296808112477814836917066698734103080874315769462928977460764497312873365733677684121628687185803248595276422165211058987019645336175689228774855530875631682241042283208027377015313904510580259759597695243482290314677462221011465658326883942297029643557109340774575942348619469681496335850389203054370728939042547500160450356714643162535921671215391936440939230857017882261060456370789439940683051711067003654243592590706977176661885773960114824931695971047096702988737254816732004421567774805007425200727960943751361420396342102922422609408143020228598754208698121949750862533745230184341109918543071226340191229680922223346999927406712345877873162583758479391249106392549068809623271007348636361534202746581115296312195566677478577617271693328801413789150691960280841044608793614699444055373571812625836197365945210888418997204401338582298368731526846562660436959104935662477991933367869470568152119395232138006709927171446911486450460781610078800851525904698557036279137593073201917134707315974917912769226785433845927542682929557368514961173763937733529399770122248743310760948049671577337710952526794068927244721637394928835842017769459043325985602767113906783037010335597006305739834758763898823347306316777094928520996682768577980234113437187302960785293223550556303253347014295977870741626076159146047427909835340957973947656962675608082078094808030858257895676321019129147642335548320211159998134482596275087370524900928787077055456772713649171403483299807827760030243327531371030597844992972134292277453059979446922567481533223470656466291511238445318283471649042361096279770309977674434873264494694225825040240170421452045016820771957260048627014844805800441452126700685733725059907035488008053235864410222050634273880279959001122759723773107289244091843442816283184965350765512729481886116317267093386309368337353554477810898194763652126749343676778389723812178298104731705876247798887415349064182359937749461258366261416173830364235387642781893395932373387216094349350057682715252756864431258774410042698959800050344078421299571990809810091614509763760421992007629578651212713164663710245712940559517225772065995468979279070239976726448715909397028665573751221545235280265197435659519540338600707490791971771204871484535697505894786249276487256813331411060981997208312759987889659110841746667547611650533713485284281688004141209512407030915883739129868615839845764502673904225329594558495001763264462156393527332973430330314298072968992808109464617817551388511468980229936805970984623148638798299799364444985920792042140534216063998004541609060989213592110450466020409164382562835480858380912233909371664467303292593384294066507712261035582812332980167474812942592486954206851000800743935489310669727425395552125977816398094686656856010234433154013449286391835303952274705602360827591308034093769425182522259621117437567070391000010764471556338414104427718593944546858380113342914325403998802873604664645967488007596398697751401615291380485936979618484662247396279340022606006180670320849437221637498802933852587802439138382325268521197811089629938818579299373115168770355327973519091530233434373056847602968045105544948794390010304377913809908745878560842396502557613011614361968585607694821000771059761566710032779069967107530497736261008928471829942213354319972839711764333886207837945749430459175313331199728030214494708895455804909871588544627254128495883428762014071963630567835050710468824424732977207949183648180694136675823618212387569922150840517492096982239932978894114578839375183306466379072277267849490060751591495157711478572612677195015808372200454022377702969409893298084877611091737733539327407647570478477654936370440178139523066666176309419286981328661507393735551813492160529100399015959264663412442435813391864416810868283031808339151188098498356901662452126256008341262502172243402732623580046993061859318835649920611925903348427726006366945963115279270050345569826084832582744757283518926770051191678771913256964811637213287452859794321817053589279255430719131739218434262904158043446841448440649228857557198575435055043853161422158085029089097116999491561724630619831952687756796805745881364300333808181484950855690776515750719247449733065336843323972073128818999440750222962546922955044276411515299659774118523476990424621527725376067942732721278954290760519410833844108917258668164512069729437279173143591748271373387782259213194687964278022210248288518560517088007303499949990865634285952335968139553737354434458838721335821116118041568258118569932085424068112483491171807859487191406759277185708541948163677746589201284443409581543820740095386726377945756007626041527862293481591966084638252394008124384153738084342331283118875071835110857391193396771784295732245106417842875353713169482341490368149415064714800200555968638738201287697554672248912550527862930530117777866058068276815341734193522248721358519254878174596255351353784498251120462234598703434023357315948666568033733831657165312191137303365640272248972014806236212706267384402108068277412025822409417887431367344654689369757891853366785864911552933617659788359197596675509965001723735461740591719783105885394369221719356883933683273920053097642827315405027780336364948543520375930735477310406917091626382626974451951164407203701784456132053246577533446142889222274628969101608312270647252379252358468027802101040987977758289090518980091469145697639328685458555270014193895243679492958548330070184851673461161371535453257952026503307275164106937172200335797081834711147951688280807017904578672693628009583842648511480443456931644158307793443319447670862251435408499575558568093753841719755721357043784557269455570683522200125253427005712530783885096956791742461960430654792026644741725107512428812136836164044684132701037589805231726367442536595353778653241488396216055428484994690756407359716744122968535560426109509407719556595792010851515377415454860836418330505194175881372411435548375189777437275068613495095249434921607953106818666190136489651637938580692903073950153975729766674444008543288558916162852396762187771861679379232847513383950513467363146885023756741086547717566044601116113849316246970593851717604673471489613363444032442082248442706150995928656760364262726323963166335793527681395688208646630513247719055472374897913582390539777725989176235985057019048212973060919042461543793847001624483894998939797241437140944895503711797450602636275643575465435032151792399219218968657542642299097950687031012515091916391545753047102326942809652719818189198103084744525628360394582424672251692887557911935272574802102495806005793846712454881979970198792378838771812525360440429253260491976244103304954901857562473746357721368088482640699027789670848079425017747235283373756053926643875758371575745759799714689360874839576964979865297775720283110523155384252855129259361374089436517149687828370574185310557044494082453121063619128149994453882804665504147401125485045433006930746281033990011665062460481260157961482009370139036144142878588374051905192931437845033975932757787956459521900219910254840323719773777354382965774645937378063518086423448324928215500129558885292844692642650942835481950840727566578119002324009501981696865149996533481396111864786951122785867418075031711984207272108174988528797891432107129338611928923508741117787602214794373539797097307403041201136731462488638215857471685605100971631253823585180248598835577636374832463885194943224541106648352432534467278897509396487003189884424551809334839547785828388839232980042376838297227460343687229330782014678610881173552210931688915005517873322740697620869614094353754402405054370750444847934014131132005061325720164804377773605312396502074629454693630723846683766573159790683597289525662037264847909172975823008359994064492758989700965891820847511611063456995158549462211854940491661721803401500840447141355956314252685885124082577201646441407498986735185947134526900663116613378382819515235742387322293866712722086810076178722405901427605560975627853446018631146542206294134459612484460020164508757807450513618646761900204649551157793324054805625019427246775802469053987099098614925842043167326965375976806192500175808237461514100652604689189672423350455206399128089755426823351873313514326492862981886908706633492965443355215697842239647563178141937774666572464745702482233316941381671858253159162488675898189999100074636605233710413014428381702214662830988213923534060546966386665085591400755118819198399966267237668025820653037672256122724996824422873617862896634337743373389593824347327900520864808519319679074641324770547247283306225106479584863603279064896141741317195668524075194415370733077937394313873538482651453876808888167983140363090326321507825718534180942554548408976990685227833717097590383198316914507706180221220869652345414348093424215508844079849769216136329598338798488015350180256804709662066710870077064422961771484048842120545875880307716357891375229737393783082868135489684497379193486310563496157460108306546119252604810715281385360839260675008252428789123552852993348088062854302735068512020923122882248826731370278842280255334953679445033507926927386422746361935969524054053741542758639825954924985355519271202488916101386083911373684288981241083778648083431118044082197976984143999566093131310221291567794169780724635407758222751426399362155896435047582223668035132155939421972298273832918461113853357606410629141862301447268131127633309683976589879437861903831973610107571604627667258383161970221579903517961063441955575895962969896704795144730858816012686524135084221739914556701731433963780244565486873368558003110076238498985105394850617038944865395015468996400706739879591881498595135984980548879334245725597991686955182853595987014109325564823437600676303339007127104693346766341637009216827446064539434287582870819065483581752119073245036079417793734647521688060684675414377611102705977368208889357867286465376074330686932466531980531833840494237468442821067551968540825220347130092785502142138377544162971981727101293331284164814723520742941441926721700486995012692262822505681639054971547448302548794483919826934781190810067063119100440210982656406612629661080915272032175683716468664624606802431990044299232790708037755439170575226192208487050543887538273159639284706584879558513961435411665394173326899841794285844230639492538853654875467744094043173415711219198431813700945549762425063880607151827203560560238057702375227020404843576045029318862788968498138335618797549888930809463502818471683641175653394986630829813370868250841472958365618274475181701848352323601206213424283509536098697962523878388500233996338202485521240812098132276353336991027315282453591540559130458236231603623157922004854308521704317921716249982439839541170448938585901448763292294758388383527310816696170660912556531709594635965085323782876640382172556077794540929528278133871443149402430173602350071186146292081820866906677769083335313934380975663555086086322644819868529915563477518687287428059299079338342016593431021453533818675759029885113808372454091652819796748441874501145353082172284362212479049769881262994786746375753304089096684306499412413976363312438320661465407194934322267021247303911629094783876373869878240228591805920446051322529706375704019645458330121375121827921214656173635756063054145616547086878438659193964080732559102080984192989349072735607122493927095533005913687359394182613993848946301258024452913113883544709890315130241193103546968781943576584293280318461537172396727475615206108770778892559687166104695512976379692392261401979495089229226987476062789199374774519866455741360245903015993812294020964162510062113333930981379987467182560804201107732467747115501394925342980166366781809923583185167605016168350021517487890767064782053827152201770879057061912456507087558695498092228693573711145637568838564037398156815455882681697665097627553544459426464515367946318485469326599787947583175585284075572986173079950620185397368658821636515561400115764567265926954588778323070921462829592612351585011242531874640207256001351073021592981060534671382175289087745241048311188365132040179878816530209469355992768698638928312913290311001403351295975574297473187478223858378558946084523511417208586789422989475171865996836787993524520954142751837067958572404096765587799342901548654643084317056078617443977195459340317138833044100727992333196244411658934324198314314511434750055771922269913307267397630516103636093973043828087950201677416314409003457422234872965655764698787756972083083321455238228309901531755475951437589155253837354774019423346592792244272191538600182302811360162429232337791995106068949583011646068195770308210747708956530606715842298814253799638527415118549204339572670068716478125287825254879140300118007246276909766423301397713616716754456760378041565627687098948803111091206082797074480544867184472956160060707108158798076004322044670602583584656159597607695258395917212965073494982042474093105559339595419108971603587944100193440655709022806004891696597178596252900493911927735514663294813503329893615501427934482393137081746221822255986031410419768246084184069534303551872941325318275932719732024156253090263195285228637810715794291579428149610452514140549228456926895903286588300680123133900602816043020741532428788633550071976952279551976781472001862271407046983716820346865262019169309479977003514073561328482449019707357643745470629267167283317706380219146678481984160493747394550350105090017067820308548888690772750690773846143870455122274383102280623850255459036996317685662601609568693038463223104788215486916119849066614262064368266083546265012760036292076246077775870924845425266811980558799925566273733646679997782550156119294085249228181718454651688486477439887214098098651570081138157597709750119876303904537041136382907979065868911999315934157847618871838031938637082709938718834953308268451510560455276053752948793204853877864177584594189804144151485446028842027467112521603355962423996894648169724542160897463731810847494871111628021547368935751924018031494450954086193799698209356283694907824337271731845548218446803161771030369902383472638535635307560439349387590986534623480082294706000750909713619684223288615827151558754180474868425047018539377183489845518711342501257751231181999344608974455600828936752774264148648999128889637611174950430311390807552229747520154337166852121752598588519257796000787975771721470990336477011568714568443065053005890128839035296198377521984104289755950873166182734042874593112581622229078928762081542664638264845419094699496792294480495741358022525866853117228245653035573221531878977539620762766627219746874965676500119903685584787962139343809234484392813064732396942327298785422064637632039869128651438845909917930140928019642394416344154274312377290252250904761806423936567403275806270188226801585184474200195344066809315234503316397048609788130093360520841132512462871616398751672963808134285619567495718300324902476899628133048280664667296941969838037178371894384099662290142333570383792772012398701361786117355079118106753780317271806660448906927264426614616174531635705580351739498216285856418483755871765287411277472104314381340231505359992739786751496280064915244582037094839395281685880034561718231131993604298467612836614368239049902797316323286051934630813705748130714191017699461348790158057018937435924934927502766841795171272684102041882072508132440386592892241545683418878067620313188928057760902511000597352121856860294232081925544648221072570748071857997116068060394114303107803872130900614533948999853763753446312603491117131320057113735535179536713623938390612080526797035876710733835165238287697095466613502526128493687478592958521366104817777196917306352621733174544178861807214134052998867567609108691953193033376435519585647795112592753773319647618502371079493286091123872766248832353121088353596781768596419125179670771149784338645278106468946607203042196375332032596552716508476422575929384052917725934448512996130377986178220226574414100062260176850149655053675314985823997899626449223735455777571633585440386621495949757345421802772444967307883318261374882184472195545386599923722881377692942149397832436543833934269046632243124327351098474526107671637252034322161009646102377424200287784296694100280050761302265827536388845746020180916843623586401442403550484702111054372718378360816702361953132686966779439920540575964772279160407174967924962773775106036483602769271098512755900187316386060517477933035527948177961880978263936592822697034353010835496856215236675397796834453316268686853430358409615007242190217428681974493368467165634654081240591467257744884909392824023662343994265601045513390413008278645060841411006296366770430833255535568681113946385732514223399251830776538314810812491464789707250500420732815255138178508160711074341596775641419875112597599472042645699681529161337317440738779007712027292395366687410717089915288674304676498462114974240813842298656747206948373936426714390452084264837894215726309568169303188231342173458658584335905667524763979531432443201761900054207698395913973259737288126616831383003472967830522296616662288133336620897718739514837413688799089520943454591649063592089114642864438140515628101103142703076347878561861698007789199719121448235676475557703304303388299316364341111388896579126891270725674291709707544024250292706084890624088407963311052616502354883319750673428233450892539226600897233947423495771949660617501998911508173120241051218839065312878610755026085060367336565404212365170267921360923229025950761234473716027062535909095505766959424829128497398016435581608769355716646068903411861983847470929856636650607355827595797965665583161023510082162945060718498566884431661208418906587590799731183098212762343427986736327568640939909971366631707662286914223175416563507084326966811517453881388588720113438162692579405082211084304414311249857211796084636005147936658912311765767232250252374030405815578875613007691370074510056882191316280854042443833859061872911724062398153634464415145321447374390081349151323246419441361950840461862389295549056603007819848578818197740881920512007771449911965018584168486984927319201185547788869884472734252111525904456550375319795373015047172623338443746777026897804244370595138513712621225418370770555857777044364329765824439434097007009563494712070837694011856803320101769205542750144628843984208135440799074670177737353754710455732150694890175500604375594070507161060023894036915818454148971957912801509807199771144061591039810427510734562092121384710262346834000700230616162007027537639755173610909276864044795930582191119810610254113673628142340663277727099212442119520795358649981362325168985248854020748004673756115130766935103166684534073793597265484837206048214339190635342074167916278589301531267348677721471699050864234487694194121678639341794794784506446855006003473440208196221146957151852856567059891122277765050690008598064264987638968752073378047400421366857096423975864190126991122733213655469590023657255693033792562303307990608494790327667687247759001585581000119022802463653791035254333509672213099499850327484730002746130837224467788974650801694787335653830638136868738159976802528463397407254239507788478873316298794078983927550185487825244376799892703989363548397942369585721505056897778543772212071494476109691354681877463563910469488230199555058396776963480878626812196440784677865776787358924134272205117239411940269014245238888007619020822528659217490755002040722956081053324306859256183229321663665245291296306160593602096608926080157915975068451102422099390252296533850112666574291357223557236840466889987810177595652189671553822866640767801932929151720215579248335910655937092379750381348101880737572200778203491405686586741268190238876432209157629185793997243680088231832707485335160858461093416681867155175435843997324791673421182777317427541285396803139602762533611454128897134135757056479610997522659948156012344762447998870926422649559667627311748217792281076492638187167650411254463503095759477193324201478356866544675280440546041614506745039178436236444864571426045866845452295065443558741237651431474344375882325574567879167629924912610723441877640439027392565088801169404460400279632249422114230739873539183230534579672839117174656706081536592081492844694174881584453787866664137203683122270292199201986283188682117906446269794726859956668835094858733882909747584645280964155254487059201104174580027476540626655743328557754567099006982903877680180041426186389245485350629863027920970805383619104391807063721866462172665449657129767577626081939172846084274796350991298965766487264010679583019396819279927026052084196537945674385227612074038261423358113734347078139852030055447926721885406209914868268651615475012283375600533521855628473237868382182342398291307340024810622589894618341744520801702123734151157320765862019464350677260003071363198496073110895115029917593738914483829295225630401888039037227494845676940707206398553830977446940564177169705386728199507688196405611813479259535955231261199382010046775903963452233300619400995438772210568997801945081859097423311659260952017678025221907430029385181621963387533176145479201088882159501407778138057174769666438104343116021416249870089891258466726132208727463471531864332552104599224185153175522330227474225088571544463866448605007871235769736976224870965791706280171320888737129329578867369188569980112813639721725666119572468362900938272904914376211559991408982361966148910616031380989961454042692345955026093020507319351808388265901848278374094979755705936288534750222119230071915792729027202349054859091781311709569335853659008696281456060239217672222657917589926178003241407756930049027953820034511011762168703668632221466761483320297095342660753090999022472654186322413602914680749824110881643500415495499153826169275583139198431133343924930081914942497226098981833482556206000504351749570445589816662821691706772573548658225227458293194532552153013402862181691789215280029495625205200453863123538334080207821568100338500955353010673250947168969604316018741270075549322697742612502528215410258781784267629108154575937496273173521844051197602392931976826427903097875847878294449899987571845083426572100218869952608518933050533897267268891981117378113402253428324560164758154783665503672694278571247474021591024791778776107655571222050243521269258768823926706111320605641337133418965879861477627616007847459965334232475719150557095350360449466162214511264336905312704484318723019731408403180562774325313062780227235515871766973283550167717738641532901207329287680988853593513448150610780721171209813693352619800745204072122429317152447689420613081566800724564782751473212441386151204066543253135887384307548290282798155754045244411797396724032964410065454669526030571911405216104444640060887670504479422607653732182234938097971711976941643913844505860809242825012245683831862392297632528420945327040857357247557056509592906878416488770171236160240453659582009636494017506204861180808988121016843898760740375119620691979642096241600027932860749032720410665383239850899243726978401514633414138979111725712202410857962453328653129546893820522039019223755232089021125123418100913943151645547855397971494797793056776155148503704669849955493384555726329006497233032043700229351383607992970787397382883021144989970351775423454883374399795314214477255111097474875654272438733635593677378354764662147310922034068240276041403899025905099019589260576043731040202045179085061538145537506525538431799796792724802773642692037170529148999333066501208527565028289293523101081236286942954566047600573052708084581756485421441174292398726378276753154187171444212053378226860783606356866492129221888991290625607945905956598337764065981201872849114815786819282213609358208296252329600434340966002591325683981153334352809789581611212026102046726471932453921910560206279239603693607864604096410522053344407407136515747774075333989060249657871705436611140190798787547343701420121587854810553883474992852662758155874519505389747713024231919889471505306151738157742894835151543469877363017348393295449776701857669722366003747064119050988599362935427542288031196063422279260275934508277765741233897976545157317223036548501140695589515110485291595406768374160198951551602427429736429128774624979600251610805941488648923923308214875326278672956078556981491823591957265177095582808153602202382257855286982046024999488991125550976562302479597681358383023254440621463172182632871647749983362718060982599723626703456079001008883758619432676918703975391726892402716477441533401728212356154048802772397438740301672980168877614777298599129983866351347738042039164603406017424653168446270485691511755530907164174521220129240354423805852594408475111504804499683190095430817258745626064140030671027256332870486595983843236322374839489403576720094351039048763769718259398646613150202263244348145843127539382281930620312237192833010124926794368119419967263335748525251334996102599888263454481282782570087225775843561793735784441807586151935343654606230363858362603459610087534927520792004434018075276727339361139161242483549416233019219985587583752207647387147951185838133974494036604342948855716287137506292715907131314265966467005508449408786972215444754171833092039607550256316834877493136998246925969425270693849147426330129571203398344735583854402631067880996731543755636027316384201118023509323763756718167814853558407840917235332637982526243305690713656638076988457105310888830685091263282899596300915584796239056757953511557363281367956473541764362427590636821665504460930318119746399932478742134602582839354804941129826113745988320656328111163874105647306159888234532912260336696963408138074272021955736353014804473872059962636235452163531585107107238988833108690663177456434970886642747821465511979431626848641098670673594483984615907877565002834390391667170015688125625249443218706484554904915123413541097052607828544307166935590934051753174893823081699164339498626513758405067500727235798717056214077693167424729464254970023486065615194890054594989078170347575755994272188197945434209223740638620014589682739140893186754476395132196060274638617187799645483587202271722954840700883697521524088616248247890834333818334116648161307131959356049477517897233423097855781690303984660527079800197251166680509822275000647999171544181428395531752523899843315710096220762842387843647999198654776177424031519765250389275111123735024750744756437047316445439461803002651806779779473446353267150072974317834863300813380427305790778418386585064543776511027850793270891060375506816541071603140108765575538240292533498753031581688071658011938321916471063891861972137910687819160440732778401553624214483374503405712509147844224267428387924616711811877465714323692706344985413281118086434141679662430513420493093277943584283524633300055474560532844765159150417145128098182882569429603954573565851008094264046995508100187957321386856844663579490148292856911251300870250019896405847042554313022095785685543137173584925614548445692479967470899960622771819544823987672902287319846397981774251850806187843984321848963930086726499736882524886910102697128207581216025517810295012339561138300693435754200566262874966338078685833372398872649801850012350261955624904996843605515269392437853458693887337408176862825334422069197423081962386222419494807979987166150552736512340060517773605334610395866606351528961897247624856969045899281059179064718639857404735563285486720918372967431238589627940612174541932776896302729303591897750627218942048418901976649022857206263510058382882045815335760216168776029292505597770155743142057143069126074494690770795712092881858050625918802842559224053508682359836443632704251043796280392964950778990664630652438643423715052676725290793684686980369592506419422274361610657172550645347217897237006075547148703561347878914091159612772827868140361454467369238698144432000156959290700962754121224599283752860622921598603818015190131941614632483022519520973539842278990579129460243826034688522829130360440097558387631308450091020548341661782562476925777351821680143592461928880195418332491081885094864076991395909811771756427479981849971449999204073052748851709833775063980740273890502124276219766536274864797159262693449388531113582949944099362535558786657269252490303646077181290216475175090078983971100337756768026327617066930412732966752236227384854337953764900993333107139294862726954541522639534935059161630476534190757373249090977616096214539423507135517305945484747619931666573793848434071051904764894098053457177731420692811307934011938870961941748116545708123935276549941579372895566196744877576404485995142308826343066939321750683784713827823730743565041598045291790327125248179611621101630537596059484597174378493779861605074071203846766830064201383064675435415716640508143657621476227111036603763049770786659670568391830222171856792000732139857242667011685895963584431151595247125954886519536373271783674597465747722917774117473099378209780134084274636903829628140167966725365584031650534309876487125228780950921141327921799178003671470332748829938749150531447075247789849607548005232415702633715942510447043830418189212509508741946611484514245831488021328376496004356155450371221969154442024065137525302311258106040367174264227656614777026682103143162136424660762839958103403625430616098004189962049451079942003463597681868828771842328284681940822872825298048853819015484303819751492766238580112655450649868197169467417659361068036371428258214511208603152297230183967252541041305733652097900515690194883816340039718173096962519425403472901163116776983870091789578286066880975440122633301977950333978099196026570625350334560150378518072001953542732201550704702542933333401331533020408666390604752026433631237049150438580041758042535012287307297474785115214648838996018089731181645227047427093644363673236961976195193053858062454442067611418757971462569741428160809352970487724161065615705669254355580346779560715273238202520482146302554017967992025154514106870668889172442101186597073761624010157615055569179039281915102050401008096985058721236564923122096411585931614796032744409462034727078043453778352088074305986189555132783083401560929543895739477716846334794277694281786910166253816888357746569340111205465584296554759798874766105483690731567117934899557363921424871759999959416894648941496297590351649628910958553852026553332238789721562483208793735829913628318568544741272822443567731892015606603586258645402117370618513496201979739315848408755498828744255688598099843507220379889315471693539695939828811938270153963402434317781123169314811181123783792814566854289242276622626149379960881250611692252625561475344561934558956606270483793694090642682422438844840198607843539548047583976262823075771464237167067192692953065580712936478105962743379436955730640387453486629682373016711972959652308080699007799025833698976025055329408300116947885519592536126537145944960028321872338052307229252660582542177202389376838631971112408287080741584550065471025729232956022725742962238978747749977125960532051682813313333363969421263363232535775062279259340403733628936674226218257347302461755568149877743262695722262235257562973706298361062070986186240186621587874504928428719315839309174080983545641771773705692260638923155953983033295366150828934393003624248843397396654174478695056154842140123543365571203319236146838313513296155139873724121464682503146900180462683150917954851087116486399557985887836795405299674752503826306061917128213415077188177952929675702476183210224817488404079993564798919042677773232435023261750942685029283970185817723882137048299562729919107362986261949595495291253380262167483071767408712263084635828798652620325566714122155275285536635032829309992617461782577129702548290696839943638040618448401130592138539256069020716105726137975386966510135147467420847735987506528738383708646607841169603943131423407567355457248939215880542783395639431431472814942224648343956588584406351805252903547972610783421621598418193627828296901527145154302678651456773154058792818363785145375975117790625994657163019332832370389103435128726355248917152010586033571878172334509329613899422727868764716729903317840721490233479403382352077058582796180231285798220931151891573342147064224653941189622317825553472767972474143074822038990105308493772955837485173765101217071288410665248712147438704804711941590146415788479843928866089616287470037991739026653387819379490365394778360933760782483196203143632061976261455481810493940431160271977766579594613238968325022198403335176457593118095995198644645375721134994645956255569101755715783643408380841234821330421263480091197250252422014014451854330005918670501466495079577597858267850273369853932035451244415491127539290978264930650998633059994515433355226757005623672616270265671091417121481010087588138877987883176408139566692647365799434748383485354338325685823736410069477700308778491226395846880374454607074583225339103389732135231161286582047442898657615312603994044515170827030267596171738592064409439544679122321476269473223238594747463759119643921406272769080494280896571717793029067286161908406096705995099077954903565513724279419680610962570221971325956540346642129613821254776104054711044504747418455183170114052973201020530144541182283473709852491028413910666224658742012937903976830086663290325153661543552860834041164949939501264357941478153680769426077162083970061908964221684836557113828909712783364656598653661358887521431627317253236290138866873084272081142964848310006213867947886832797673443681811041983745355237408940518536250871419691416101717976077034990739992535383811319396321023958311351836991075518295874046711418210518014065632228631825825631763508368669640340854593024335344007688343516178672234581457552043596533727560066936877637856744496783014756296760792719048450942691803247228626063934454753123213902449350081140013285606450843122870908474602321298569157568592222780418008048895892142283093612434045117618312771866131716874216315881600794551065946086689564503547587754560406144648113153958370046098988701954414386938080900642645010050936431381323765014911120037799742719812067431058710090206029799802529810990166826205272083213429922445390910540739989138897219385282472237199726441114282686689051308046887914683159563954590559048161162890663282396437517171798074086939163026007387822645238113818091347244280122360180040575016774324784545297783660416926538585772905654005673758419186643605387970082047290703965136410817763699531002058611738371301982707446904145949919137372499092925767605224016285499188506679561791432936438035159288475721691090436330511206226654288575476549881009037900952558060881501812287432071261620411324450290266501950776661169577493692537281049435580238177398710271009769133635258234374031913268938879083642493390168024123520802425078897367842207525218387748844914303567268205098389992606908588907644944633147275991313219241771705778127803511761139348889374675058403238126992279971314017183273054776046816261549055643277701100818220542601451158337938090805545046101165947584026993695659005869760870897418090400088847006656758973017581333147402061871679845958611530039683406744189572443091545960605670423498401255614620994113066060728663587918168041958838588993459996482162168774474904618716707998719440492587738434612526492098510282635115424322185649642819385120293896918579301916867089550738678165525539372369229594972181679551209193452203692345857587662717487701359880872126180827221649490863035836717066600543582657524324831756772159945512886084672750302638554993649301231302668302453588711009960634798581275097736834147982689130970276545382799663461480471334638252897167628845759387448217708791337590473426168223644430878695058911322641479732905533658619726242652933371505862634574864448958118053374358088967583627643683728968660393345143568565885991312952416166287792696718316739726975676105723213630496951118216976513147709255396938991252097672254831032266729194650118381771871409167293931684647118336823964976834914986189486546638604491548571004784061348462193425057380281362014515594079151544294068219521777265956853270980274216955971433676378306950756582031917157636262723245826387603944899809647185667364751185978453077650182590673676765414380926416847335903169827020547296369879355310475140471595122083441303498589632684985162031951128731470384176181362114428628997437829646930603515539131018048519612871864224138500194714794456707720821055447303187153386489295831127571524485044266259699291179068594709397483249690826005408187133446333626451777634251198389115060089149928394465017411882229986492075879258410953658029883284805005805673563570212951815270219061440055105161803036973238064809787626916521907543991730208085088631082831492086115903275057676105726176082826326371150614132244612726181506462593928910573312252614952808058216001545649362529092693669400235213799085131411463472225757978900225154302967544544103219062831786625620461415688152173246316100881413832440484463403373523049243152896915275956270289602247683927020652198301699175515672570190049352298719316603361711171034797419034188439795619197110656416805343763167099690716874247803240297110683366383088464279299187075986535217446936653724493876662245251767711155874698934388951975655904543322779810067862109204438671057973471898372916507603141647241190535750770805883579511401668171491648677587366363023755433682068877923764241012772967612935411923507215492225325804495361313310852633231183996521778237674193542279426751978678612915818807985726632574874328668027183658845930021281512346863724278108755428827897878984883396791918770997883202444096224570206924827005056789069054491062099737148876298079195182168090361598036640234158561710855669395666934708117017509837217490926741127848611891926717935848848434957399324133828940259489272742347441596362482499635535726374155949516576294448449523135173963527387014715895191006366217966252816973173998734244141358311775457594403415036766090085642938598100384482376882125470840176188650823620389302541944229021851586084214606759272848258547463849034289336352311552471336808274300500356307253095450903018382847311974927503145811219007128936523362200967736616619575779982432509233039247834519633587007928421769591574380383934637956966122111928164002154245359322312546994059434442866218137952612693594831579546122698051574832349847169962581275889926497009928779066467625269833458048552763788214827400606165640641848756350796230555541028296596827008890179592690732976599036931507437536478139006339995814834576180963017825637524801961695037301233170598037094589279440405109594188597627318149904745920547887460928207961340398306630241119941584919258503998133440204678288650790999702217352002060092899834863294741011555594327387147905189350752109386788436182511914449610857055840440819458153579729010060442515236935023147958418112187384296718725197040076858626309582871216985783586815344576508012187969200664583273834632185943779692692235715950086884529455582080816510485315386786485457170923657979511585929090397776094633144004434595044416704144183873918715675922894810338549877330919427277541433601857881873048858116153046514231016254662641709370781736902197413828142705578624149584893936663627395329396141506487371501618466104037739962898849320516890738568166131784992588633279065841027462436172285022578473950521926390390475952255704586144326425443292218401520576025086785652539819709357544747809443815300325778694214559417749281462678577792179023420701962368387004745689050714170584364274660001120507799432635226631624868337829657451379508141186017854762225937884050940753629596080492983993155277592351768590602314126336614041333454745866066659143317458611075006579908621509760663584636476670185873088243453168072378087514096722722983944329693214759309304390694737508420479983960699782048660006602021430888066814454007781161257988095445401787471571201790510271029685748016174435748458272996943478965224418217132227051369947241798485318306159475673190120018201677262234581814376897490711928625568726521081390733404822659087235232110972602638859619907100497000264705582040008653703470761577445341906748628564525518107653343939177403801251526216946407155250040189375805080365559036645658779025829332140596638427135881163698275467887075378560381749636557068478137596743028411935989377551565842234105542082357918151834033966707928346190548159614054539338473277509483407822361380474811293844174146529629467390678450962764514740483688413059701224494763668195661850138409962954341622008228834248765541917751993794627841980037668176199072920579713332574009175291520602297620757809288733443515346070456262308241087822163282867552271396980417039312809276650358803862063552158185481038057343493204464128577501841141270898323435227084384764898162548209876507746909227307634406821567297140223024000568488078264182983538894420286173346791615033183839410874605696178767989282386129100247500594630225366802328889132916442654049036956013974037071989105096827621590046523490741897322131434253663448568143785485833205079780988752798066337291378922328380259586634290008092958970922073319575337371148145713427063940753485851427861439958266419238931066827719465912245875439761434271513683235765678910056895987164414574258776876926673669344486422761480539859201742682086099661635187932735712550202958572478640687968796141048344682182786551953119258223974715022000095475808456013024460247407233006939830955394643626452044851370679000935231218060516038354522372929761955814158803305621921195840138710654271724489568302383106696250078414473173089693030206908211211113427120982382427723288924790724428546957107980204103055074205261261536404114569271764970647580954114851818476443584450089494062264683553593905273843666691505185776750849470439086465612449510797566772321633282780977336207929122005246826759676486582563247395194680126982838371141486408295172240830184312995118478290851845137320484712301138229606979919333806723591036169428008392143759890761341401160178426057897375859456180876983923360328547816846557424016649674746915830200109169330317178873397943422234356360994368519674837985357097022113021804171796288383606362637352866677585653631300985970495426574843859731537246911744786121093622004427710900521859998485522029806859334880718588752697877543915940842298565363952731085849961984372326690023920492104854040229413111762390702155568506240763146568805961699300902332358039193818956709840275717904434639366407362234702480730567618872765189575591156096439616400433193416214773453729603321522582367093411221210997075101707127718715927650612764778632970397089835565404746638614202866803274320241068039198076432020625076991176357694577493632745057964165309297745389353073400278096182218600845966511309924135665293977708142988590611616803002073828354291633864872266454488483149404009795746042494378724599596324033937059087762973846766633376047466696815010592388326333277564730052489292969457367039117140937334129124567539658660059279482353686608447694962668226087836223578196520644183441771052185582814844716707687472955840886990208643611732172389008508618750488996844292117780259172525511282020735889113556903531339311805820843759540490003812180576343560997956834256507744882087641595560438484235480169258930115639150697795775350196431164546967828362047760887192101518612521463729282907108715032115844108461450303028433128620432643190613820696359619643227703128840843074547945373412769701381695000405210399976114217523870587919300754128955251561279200918015175530618139675099929307991918554616713860953423832075628130531909825480257072419760959107532769198473557078663558804713387441842477774568035910129685654295533384704385508874161877622281810404317891551946015038868215561300084633670689215620866726560296698632851178167764078836387748873653553864427090350412349118884497647126403540843812278636088549005095447224587895729306998138936571858088211215358894762313374994437538900307800356506425499890668798144885149149781517731180126137753209161219291470210514124127261637308252702109739033912833254634209314144191157290483234600764639479061616973787434687747545597218380084556897703636526430793854242362104141598649095743948445814557942243043352656341826135612853409435988242445200581220480420902216951245091351452880648488806357882878665562487188365726952145472694594082807338485081115278097324177419930456622884350971100460970087019184636096446330930192507077017324354830920849269992887137539887397665167111314504420789002541810992742521559054633228525036430648497526437593718236296020322822769597601904905991330876938312282407055722566458563866943662930081153378183478710303427360172979230159781398040337660060079685012591054874451213875742884777126757374879601405386491544923206376521124022424924515499692832616732893742154582038672288024377509232983568627238593609988616682182511751278727091108708699450496297351634602426652933557825579954134080410904067760576811188560946397632864258777774712057727660385317106684089203077686438223108247967727921638564641096725969472756973788983786886340274636303149664813947340313967984042739519986942140107567640731185973022146965805731450316462268471272231108526558349679753586467910971219263504574297655194697782034724751863936740688531267457051173794447016267202615212462217493105463841480557545260466166423420586961362095338352346229219177815628370084190152176550541958802441449247670483702255113509449372107323943961868843430836865625017379817576705326442202223663937963332086472008324837895200150333471408815537179832539582414440968809120719951618845351705014147878534572984641428501792561522191344888880186778688922173513853532861356475200361615370154888899373877625551370931363592356273126340741603104594073935168799467145148081420938886942633379578411494663901268370407717259479665090758902506627445735382331004523640141793588651347836250168842306034287396352254699555940984099857459533703314336531142744415110220424651143750429268115108781049539137634527299836603368309986379109608150596515507001090478765089522195123842832539589183188329980092689085721632410856903746648921756904901097302512896474746224467072466113170255277464942276596352913016238864500240830520725029028117778886086412086073108666030977087949594106041020385472429439852527327985880761084476266480830289872162864670117440841938096359450869788530100222714704674252755732864219481452238709490192133498199103081084229154820873150309212418102531810142221977237940584623874822658803514598246210983435700304135042445123501297083278995224043122017998382543789285091057491929063935178447387515977919269914170183417186406956944514693351638598870373506017459415448564577238752580647588831168724832642501799261147860080646614257661041902445923541694399037149902604907940740804507928251647488047107238511464867448038978098722724247096281638488479078325953851262260541963650414925260460870045600561233426222125353052333490969426614766742529814185540175308836662211943754016245218610074777377438433663495422495386718387413731217395288401005157926023757787778429503998714528561841886053681696470729494303081834905340050631364919340254892458760019208728470296227996774588092130811627087387269254409339605046894168758085919936869825893040545660227038464342006800700905562574662854721553260803658378546721574677426559629127108861261066022579168022294829691535755661945110733745816675826373632158796343142055859111480754691426963740482402196964638839180979270137809818787057822586417956139324019656568173339190332687847880636235894649484035724851873582022139761169602201000372922211016655386810738389855172883012424993258516026191994186527921485728487249511337020112372922253730226568063721712274903967890320199210396539995174548827352239437490116531054034073007824235785511020617553904871442840454492905628864379496375981343351442481257862974921144201667480635603974824886864689488720818576244767710548913399191394735260359651499796769252004572633163661919733251350988358902323411386027562240769787660999525519909417342846636266336456554037492821951540326765062859351446379844754009539580000379265881184076843173064096634456734284659219190471198568357510149753205103596005576798302824366548940992107590969250263638361814830557562961590277917133652456987700785598197466164306915468298792598908941338281434028847493040466190536728465601688853816757899976741840193921882446161204079289278672542905777211893183127489198541327238690915940220383678918757141006276429188556436544946268067797939717406411972154223445551141547516517171267111547880139178152975326819243680609954567717446743714338351890287217634483138305868947843194930549330300435649646457605208032002895914324766505892211827091806518899489833938394199576142434433039358310395707604669957239991575730198197057404540095476139064715477798462339632007857251401003283826490950766343219599349272592776939765292960281208449197529584268100431026714634225017700387918602075771887913627767699678710075183402893268356970355526018045068117279566153300650263487423846760851095070099573511874834270293541232864730137327788406565968689656589184454456323508825089538186509065904248053199879970947953926737899740801152356046611435747967685735904279664655887187620076768876463514061432111927206750771449763206833268229173888921904136086954791114429461245949806765569637466686177960029646318515201912396854209084739817944924287506479286144520961143017024682561168860481552995264388425218341038299064372726234820403315034122590237886671425912630794010904794070731054818957019870804755937782557594498286881882140066842966944361983669087832391722194133435973427873146198310079865034798124654184204249338877139717038134853806806293660607438361963988406466899600844269036872760662994656347540692182316568987314844969585195420856907009251815921191438808641797371095034533233021015080613454599581547598468931888995424739493268759329151055025314647905550633782562929482611806801227866426881754349819437227677403451726930156795077458848563470615058213250239622356836190342124260079704085221109909560525804334508551862076167672896509940975387879778382444381679601652627399953294676862496248565464264986849714390800898951909411987735818556452366565911716937506194787308448331623730297935082797486699399716908301772575770930682761145454703636833704114357469804033104981626167803655978195569503468364252886631067945338674883598925715675329319347946811873093192058997414654495041263901895507977751361076997117975438912154516693175821691012841394183264730799359482501457115555229603468497819838218563948980878874515407862547396553427748079395213118680123133087627299359778394837366771237804054125385745786135170310761648187376450357308479150881991881718750715275971353229092396594576889896667059578301491186813839709419970352524722501960231543575965282720357952539540107743821644597481876369906937387983346995171965984635940976756744240118632331749152626184784853109914199812761848190958075616847473930331538904720242497605004877142961647375993239520919948652188265672872684961627381502229834822467114086741688399209800080019292888351147059697819137067557648283501798717508533662017602161584330560623142697845748203742459616313218577522169587581438180121139496562584531127709184502265036045354219814897110349937981235023031927787110726976051351327226492795411181612996850734427185910763451311245012715186057855174085900012475411767019328176503905471593821606330207849551186734430155510429864136863694054224034969331700391110143865979709483146383347395453699065362679377363170883844964945328014729376689095872585405458663853369855201231163453338866154901834857537583289772415765846658633922919221263921661233944968597509858889067116070270642001945189188253659006040188218773756750647281972548127950292131445096637701994715121745265750517283070983825739514136526442692912287645999058455407933446906422343751226644490750063898109102626225756380327301874718689013348101799763747815610330383646213416516278339649040627947443319394495892768270597595299964574498656702936778732800639736398960030525257192750913325606461126333188382003603327637767571374154924898721412680662527267030140364770585706380215094839926510055940789724595651238811668393734540402515498573170912358148192245638233436170374070748529930747628263757778487039546178714156986611691060806239983483155912015982260956862512437054405602908286437975607423894870576983050987018324376444244051318405021426495740117974886036357477556604360340344632560316221099750011379317061991427503851183771995496228586060498194293529870479128005572914877689397527076348816281054463202139308332546374493254770482244468482673485311233259595319630819773525960056827961099931040174886198596176783151327259115285490812250214294523458096643906000262291400445079312326630239694098935247303248236171360934743171037408620678260806552169330008370989745964069321220885811005641307705610658166883892442578653163363233323053578428129149010583616430396104674010906504441200417154034119927623476735657265255318678194775839282628179940246672347770839340859012114234234159336940956119788499461959437382306967148523642572734299861488506359617147119973801134705223601384762088969196493786194015222834808242108449911633150709329540098742326099192716359502405988888682448921626462687570878489006083377929788413037919840484244643223874957129506981284017527536911243692497833836302481964700372652331682635882710401736655976453065671475272912359294812195539746610927125149913593558573706767429682332278420936378842032661186210412518424679356989298381562623799401059422495356267966721122083896218026672037563340069128599630049171899552049907922616423443933893971791356082495352232576271392809684857994489040016291651145340149686977419528556291595230384656892484655538263914503512486168733495720822595933576715621167560401121640202904381862313474029820470816381371044847102885980661856163082089977619309469372759610652161150693546276022526690324617489747665761764943826970627372092008057717749714103972518219313374777368345356831902494870537263143184016480791255697477466013170441574297709894778110756539805748937665420376140653881456211411556812133356024795388628770334245390876719081674625746494777968245543238860903744449659698175238063938999147339022363912341408070189151943789059465851345160578768702575311395445533524910166462195268574243268119355717575053134463412396099333504980020618162846400974691085435808073379128961348798048505314588061086160490440230611559818280899137243111259625752157695559484905536864438222268199093618513809064267657418560374301626126973430879898855694921292912663355510872741322359049060589231910175247936265348985690405534138112142485124370745727843201672756877703904594800091843806583644832911133282607337397801043632445582884463969834081019736013639612375444848629260524028150008492459264736224851195093289273118771521955101888251112619135053896343073065674339530442161521771827578881235771281100314190122973211883277467290375284479413421356775033503067304014840617379175913684393358624892475915095482140032209931491386690465999421377476300487989895282120703457472252482379330121029571449126979784372563341565423219624338602616178237923523244801774484820009883385667800977027468276201464852062489869680104537983081281963450782390495466782474236141451438395585489652311660718454906466564286904585314545543907688297359282403126588403470725760906826931145780079993429058665077699604156606290692753224140223317413884242993862608850460471891514398366398048818228242200351145378284894752513485991452828303434174024506175069123944052832662208204053935821290704893210303693637198109324872148379807680149379603762919756228027496631672107573485670225079881575897802374553292394710398733449123610298120190158398570546598116342591585986755523291672099124311019418872400530103735816341632714946377431290351798368093933414541370631987088077872239469431652257138020747215720162312414506546978751549346695465393313177770799625653830557260367740871336860445235063800220875131858853851033266946763166921528001712085731980276122519147572371875081309400074754974602053484455250134989071380942413313682827501407455171089164552501102248378458818679296306331986394126635113174490546173676643943069858576643726931867113901264069172748090256923420340472259938367858808622120103855606945436001698827995776553131123115099818222067963219130397288563670136228097681039730098906295281574461979577801772419874005695326286966363346331221930975218954290602155277070937404942055891999201117109929065387027796708165992146195015903250616149549445024963711150341425588956557804437281942080993750112632752494208785228222937052673117897460071599279350310923180139705639772871119734898730257455191469095809898450004985792628738067414049621464298826311910869853972461023139738312182012199066954831403994038749298772730508177577015098812512045069997708601438479426005151091322489572671225162899713205621131507904948710802740405821762506310097319141408998875000099813161072893653044542604408838888248805877619278145621760813994460195258277235608769526249671623973556940626596447116866043378649169763195620206823291316216317536736777158085082711373372638030259724129620113164010660371978869258847612597296150875111612292443625688186095910401826909443731829465295787408598687457460893326316821989679895701310233945336876829597580909687992059625162281731100203240887631200626458979889132043524842954259534031813463469157923786128200612805575633373678274278296489207789407626281409673667973760356004235623662857310675102010422402301621572748482855965075588259402011982370683704267923539169508260956936548877016826447314265700745977294776154831466597858216377964780823164261475335616836933178590637287566738352884109102492522995269713562126953038968013062646185661464734380960381881325088209600232421039227437511891671702718837148568428408221036517635275465364418263250968249689962945269027842550263535772233404715676593305090116670373160434315410104349046221054555161796008178294358999572014171138665080709606832869186255394495271965923578192768536939042451666726268094424193810559536407103489665126780725299324794276400973322562311139927095879167970557663380119010809877924133896949217812847817366060445901239195197163979192390857031976383975093364466283128947335117667838779136749618425891551707194869045335591767016418198089720898070805309328995599213956606979580502184917891788197179627368170102827501747834137366453790558130832951324833393607670920976014203342885431647564127756575958702074573754623295833405514038999671106035585932012345157734019674989727800446463204827325055152125374583099213541991231494031783184535235194382846761019495636652126281391582772357504202926789157156382711402925185133410752201164928791472570998526805278530486705525288737936385479418644055879153695221367261650253757027737385802380208782010109558046116459093220456799473288959133791506031920545553501335057129100940334933574641100803593297077084904661412099644386075375966050523227882928271428009942387773057169994213400819729361938343244772882494566117634704200823911278566608542518050278084288636802141652333855883266295755287530443005209283383863185575967867804937584134369744859692494035095460851978562574820289848068181816174568772805769935415224003876645600262219605670109336593365238750178446963907418780569253739672270301624212197889101410864701082004051588871523817614248707766134474411036513656705541590687743523251676112577801950353152639218453379343942970128860475353301820142149559961648717068043702941149072706280157883122988266602947251007609978702783766966056966597958873625966267113003083994407028693471425297944214636804419628531280430464116518434135791273265310018072866575150383035517941714922943579559634737760064597776656441103401814814136982659358609408946937328463025530776716782504200746941815452229424733942294594607648604373907981188755961769011790539326632881356970066766467136176936045838050770794723835436323883737801917450086636262858538549328051806442306242076924197066754364195649738697363782486054061569712140626603014269331121581822948827684714764218994855344304368312772813480120881594953839256429173072150138244201964658899838154483517725755887924605319197615745581684425529989197486657375187932188458613136268681425651078806539549790633575729019315610628450757755785741298158196933873700829035524242526666219837688412061914135963831062066225756273493130132593976276611547013167028281131738116206116780055094440600148543408985546880520441281878510766587979547838358416079523475432532334124700437781718932405455202929891512116143561366171654669737245490545346932026613986441205523852025316510009619004219911597894197693945824683552350207520592739613016102107202041033137964727110375294012944169608680356066289864361943344246129578486082518572394746706451095642590116445247906067856837356909873776917205662453765745428749628350741978848847059229735841820375252165580435858519975960433675996749243677870353000608380312934780192715870782021288998724530250280896999770676084633393188263495476482143463747313556979930420490633494702895788412226299950922845838516085591710918792254601869261214478497535850217638822974668997894832583941514588417841685203478008780414247474802245476518956015724445442374808959350169253857176123958241250058320957468372244325435960189274679641821284662476018325479562865377182826850613774110873990493420952314436090493306807666565353000387455949657309552456582606869664270228592657189997224140934842598805286782892310485065512010407725899915504020612523031111726785270289052645692724627863377316796177226312969174074517772031434696026324203184398516927733956897277376753744329078805508629867263079789566890971118189198222257883245384298206708913390202067729730300736059855369179162072597038429205300155027647618384828204212544917122218905479861290825568404456742198459597336797122551055796243991247652938753195204947916088862097484849749040975451416161765512627700360390785716561254501949194119303144007886530622836112074017177189591056460107875777078666257708634481220045631271051492108371987752897963360185169626417345620721389409919587366261158804364817292602960482028905516866415895860910056447101716497682976096793835347801541376185423110345860640060183577454505557179743415619036710378018908088599983712145623733176280883216293556108471316403927783441451433594931074811668141302237704008030186103934014885744796420424970749810463678888122809341077676880305035894095862662951622230605816787878438969054388841564118689028910629322147002275305498654965109489332751411111253152150099048908473512646829674714296032388569449380995087850711840397288054496047721993050014057543252609515267158450220610160047578147799740628663125733569235415595539053623811931144502235298733321761005040322173289875761620403577856965939624129831011394010684208315483990455150093999531148260639830187045493515566412860430248088476554702265167334271221278247322528204238287593279852570121674785299675939634151356414111117158086191101342492705197988900243947602092497609668758509125357737628615786747740722064970258936739608521063309603638202090499917274062040616877525480434122899664354604417504218844507560193143488270229935758726095193645156080918166003122262329937959009036438669093356253652790077571906476801994889253406001799861387669112819337148480181235662363568381546929487378536259244163114680611279058545106017936858018294457619675761215124685740921972829976607293526636253251399446924602271519945937388666447375757542936313043984921827310377169633337123781460344183103245475921368337915852954631022812369246477978899069138205027011123984688237766690849335884659838061848833218049067268475222740874204405731652577806408336945988461304470574643439744100573280633473953143690065298057847360214617012200580536477434215636663284899289142018982479672645823197490517591315400121327584132690418814415369530572459125767002667983193367038338726089462206050546761263221015885638285874057556365067042448803331042720407466525696660861503185123475016741724441763361074870523617715706235881702175367582810655707690639273887896443750570951745730625808759162566622251916173811163675226334444175165086107568431975535094384557914184781994695554010009883522613118334619882839657557826873307567557294865855698578108845002982742150035562502251091189490216482594209270076239469577142274122183073529147761084284671088265623011138173494104394035417216828882475427640428970134819485509899753690814345397614151424021414188637654592010505590425412208774218900648682579782807011784168637696547484895055433192875366250196117112300373061180677200538639698309901577086871415496438969032253312555526255136807610146403342898212515047211128152633463902286582367588012502721126971402963328201650325302389893423811864115809603141466686952025310037724115170445721611543690021211473259071766690619619951598091159597121276704403818691697913092770195420901642885209094003988168582195044803584909415323598084609381104727780813893406357963029845730495954596788186878064321970117295313923290220353471149293745134328784434086601491780104794122497679476943607499972457686435554412758914155943753337790054158805598985112941292231421699961220401740620769064171151734267906395531786463190207911084062205596033671664117203097053798902060668046326757883947377338321832859706923316888050785910583847960980510312753422127952976344182550805471948050966536658925633907415757771159105014814931670044943914288492195720506750533514178321620801277122079409955701411624136737967906183886973181676058678188216942264552712523950813489691552591632593658301264218890884486687646551942783284083108251032444401905099695968943687921556629503527682744544280780239651131796841517555063259583886123652035088195936106471428447662206582671665063575655941036882658639474450201532635292503988040269471867989578255739534170674910479720012226216044370044907066023648402277103370750766874198766485925405740408741247830086510755640823234014474634087523574974130643458558188697455957552625226160728308060046271203139838195733558946781292096782768048880844618608544380855039813751416657157361265687881255945607093768845509486410989857389111881755290983143021151366363790055585577956660792433195448515664356538045000877041307955634254067331401982983468258591340653798586340952498768301625222448202136031171149052796033780527171807618277094093811924383448780289342889152845893270060567345886395831033539237597228999225252117741534894516785911931912526272941954629982036710286760969164019689758675550133579769497699409291619809813328130536863386376882519881952911656125178292114945879003850214068381278911666575456186682706538077156318351040655893478626191998730100899951454187036546046596590322240926164862090941914611222315969939581742174219099836007585622970591129260599233384234397226809803774086040097788028899495722849108456435074294893468612945103430712465608931078901556090882037668846915245182142312388200011361989792663516797165664497456155759470364455782830848459406655333698660300702761491133070266252601179622322368145523153077843220635436041577530607928801188217622349605868301116831379052890704481239204996661029378895366551831432597617056192662137559637126048757322757469031222048075521852443799778660948684073405835507909480514318077097763083286646666133377971881294485822129989664649013098355198411476851791168144000505529609277869559466041447854092867751089686022064513116783084783912117346208491448484404801379148151145951965691991949883453863145492861585092846328171228317000507146624742280458269755675437954166717094396413029011433594501985242494371620669838045498193681431881738745531800924551422005955330344235279249678111468134343212863658576252923861365310117658318015645540392955543182600892965945668223025626881005310370229370339979205767079959480919715250004307965707192638835529536274623225447063035182196351388208817129296053645509379198159719482497573426319992672453857227894572671290832968858790763550368156142381828373586693721831125866160039568750272252836684697049276558508772181563679714684408298287711844441336897199285000343870000552900862458666088888450727997568100206806850418430004175055551294287397663221565409022719969811620100423137553908614540445465656741086316911676319175891609176726635760849324215777552730490871242081095886437630976440650348065380796112355502666662884383973854103360128855835520983519536717632738333352779531284439108358282897602829947247872894725975831229828048102410278773977121462483828101905561706960582201338379280021507277549629219730139026084123042049628182622787931306179072316980713069912898904175865066476047491359147669338878505175223155443890084697250488305769180325526398401819287090909366828582239842324279448874895174476558387983793543252798818670538887310908995530481583778980458541374560156403060432343396065593100333032866082915705552010257334928349538373588795519713160919198352063426441969802111446384397678706671522611674187416940171725174111253204786440567408363439062511876451551765089108521994474241594682463386154686987085313120513265565187701426278974838642557805842643209864295195670088722467744165662011606669735978212414113078412929445747787424288697716174663456580379493526714294975341467373315654588773862237940930933610202989193948944172272653252232372139370324264423624034745522317988646172720654760553013611156194089604258214283015192011894432610594086359721079327338418721359667687577364867326203289224368995696345615007659208578167697323506505513904649945560022981412677005594518559826739270532628959945454604085938230642508146018953889193108921384131404985851098554872680052586877799830125003690605009866278786736096680940279951579281594305158634896345787370214176796009736720209033597134203038390053388189415132986409621479791542362159835860857254829357480152475020306076457241825580239400337613287489727736998656617595826618146324386291210458869555541541508765324402314712673003783191585675358081969673823770754630092128995594873516295389015539445000999971120600588013028890154018566870412579338536093488598242460516199123105908047561060350753320976164529901274683200283542849237858333583711992978073171909207374181041903672134894810606760465470352929866598268406539366172367943793122397444221022470320634478203590083457957379335568122190264389556037219279033365138480104006274961784215047141839669475286010579736155411302753283705051843835284750680303076357470728372883181840647728700694253844509006666416802054751752450677753083324410421368609838338705092309990459756196670435554692473819653806404830635801094157470866159473664403470582240261950709023699400322252921032531224322351666546986157985565188235436463286469141823526742938754566262465905895932209769210988648520497536101205137522585702131992281073879127097490874996165656254782211600773218142232182413888528450110809893804894571677746283317878748703136407514558895287868892713342689081322633984095765626985063367751932554910420392843681439393358783491056376511249409305868363773691349771530154650803338333926613889489585801826682858604250173549303331007124600331209884060100574702822541278705355907585038147957555624468464013428663642456571695189316270211059711812890519359450651845517751050302496762178427060026993163407817804495236912326223327921913466089088752251641285332165179007973245185756911200907245572491962248662032630599654786072873393765015058453473778857392524934665760446249534691490157799025868432731737125551798204742058655603661086214748562591299202646325348037328786930739462085467196783983587490693998264831486289358653842468452887804140702109939520768209124265064401809389209441349532772643319398745117065912829112547919553372093203915374554281320730061570117457887750267800890948315437612869873118019977949447428914943778338150992455338557934900828711923790845196734327849677678164967161610843025235811148594544832843073146279942550911143772445876245039875474576085529470670718517958822965510184831069414976101464291072067661206817661904609790106664189974723665051972971480789636514887186594354161822526424914824167747450446435045479036263154849286992969365628390089302198768485845114578650426942027388320650711591491315573173279552439260169917078917827599569838759491984453207716081888243096426575331034610882100976542712809204209887545500174176351821841308644658017038334502847208342948013519849286809500866464240523982303830389951849498817262816731167414960707086025904094093065830245342420624680639997759212164419693091009247457550490441913961281988247105630534123735975923970073223094971989479413809068021061395367539395394164428159017545297189920115727886413298245467049221478422401756909150160311204157506529304251596782033380691089109751606932731917045076964983697481424920828064120445605764814753174525186312646207637007912885532793384913847169495913586816728118317015364731186705419169708646134170195056383299551050088792245406830663311039563271371145631533599598153376756482496244588909428273181315685167516969018950920774407001372907265737251826413213684151247919243747042958153928630170906967407976871739857588520284824800682858924129391975765284075174667701297469709451676672407827737515314683334790886729121718276080222474272473729509359881348669712712980564706566225804301621584607733002113681084590910298760680339728719592315348972406487892646885173875146097172417046344945008855210556479734338585883165523682297382575770533531238439824404538493801226591543653639112560657936955722777258390991363873813370743875056612773150403103814282349637821120227652617829941541487682609349134277851786270909522752487137341241513805599914989802724634610751377695845017674116456216131480191373918588928012197080233382353662734873042662542366096482805885011794956992031345004009622336257449879891770473757999945464785905787148522014275931653681601493440523838165286698072874020103457295319496012418475520682357765147966379292117044404102537319816057943467496284459314525147052601738697649399788763651833051275008585606386739390116294389251388371530196202199469223639110466373402842400524987543124057726420182932101858070318262687878992539136897159885561959173940610342596092258558853538624085015666732598884297341797332384902431345040995734146494593430994918496086567747822535695699379311440589453881387773194944466621765090267935890092092364946229857952824654452122832657125540777231216751745178537382440098219393593372205511703559776713815109396232402596114258065826244498486941069281853270023787984243341083841749660038794667800544934977648628483392450762829375372714561136680547499897366252692047984489732218577940318808231673508177776125083743809661812848536372899124210550864276045989222695536949725263585627518807593196435066992126470419230809055301545501307195093809339023602176187176652886842205079259023921793548088272153882530737906089270247906440259479277603605139395149781846730790341309477811447921547579257193196181225796774033836471804638877398109290465038052722082062019110781483112732304065705398950715751274998488592512386393079798440474478514306353756391374170516622116544281281331108677800401428274749377535991256440250141802622492332810349161740082481822104715691317408315849206872740956723157213169541838840883832597968661339409022540501218161473188676731036400043922892731546433754547256951347927289793691867289395317290655047574127141027311166132607712460247915359626205901307974003877586657707216238662580845243714469975952507560900632967870409243824244050411649365972451554696431674263419844780143716531581931565205307249989482023339504829340426733701578118569876131881226264371072549855274338284295984277629038783039882907181874694765595540635761878442740400279325574825331969525094008105836028064730255263246630561931969098629836728439896274471126403824449543488070258254760743395207530665741050087993798686268936952436042001487050461321223501224344759812479910613083958485753036552834216862748214595341159827402373019712451308028901543347243914249223585056689257830984465781515975259961204015077979755083015340946737262739196170378225624731208967531485481095850975317644758486768070509851970677039078554072427995329279543206762182779155512680231496747376790113572696901731582822547361039091545072958249073280872939628815382731652607076631662902150179512711713479175527599054011337584663489264623021991317539997004997627594570830739720762531632621907513512554506161465576034166301017389140055478705509297402132679485004521465922530268436805417757542654956869890599121526736242296507092857580595411453396316446364092254477423431841672271408248091177393705963825869361087877417918650256138313906336608674009721544263336807989796734913390641402755348345582504967047885448939133485014009917874243184606845608440142983867796995831702419874976555286358753468887057967637143803596026268537395223430042192915844743983141224922393990167236624354604164295194323635180344019950816346440449315817800421992710538363297216230797941323787414207722571185849286062469971635455045965962779319200121908094886855288457474918824685507486783794411544678837455736014808569378369594442157254162111675795647918712287122695408054307861906375696447745899789942178928934771729669998988660681091298670328275659147618965815469938085100985716503302783430779717430869384533078551961222259718753179163969751231738862162105842154354899524180001570886182021188880801827786905179729179879571349014279359570859151762793998698992366039114393881214940034375988847821056045265288608265719875772270947289088163308629885879780074331922564447541679632278351878810110042348078369097977778200852646391708189063297134451620678439869945806207519178611703136682532724420640203435809978673820592111998690897598076538908002382085704938178565371255828066574561246965680775919915415174776535806794236993287812169665724197435500321041505349181478341373431086195362479131910060320998068985823603930600864545539076662741613542380549175844158393049114598866867418620459024234424671493913243826363182889950882768758611779354808852860890475720678293513462941848341910229486518623570217422541046695373504945030456463412619725024081122134451454960318829292180466980851177115279465666716267377522664478190048376987275434121145252653214097747057095275315914643797528320289901451055913755097412131005370497315428553284256420573337208126247561501984971878802574302904182741232638367892734167215951904447731173803701772405617518780949229809403330954445708851859632143203120997383243036195472056358638446720802131410529754916102317122111605410592945079761127799086729035248947779517099391221194319518244695702592912324435355274482995783712579232963336534854555955363047531983948983982664995000414189317490675379304669645580924759048218065054343755258127027995422124250215922239145767065495465545299284594395220209120148269187727008045774158504472828105050574925794538082993099419638053599333966320366343001973195902087965321099604530014816828541617513006154712509083928407978838468744982333790702546116429144144540781406694756794990478900862741328571481512123884028374997793046047026149690308443324911398145038501491301571914443785551549626758505576622253496452036393914811678202872699248816018379808647575117433019352659110106758195619929278197865990888582488526457768364008154171916584180538392321111836000721228752071507316296605577574577192430973584816089460347596517573283836487823176842827462931320861755886577347990361620977252158802260020264931133227099673228474467383449634871947055966824994484643257877288714157410884633765806662903086125430301059032431930876747926943712244512694930419876235436263370742385672615081802439957228311529362922201763893464422647941148954757076098044029882637797669443369246927796821686292417079905072567170280667839301721691363275484095388248943461085705799660182087797608616965360539912387471115752559593610059673238785259890699299631637503417241316493807160217900001043849980261280614781968621753609472434884079915130681967682075586914316368406715163393628274912145960712556550450249107470117440377630879447952540100996280083030110835500547225221529759800738220755118614689573276429739798737438957186525850224056600920577681480686884632084470416064376882241099868725863354702218245680800215424775896718887650885551254985688277966345469428696923191332982519615687905104289389819688296621367400180426075123656567405745694468491858124532055910723736463130599021566675097359584400376831942147916952678311105386986882943489582585358046344254372884117402003906854393875303007785327207977640629229060297841351182262609136232746666734955048403409306455114703196818234096301771000728467622717878731519807870112308637828648741765343070568515740632143670504993564188129577053009089910991541178348015913140290170633751101784000327600972652936527156316344403385047945451387799921340601748386285411862519672293561001965965591145850401465656215655445061088965419259794724969086743835573791220573065020942078433028991142199194543776295833287804651714958448227616673298225833146983376088125078020787405518152736619307300140834412820395153939155886755569952599940527960464888809014728162351274531029268181126098794759370467845875160624214255238511828153289420314334323039065966771455529545068856745001503749838716216836362526987333147323069076490617547847189844272530834656254969141302637133132014893457197794398412519850735739375610630492093743456987013080422104967507311690913184764176708650225740993224684041800632501957175771433408360465344683148002947487130430262777196423397324004908726362269262842332594589551887298248052565747007160754258725787406939308454185296576866526851235099177902089956668033811347156356464629184794144171362357864081796886130236245017134012959519624909617407333092456327558395459068429037238630019178020938606828808202079304818945283241362659637648104403146094476366136230975704797151387291385554280351402818158084573921792083255139955168085586222639682965890364252795524793926360888685528070783305079367066893801745016689060322418618728252784784671125607941934233915765364385111775485850581429714584114849079570441592821890883689696871111986539621592340890868234175798994342786316522593048828638125068215002442517537268306680015125270897718331874078190808382534811255741078685887373470068369054516453089822715827787372737189656435208575185416237628513581615050751065129183696172081531097432869758557165291304285428772402669101257560817053230320556751555633466833180070352669360804144238792189132090389461859273919355567814180362869121873779267303925246186125623019821131280632743379900566508579503374887988961016423076897284224883433216778977417698407967190776142854051662908452807912809624136027517492573038685695062137488943480840285301468838690443529427446796805045660203810904417536258391223970559606685759337561947499954201021929635903580660189384740272771226874556213540702015933836142786815591377560495929000961479460162531638900435185248652932038924657951589554396852727454686496605250682031584766769343134074745185927813213216307899604352338263776080587659575020003865518829022061720037699476314495538425259420959393384032946877866885915677456354212281757791781232229935090972942439236732149930811011871242962959332234054189461794184544759105060593802000406711592942523408029930984211220016864655410291497016639776472904100389655992216500615936473442313980754090198958506723479340124961520447190657205251811476719022580249855887823799711703966778065895571008121250861647236653249528215193639828528163179503366431012057140211717630974325404198139673478636543567309955581152121333018804987291848131116097397207465458507057285203522486845939519852817083990964634450351866553785827087140649924553842434331116397057067173396282672063682133086344929777806113799803665722783556813006327029944089732650669235789131885173907292065431584700879009626916519647782958279410485714797170101720674391368728879810426971700063984158035702938508697412795784640006997122172104286730488431722270761989301614828938336473272815653917887977711962139511691580951747132730457587984149247217399219432193908644528297487579637301101464685535122280831519004546306998837595152816491091540647665119817181435082269540932896218552643312406337420318033559669306737258033243792305842224159431379182609004212851899078137129048527645758510123199009434822532587549327445722666730914276568710194151597606169871696134442910153008842293007732732527025914146684775192953202502652364735206974580387263679442554311804839786511629531256235709278186616240838782948440090346853733070659422513569704392363208224245077169853457128989591894439341437647590382783952540649712609289417256288608909511288356945606107075436721073093803186070644058299818322151710407424934627854731881048723677503776609396917488191396045861437023840605046901183354396369909076764708436458681756173825561305601778985816129167864913019089966549995643980163262807038354676567540429493746390034392401475097523150945508226148425536173012303292699640669888199982691338650670937919209447795622455516688881445915336623767153592121836786096579414381596219190241561585021384017021127657064201145971000451336242154512655300030372415843886879741184364841048829617134482160955805050333854524087726514347064173624383972206412291998309748398576103596941709554290592836486008376503008998896849992487715016496236952010487737241284653922952057901775337678604413407371835216508142212374824250249093706307525717994291536604064646526924756848522131092181021709056287570252082119001210024803338249755720709598889879300006543718776330694754682218472826381811356219788596975584192901056523231830762614708365615551763190142970367607383231946372133698879369203792548798636563164100681470014854534448191385419660781506872771026107263352690997413448423908425261238643478220108666907218466417215303751609867444776635930310031204017652155543890884746287011850688942238886253465620688907411652184662397851331362641775009941967045918598703549603019495670567329740101488667272812854137086248741158179606044781148110135244899961059232720812236149090654796651546438702716581274317473274160958289279558692537249330519873840822913489071348594652257563717668018516391038534468355142339622151841625943124901611271854718420703115348120847176543276597886905380086397687586939630928519219406759215376380386562044440052231049764393422702566641771833086169220164542342544557529779832991111529004115060146130897996407332418160595268181071248374959846893751057326485731387947812783468478675818342188143743257839723904186091947032079313834040278567957336240111978508597212399964957925768532960583357910735535993955143787471058826472764503807959266934553703835607278528878384301259826163298505952151081457830822754139086093950779950541851054149494456041868690942537070161069780883906035891970081369595574257769804571650583991722720855260234168036898048593574793676109378945009812567231522445573512742994212521930141572678229590742191678744588609116573838669933681607335959806544357692490738249337742126836678072197857976603762537571566620465470757513457966383008823105727648195591251054148416677788596714607672594985863097714958919925123567759386723427308124128298312190604335333579951154920500120537770413059508119001083326127255865689638700501617484935686586591652715045965097111028951411857022699918610953333598190779675100784417396905534122377233164894261714448658283376102540336458992420845888707970330971683424290268761445946314614650990135599631843071789398390874325929020234392404361974064738507693168403873416382899938699066673032511519447858193673759990906275268772108296346742887224273971732470864118502165704356133508848688670697057148590988230605146433533050584775891470100850480672838141155091037602175888118502450625395296928565007419969836398680693546633730790316764928317024177343853145186779579930300226589683666447447560800399051199021401067813064571336961634371328686449396073620724322490408318046584776582534045479803421135497874760048036781025508246861887083332658830768733643857448709900150025529412250801020104913131397322302942389854575917123554534894670896325190822609648520146677562689106761853698236537679769247772646028142007783401593942816922291582868957387144077849438740874967897382727782015920338382181643891399369059038932949504176215416299922880485589895040188471672958631538333000881666399984636851248917844206151111726220879251021462608203059097984775364092065626638403566411383454787964950361823701463315549983736245775702705705849922571298527699024949538662449296089892269111540319113101435205657238645025458996563612692889911687609645769233963975121308472470000805815516134776135014679290995116887885835707141561694920528837132743219078931778417706075137040012875009301647043869044923579932320718807758081971811739207049552728062729537607691259205213093561223766136679238601489044754640224897956470162751714379834997142710249350058350506722329689924348249145527547348401651269366750832682366059155317540741065246274906048459515397576974415945123183138059950412775196078988634013125660194083007605434485174108087774693742953210045339207536259085801405199850059571587414379593334526925075304107276929707331389362951605716197704605023432534544080223214427658314738905367071502486416897782861231071452310583101901777128519042586291959353045914203287629110951863104725261487805285941677901468882527017162363559132959225819704785456475122938260250477826049590136389431499761062102308588557210027150175144154283344650602852857702715961804677509329603462566574650994581509463491268281325316767599883640807255864366945904558014987858819461627789104216343708665300270096984495452159646607388796777513711651114658137554473145507962613860256007505532820473099408680894855357249795644972311427802070621040268883777840235490635488572639350095425000680868925170543345079383250102737974629135106979395372056231187064897644350097309764840405030826442958169283028173588270169496752545921428445894491389914619513684402477030053705105568537412409782995941235601466645137429503745599584655934044834249141624024673657905970708457673232157196554708075020683579305906606490555060753820357503101162749260321076892376502143900608969378101713734573706947324004676447561527802342073516156229055972948700443902928183463727405969217993906095905220821537299697618449396081193795524278195809782394532181336437222805282062221126418289460296441929451320554973833662988196505422217114921648042840744417642538460668882425304345484336603170317787454190440941455928959635240050282708114161397668016981763057332313978135235625848399958490498438502286279993852561170955183480077839020642078363360094838268086869704724212186813988968719812029508523771657845412921686515089952979039091480866180640924006542084146749995639357783120350864776452051341751003192945792815876986476970506950918237654007486312948953258544906375076706206060258593239373685742385842536224973617612085566487398540469063366979642287734801386334029488689183588647645642252720111553947131001365820260833105966018945694086922034231298020428085980079242324262227240854644587669684391295580939836264007282043151113978974020316626066442718340985093885095894201498984432962091563187959713591760336283861081986863212975462904285312647508018282086709999019593203752358134461988621711751191042374338807441299535981049299290960576115329574544976714516504536894449045536585454001092115629929665662089687448251150738067238734424613711530905412727791839164603589887636059088285852138456216812489260033973601141721942403666763269827181134402100541835873496984890401120101325217183846955293275822806986501999257921582901121268964234702925589650844294442482159197050411858951466024462676848665566725736838416110709507152549490696373938939980842033142261366890337089222528300353347654018964072573429386464226564244004120909483518326625615615013253648081068081732045311819671824811882172335895960760570323594803797865010772613131758116622384385181988050332018192944687390521019374963781023427835383316485916168559523980819249224020894893876475948780927872269543665983900042736278487371797775296714007185821893971965808464063846841116892228145357977893919864490567575633459818351989221231401305743917188610151465772958195934525353016729065399849203881855771507467992640770519790118046229690631479516217109361652670000939990143654494728974910576719891564756231150798510486975361009530696094185823760393875059818398057620090063767404386036554177756752587945345264623882163038490373232774512770013176463984563691236129931984280738389291200555173589199327442504498717382040156038838797747567375971601568969926029043312955115692601061352857275398335461245855636607904780609909411329629861699923545926520340362302673309328285531767986218127097575779416838813295125289240664376129686094503365867209047272733036593796511423461360088940811937876421811797245401512638814308661677933867148335916055133967451526270776264454315186221631179769912947977484670623671652352716172097035042738936958399454983106455570601919808940099219475362546224839683875297542731650732401424355386748964889547890560868029339768708731122109120599496011714535893166828248964113731101547050073906972043836668899410064643193484319955663101743995416560792826122794204652988121936182557535918920771625055764050011670493136163579172793019474291135537874947173578445164954862534381497259588476625156124615786130310561135403298114922055516824780116272651080631596912316108606309333552061094189970529111018569047335737327012787866949689113701435805319575357246019738826409516467478566654487319177516475255942567991075920985548624963646238726899919184648629238255096820835744134822601239547594390089200440170554028572677808315921220640450925774761631421605449836839163768202757912382803194692024431492288660584833378085701441936662880194132605546516254692759403957477531696226987205716540287151328210929855248160963743740847023740091143179378611578541497139660195979944614766198434539710611324030983802579891653253242738787755911446922163754404558049190397634871411549794637602060226143476604742182718590223111166180793494466397377821747366454905561853968081242800827883561068348166822669247864874771691854056288180598662521437101021460057806857706464358936336677962183106729075199609438049153828825366282927349250417883211483957721109994847567283860582168676502096249368702427807158786420902698185645516111271611314417437861896710660074544252701817426216010296539274978594985767882430547160332559778876755253879432638767680160853939791451457965044849610686149648471603774133431678605641060848705409559720612053433632434200657120476008327785978360161050351996469360124124878057053117434781145454614011701902883111543925026187293347819821780950300208363468604093349564007802523022692703815787513248625473093970271651218697731103351681032304493027864670540013401787580216769301180662621109837432320130825956872205186056451077201014533872481975723111977589059872095543847953524349509130439551906039870741453020161943314869024671588036442821162583381379973084220545968141765445488063208851873027490658789648537859779571738097010108261712895436001394821960943799859759923065279503450523059415176507117517834975545769602624229779656705340951749291319814999006995586216867245182257926091614570184164945184240232407053048597288633498175616260575414011134608369113170868097494964499777901708075883146272161101802786855135976052941540209183091271057142745298310479892225226109221369709818460041477540186459813613538827195328042242904325825222540438119853015876994390059867534775179445101824531409274037412014998027405197265727788144066146840175365090369460432437911994724741985455476851218268275263331132230418056331353485400290485047612266621605509650680334102930688515171526953464318585194926534151262618961214749989760816942140072724885265886329972291541520444209864506944596199557766404396721618012964275293211943752818149754549838747985295348821528753606178248664045367740320974892806870824436302702011601901972173490309565639749837316946522960750983871991250690189815477286287128525914789352711339313420871443519996302135817665062861000670914506504612117684565282508097408259814272101634425957719514980140064726027469726362555459785243973947736242388674520993098402524618754321266740896505856787947622955147730114191772044231368638096712181451689670637878964087864528057721176619267048142014279988332538484579585081893825184725239266596548281258185250813276264064441003285745235798854910054371239395782126230519249123765898563016153196823460543922808369696850740127403873086187032882640850470912955854860224162945355464738399259744191663611637940424130670584423640992569201245996754941082588330495423575843811809594073137771778204255444574505931244947063559283348540366328175397824708212514421849751278053275855943134225880694142036843793215110435522013340169580036148079554522706417316813330692759091340110185485800071225912524925078421843981060871924868812941658608693240496566080724665329912117782205736054734759675695147408738884520463520213421308931503514230323143067340482936295048965848035435468467243657429757597757374882231112415186533757370217222268225756272208803237578983226745271322791105409636498313544040850939274925638585153004561186568757812647744448827659227549446785566707629178801116427503868977481432015598881863885127700811534219515868940002276445306887569786503032881680462911958641743902048101814738508895095567552771015821198602080571475405797296542555660132140451193895976358287449891446674580026281184317965423950380352181169564740913847408438936896922479099903017780656692208099145061050004227266689230056271707362273192517800835869384243397667163243788431413939321057003230318659817241328544854040526111554854203916116848028682513121428109812412591911789913885182279932194897346927004203670127867956993786667167033713262043562532436738256909907346540393929599471426355151684534290768550152607519291760523743893458237649408263536563815248583197438824146755307485222307637973532001324335896716061545536502189111977091828678237034848687225676228387900088094263304887167435889059338621248089517832520078993820485831743758514677480224969715030335827164493184403563777939434919274890257126528850154765761553810165334013545880658158640855723421071146176380834981374903667564634309726971675254263428972034904725085405586732695862370575136922430393517512097369052588343376924358782036957384295543642915244253573426164354404130638368688244914710007368084200977559038704404183474722254572120409241677850694215958030722403636637559892927584840201616968311340985976997876389695373555681737043587439230080705263910084641154743351002951525697484218734261109892290849788083054290021975128985315400531712301753273785726881694896867015179317825344580503140523124696455046465015728170248868321725430710576136600319697806123791580811305207746220800722111522115785004341575858989494357366223053836134817377408587160084195518073275507822426207247121869353014771904456185957516729482282035454295869152551236141226850941243280645768896471643602040499119657510517189032605524920863745112069861347192089763581711303257292945723238618138202785254673153357482175153314403216039050196726006015239868843912954218034902585965286042604728673085907500829583770748887730247230246652263870504009044119289839778139934260559978677980368506557184098020726694180066121743529186850861536978101351602670732553872099821294960612479422633763871407008008078996402308792897309747214816262009999604898503324133199351165264677304544115864912404284288885616673112967699170488137347313215929942611730811309112843584999635239684908372451050288911004832237099676045235748218661667837790878334095613327721909712227197579295373998452887807898992081842541600581657190243816616038395778195737017924797164672436138474577985077776007769658005659544741305761625013288177820056239622958083144352464523699962336243036559034793731471231341857022901388351729028344866532187785382904870921739938921365754380286333857856309293060442248359759161548011415294875889862817367882505280835847830374891740055611843438504010951523850213518132967986961375148349818611404621764049437284980074713666420664369711791646889657962406939257820016294616913432401736238559431771877604164202840575707077421982561535421820636871464640745092750626923613270135989913424520888218736551462054894223523803287576737727393378679052342958702167987541122952129615736790122786984107384493434642322093639789723836822641634496440657145766327799940325191996272511398074568878184709478316016909894959865710450750560199742834718573655233623480937658562931856518135212750128303947240490356819313590188281411985012033352523650073220798826376393665252881972669164379890388534652678215856089047319404402295323386067577795508084904003361201466712593478257877769251760649231346008810922429146215692900800649361419245568892234140900846703371671884636209863089561243947610815519711726967040674039569770653528627403839066902826243519147494987945673628284557184568927344576316203143439616013458314788818894682344581228286761234388109496325801389404905789273220097449757025466135057623972081645905332063650697998261386039932265618240985951561648716512458640937964144926254182817867075962832313864562842173129252617707477571710498323384763017890730407037689544619855641089935822143873252832586033934688296029737162655785655658741334428731317259770192515062927649149615088779062380947443951835361442162828211863625220988074479958500695150218786074007995855371326356322373182316343796900888888401589567690206478376576217024051158320034171465521585655649573912909074079574121650789067643765058458878226594629579377931044741315835030145499879504131625545198773005284043061955030097635765238429267344679531944241030565604262679233984526334224048520874490456450607459033380772531341012894050660355180594698124200228791328392755309527325466820033358170271133502164560663881437563654149072374038215188628143127280443216822276323527581155379575722974334093298129148218604752852465856116800771215582009388943541150450081752185160455099475776518015453000248573919329877535364919973387747569443385042147213624025812986854794224024934396723818415460963566781867988413413359224420944552858500110242752304336931426669580474478856164316560691765203729930979928793529811444879906649959175659814990826965794812741349300284607702066785703922775544457727824395887601984677783942713703593368829797519734012777155869140413288570911064305810775729091336667982070475216692021851371961493790188779863581206289557934629178053352370157311979006794448794228967289568857117847126882089089966476910284957159433414015609140599651377095327160412801242822567598142284229326211567345516524159722352918403194475627957173177316464076604599057914900669479162176938855347200832063878355342464735512167745911876707810939529343056427372234079008821601084397830091038107627146708716586826682748492193315178209931563641135806936759100974535952390063972140965935487281564798890662437216642436814244735476400933384363979778028577960674948588522763895677568115980697239249402152257199815874447599226820561556703165018669846983718306467793950630703713708915426319776028509385807103671228794170322463342904011786056830709086195841295222159069699056930952552737793882015098222053329767823901039957041842937845939153503166126971386421807415199893033387650477910326010483986253167211595648851735468073581901258564138995829865496422048445585309226507234668650365829294111431643672467479462810633267989421700496337203089357932477188174020777734207230067859493914582829670159683987842269775467542304676623231398559150074858799612818577489000074191815474155495800493602919367000010169383782540514415619862207713298118832294446507322544213903090649745338529863197051099538302719706878022049938037665367915573959680847235323654759862394572625362116906447806375153482194921179047690000090507722270430952994149216787136976080220907442348572115248669662418015374539784981235475690654468778412028810367369050696170461688564856727269453570872354089751420615242931805325953416803365278298585121163344856994944808271543389181088068456355098003549120654064638983890474809800629753985565293858155097931030220379767354209446679216647362128641532799674619835669468661929846169494073347933209599608577364599041220113829877306594562804886504688518202201768255366172345015096487746741303356150436232823327490748708621199331727484353849678632602764997115752174314895342005409003186875910129412940941820496565520253589383003933330336806003635665574385347573236549997402543172956455696656577349932706715400303124207863350441045336902925978215283728458099531181100516326152421623449606368187075951510088484238251837778155509768210901836594680844517602494999334752637310342147399838795543949434073300407042309823594300288369603857113188855925735635022890605303543308178077396268678240865584360378296312997554761201144160130482110898579346225972612887702515514165377410922020033028787642396975883102055128036895202819585854713066114999663679787920467716133210576427149146139438061481732042812833905147780005376138084653503474079760319170758875195209352310626583040157559589179137641519396918814426732488685361421966691807627040390568040846873772426651505416657866383392542230251883798386936965264855075708901945762208690158879952918080775707560679293047354695913067384809378653830356805015360421033314010751168644710471686294115794797443980690356431152212235174857875836996941179553970467377779911526864848468040097753641252539653423342177587135420952431795859495973424206674606465805481772940360594451120024052536936905101287723814532546118470638925013078580185803276716174596686544824507402275088086937291672454029443876703287203151461876608483729119595048930807494550618084495031575481690553962382905327864779442639593174133884926549306101281512943988297184004417594783465752945878644646278780943236777320566679815546887064214446122682896087001953354632831329811518216454955183984146283157879764085453466948705831752279165795979280618242859989160171100884716399444599457889922440471585331806039874920638737925438323774083476171193528328391684797025328826784773741896160890159150866530188339755779913891829115671101079340876763926206285470832314551648430753638675070105271150935887774638578937411509778449934563612168442663221823352524468330541522044114076942800016540414030552089874280872831464200911311144139864791060078752511092856711224221169755633629550144809437325669713511649135747229445763692768189285840304042162637695495390832890910298881076407936537756599403907535717044668768035599986126486816204967812924574009781602632859526582187411699525532218298850764374882032986463045587005191636821725392702505708985790675816736443157847919863757606616236215885486490003698018411405727991045244423106199161776775771308484529895984816801496350807254592080396948873202286139871687677993135916158397036501165596389217494446215648213790713173904002049521270455814498407752674262207935106568219968155957377951869827665309424876154491688317215284751496346661104767100997937569972346343244783095821080293147487108194052144956478378165145713599609479117604293994893262588363296022358042301623089358154824100575212388603581624182164193502637977044283897526704977352617959200740956219887852426671086702157635747857449860576682443071477354725716487218274279537231960587008624321408564968501323379332617359157024928098761745214379262586623941680144475425578154033725604457394611381266943424381678069661704144668043586320550152961178222759395294229864969844976857363497546184274105118442520688812547350022918097330386499398611632223663560166205392959164787424547237413586623996127929545212472584612880408621401460871190377446224234010051658606736277182665709552270211289100005044281170347123433364345367593199399997151865998399095678800448699113054404950962792192863427222151998170556130300771293609233248886648088735219831053134381117695092284020474943874152745875927018169971174762415037568830370046047555198438583898825287413480674981831260920128779227296313576144588033662821213917933862665256900669438144095988603728435292937689732576096275872469114870851746099053014599422620482913167662011177830829674821437142810202573143196771177919110256539587171990267423039528642674865465669288469666441912097173437804158791254947351696364761574130840132039631171586738767000080139428863939652559524342620141675341943431862604954112862205091499086672846441280152450994537411903051204107580973911250989217404903055733582508622466361126583825508919926397156650468781608863618744476742401167612425411033112762426914307871179422381195881545755095192837377189037273214228252596975707905819278761884307810225138923003746950512973032836256879692594080566882829987097643643659330886057141844671308759287685958139656881203317056421552856248977551152631165899989447878416245004423189350666732231908974368629073935222182314809433687847885086551315711905890695115167142180311045991329108894015959585777505328887637107633974416470167615570558587263168259797527722234799504474137352502605280713250511629119056772535894620755085889466430784329926352125898986367442066681170818244430268073671765608339866310718087002601687365573920398024544261648274539641723977544420068746580330866800849224815573849792695577130659985218442614135131536703311767267578291191672619242386925648524133490382032855545344945563433204705913535731771604904930954122163139157883052581957711905811614649415448435697347574358197658672420611121652599330661750777588221964799931569469162889496891669974804819130053655009360536012365014682178241114715171970257629767654405809836887991655840985059697555104004545603090150607748211598154829803365595014505198908784067290255714667153941641575098495580162652978976815644301635516133790667787832000941910656003753953446178417621069636821774479809511801951313847049228330849903914539795483424144559352530126504404244167914931059162522277357258439392526757376802810585545211185552135150165663080757937840042526743937074408012720933807161701714887762058588358497346327946143918746156920869951511287711055243218972919371932713357251089947885879468790381838018414083526696800716753826443663364229790525387205144462265947067740359698219965254731439847778751577671018975482869486459036044388064559542036871194933554622219811555912996938566133068486364229020063792824078790729154218653704016477191395368132858133838126303039438220861540113007201159526476603165076537559199639220743718856477823524477746430460239865009181365445860861605166022627672527743301189426449198666680063652729062689388014172803890623756859281930723080996060991406999714916849660375803823029891386835177707564294349234399999673169091655908920273096392705022942344076817780228092880937464307879400600096485668984998739450485573639950908766079045198041168703855025384613888389393926030999791369173914348071879157412149281834982691547057007831774635696574260655635324129457753829038016651641198173008246800173719616708239416865391778233078309527430804619267867076695692423046638452041303610764920531825531838669642857918966843941603073018087929904961460321851047279603022843390959344366958838821467068886024344574076791673129010025766433761973752735478140285949645662218585359079627358172316280196694273643199351934966948634009033811727723475395456577005781624809218176354546275096681281380723431959709903070003293958874222153293571782849274415565652403106806087150020601836789388114267683419786260555848376305780865519940090398097617021951160381003279177545287649333722334318895914858999736755109243984514369149720089656294302251155016515837080724278132969196623499673896610145797325062175720568825316796619449706828464454383724029699658754541575162945665633675061334906801697905397563917994742493790834823809681663977926650457207001864467623133943808705647399559876257688282878986801587436087775184667862986247735897976938377148760871632965233647690896338952277218506397899368101669738311934047080754806123184915689811858876886801165393851741250659894037941526614263163989460772880147249217092192801807330307421410601909854887371567656030099620376323510726273787414250808228023068379194199758257540868940197725599999732698861593164013989993071947343718912986724853980269013115714341389665658027474443260388295354247648704399541100471636210186846612124273000869219232265103573227992961170909762051709467982323435987884939217233207146772856051888676628323031944514815843194129413162733452745662467539630785771208377671332395251737355507052635946793123151389187551301364746090172326108977595746067478883726458072698595807444835004197806380734897530715646665855025807268608963769629330767726024879621349943139238950906104279323613367903318781507446130067781545478976220065695710487248928284953200835864723771192121464084971767890355905001290378382823980291206038542898402896143885870161182752964292258670405355379754465427086357727319378647305958411515918998120473231709785880894819323334357660626401607976003531871607526333403957463204574874171120053869703175608662114144304860558694020825231517422987689085706401779408596710475967464458926347505144971290171655857477931701114316291151682942441572406886926052982452176308944738652102114534984796497182897180398964382491828387702391086759570334820186795351554984029554629960920802980461263744565492384837749773244541362257196473171399634426979189359968938486421355106060200807528613367333078928778642089413597371977633590894677613438144188055183735974959613127225277176556701497314153054890628279718531110089673868483541449105663802317664855900390721545642798865455498234483010401029367726840863338880687755423818230165128931764163222604996693794329540570843507948885990163900265775998419374246416233605414596686475482578645909766507561209827549963927820486029851760478610092891390887141379607241103068517535852059520290076483970317083507817478596318509498874162935706608510482630726025561181533732183851003861962497006270215165730990094881242628017251530154962693637186356265589107731739849216841901918778344901448958704890449659754633812701849859629754106273628140450817060888414504713254364736078238124434353352822387512383098622866346543000113256047015989782114978304095724019610227516047442875681613730482003825161063324150400214179316040643558807326949079402906273774233307733543295398448506167872984567150012755857879666040876408625580831413842704462630391674164912365826218559021839531889955157113593155041568681954933663463079141896241235221099308183251501919117912656866342396922829710975228500099619290926886257113990239104262380918008508653052515917937118807907459058359127751499234152429772951226613567160950906738513574480841431103847481089432680634912439092672412953355612050883320001155183727430288496297021478679331201995743001783139082290034637332213309540752766615912025338676121575326228203828266724947406554610140443852746114810139720423631918809217334818099894051017117350435561959214792122959478246742390993158292423346182549043972441101168959112670901452270564178126943016166845111920968297655978030535243520887489886840572802187657733493043123461718098691808753762034518141723149952623219450618085008499466324274520203157185829298011876550917904743487559603101337976693833199584623242070846383865391936178665405861182225133154346908264181116818203083150890995293192465525573095847737846795994355072159806838120318151357437628079274906685181575901491195288918858039093674318185030784240981347202222325196233090678862849286754172503525648158852864619473243340038181573447096914566588099535806551053797844735320980368368745525998351784476118426034205848643953634186969812048415701524658994268000779798321998627145903354961701066816996492837308010154637210234401436173264140559144393495870413041696627851233358419951610610156874532358376959649177603280189700514648347319983184860781715037936400177684217205134358845327942446088167225132614937861918860345226392243638753298110222967195848735631659806045760714998763456291461039132482369834480400564871976940764673562377287092169473152009836338126760807103034145679070213834830621297491166151432887977275172412888811520066108395674978884865915515950462221610845757707509214343593727275241971237246618479608292945609158405530705995610237649620730683218183053591772229298909840630033704174987297630947674117894501810636927595591239215729202233907953475612714608291481524791090454704655476888903920911849137878199958565586380472116659982810416549920411922844463763833051692426923980096862998830589557084440177156655358645480382742131088877841515818005173249670644148059211709698394283793627558494970362766130527024013776535115821902259079634792393827386372216956317392553505558779007566991384658328623063365889569794266156468293953242378459872280196064782946175602527512283219507987976375353869611850859192665095897653084967189540375856425934084437962761259954632675360958871279924933128912903702962267868982992018692117726430505976809153770089525465119741443507846028893269332646246553674685161035296735874767198935358511121718161837048865185943236177251334036962035758020774695627039397875210353340803514403007370146947946699822809365087970417297616821048732929487988928412551750935856211585418741640256409031500039839172007790386346073264798012261178060001867894801473886381819044844452585593866756148646372608286906299499540196107785700341590834586780392751994446636443078559248393510709256137363395661437018549962449054605852246484030076645139784862178414402686994239980133899343922533240429781478525258009670964655005772642186424540172044677620455012263736854901164951144534453067408808362383495641698217116255745344610053156296343063674758160443509886364354526700639128962819920420400540041469278551288896699998800666058987196228761822356924944735737441945126870396977160427271568933868480339720647854836189098028957049206453967660323089474358319550618468123138761351183416291592577760299829668033969916005813713473353078121891455666666992992997792148735310225178021832984922867796089731321674348086083526527201914725007969041155269149496254329379707483221640720480465526753884277304379663818651014924593695650275468262608629209739169331781903763757284915557825795855182601327658520251905869168169239918365148135046260291997262812333229105155136039101846834874651726504899062237761652028644410857879396065474113423447922368379389728343924669828525354281377624463804914109310802888002170915498450248874690266660684229826884006667584371437206670114960337594959816200325559061324922673821909936637257396844502678865829843738007967030873579565010742115068447083027266569962885486904753562781543434188448511980796004736306974097008887634561946130323020583434416432310642589136913376441380614723185588417210328994895150974762371058094071791444535342333848379155654406643783632990221269088667900497318642350663435241658378401587351938172589970820673766821431160201345468340899895725445475062931325728300315796946141501785710477984858337934352138657766925145984496052384885380456161604715937161846995637442289334939564835459159496542734608566742286496214933308968015682903127716074654796195953821440075637280457678771055023730518177277569602863500042819005604851174291033424461895249047374000021876982265974510485685761903556757780404584767992780503940815152153377359869745700524607964346004486182812388478061245318792135455979120934228846202513268861376169249569468337444353701469848641679913299560589513674527951856005410373894788292680518189408523864921290406696923327386104460322571672513129433443437013883971798033547694754859703750699397194229590230326424029461126220770037594545354919028259395436478326855870525137918202162603405160186690422347077562935500810874885887650493460029617157852248188894538569599732852202339771378533704368979298752634832115676325122336822587630717165143621196992972998143628592418992367854166867579462556591428802507958611925162483362205685232609862710898521643971338073280790542545251457856788199338259450524559144553823068306912699671552258552579538340346107110224468375301145946002040684176197312712412832908718148871011718754038144846046577735769371103543474600984990927159910846121985844811187660280044635449814625394039184152073093809666702266880530248994979536796500504706909246496225139909163449590983553239223058129121511556035274038059923093010230854639534479399780979640066768141423549329383594140764906269907430287324314558549661685463815897204335582148590582603699204658575110527330119295447527240955146872132474010776075056291582693293668868899103625083291253772601492656315526215306636089666542556552409504519017650432942687200901735548431216265484327035523945704580051203162764354912124809826755549108461587520677583100259752872541391367782470512975795310078999352277717515204170783776279454099602741191317831761791572362716036311204848450228999281490557167430107088393161766272719188572050766715595449313016720588465431091692574769582218459503537836106345039533719257666831269540867326022927441459007495759842455268227827598071764989134562265764004109415727469865600755386259358005352917753203249501697134619702436577942936929954030605073131771625786629302373738857602964034266880702584754565716730985392352990672880960146151278403978209217635261174114308578047006108308804512662894816660118824359224165088417848241076455291106253679702755724901819569113973243873873831536659224670997487101277368244308596000769252420667531500632779720362827667868595145201376904577461969245335315965760051378376216414329867989254494889694539490612508674343230581731220328670187346683605453455357070999686476710563465151625431850776125808642795072160376208158224078575364075370729146241483958547996700121963614122528557853736103625610815442821772214957595583210056700704851237591709246737355677361130436422682447837494514941854035198176583776819121926072160481254542515937851164724538485480691940580392315830220367505468864102201003554249698373804438243080077741610697014579941742462732459979906338989366167469804937558781278280587806613674854310234784979314248664287358312592778048755859195673697773056041696415696048047295993745487634973634496856717433013901291045891281673586396359377818037936387021412812361354519823055503046061650184686024638286123730999281289612873277978691872658278221434584828143001901098024533160422965993877353815345841129431731993842334818883811873965977436888405092693191001410548208572763488713780282358980468599954722162878261254736232172494493538541382859147154574934608900122435351824987887713123256350131327131249802509712927121151470178573445143451899079810688726575870376432258491010523035381540003048119298988222523165035341928760447482502514484023209388531023299704920768217109981248492894671762774470162501914472562737072356734782147661868524498945004324422920737526375422999252964925784808350149836358110324481208027125277778067966589768403630089380876581529310112255934301405281633257997137969349455568090846622798664214916014462230778675470219343842577631229846006316290266557282386701735019010519139492331463024785537427560242945924566818555175675751200946483565555301685687971363200334055437518584915957863099421592774256006976773928286821644618527353901144517398264178455881827457153757213332725793609737696940830330199990625365277928860922703452041857368220125408347150807573206529468612747653937673307703050309098865733193728374525225272606773253889206449741641897606495502509921570910752834041559248571481309476327114097763390793089263714845093284564173090487745810511704964194234050145730510851637096622447873942940319578615726912626142379295511392867425378377246731617621799317699503753453632947656478784553781988691133206614007597677939815008739172383374797063845608173684480384249054206543527954359666276461965724375463558591194828682879359254915317953073720611016541781112229896783047540335006219442550040281855038281006416347480054590570282589814762718337464634885052744586164262297099396958539617506462796088371670987195379850792888123886007914419900000387825856096107709926942158355429071046558292613785781884362375133533610036251382747536977001266977411806858865817263561774846225497945339890849214493018474018913863524234013021898545589772062074208879133062023691946001408074526751450633417311030512788492606810882650857177654432099469049121622798300969460022396350774356162031893447986641411943019145267186625735546959095043739816795336445578463315482130832638521534570944471330553838460477803518971052414695847804298160476222282350394632538604747347156551099374377519314781016467261052374373890810818092147090888766553386095318691415921337579280060917075013951356528640082128457549176685463671656602704526196059180952509368877257214470149186490445164855857110828409759562446657656364672410761550731657884447819564117939187358957365974915985547888663611540974673079089206097271810272949935990959387020071922309962884896981282335208146709277336994957549790793512032663847550738750041918712361680911612165886073957179168990354339285634589222619027099388344102879205734320408716030933116027299033987709178968315116753808307264534649595413367347354403268985547980908025623767870272188539410813363763850476177899820852286520850917094777520071568396991764733134017453269849527650495196357817677582721513174715487533942127242378585658788260763713623776053290608624160502924933018209586780077764721243379082637431821642051261348914607218518796469805606887991724322993713702678388399928756933235947759976558908928093438524718602663677059182161530567313906774906053429035026510934298581296013359176924758937524898066828801596452316081684515930298456708468475620346100125025605467986971636599581554534104380955889635183482909997274384870438005945012691761199049939584719455645673316700993318734618918828835406295493057299476586668644234076102713127452245107836315971451301936946579427988192118925076622061228698377423503967864542581355295131500594231510989957281937195463502783778987484187164553877957896940633901439525752989544522711443602497593454004299122972685126801872370759714377174452946042699466570617794411726248922843813542834275667943474844861323443411762037801218850059264113945620656602966551332784984716350560947350673822779154839660414925339663683883955477935485190402040895495295334406804507604357067256086892956455963473891305382809867696489004689171042976259711408634929313061746411878996756025860374620667903510524673886935863406664326213162450437180088736026293965131209000023787759961688477075243158740091382027594726984516571072087859829978899234082258974158357415648473537302672131568195591535823239577719393773211014018735498453178443278298620762638531320922235393336459676765010768502458545925406957526319930036842967198295304132271781942038200199700283405308944823093323052291879881568267420369887950881591154956868078180600628194980066854172855502143204283330504898484432223918395117970430981596253584607011864801702553940726286319366431720493115636482912177028499208340542674667062348051757443527866570124553181858476744356752499348128135547327348137953129165732593842497070344199757066583731049177821851860273430294032703845042145666836670451641960564036771359186651914354973335535892511399036048934715112901732252167601969347874391333465443433204650774889455741828589265331207606021559645132245460086028971788952935825054015074953350563864469088573502494671427199113517061667117978631523304390048761593979614529797587022732107747422568675504256105430420047519192474949332621320427437849833051441413050172586135575085467441342935364398666897468671109645709912232734118530688875206628744337471297157622564135048992607441486463247849125186881361746319218238402171442354353237627144086788738676910759256960684726337185720760578336992153892529534615453043851163680941625673535770662284146827719363066121773949310685485402796924983772428512165287576455111914431589748479289896910181995792022508072466787190929596988066957214479748159324167238078673229593009151115860147408361660929661421461587565134953382252586480941068874354160562292515472646543528648105622060684017183060863030634924207360633295443104994167214315697926172305718926929100015099491069255620468711366053355121948333078366702345681964008948722908355121849915582654268395430295172368648233977186942701698518936621087250803282011442614458234848083653641632445360569089853202325239276452689333900722286300065525142284519322624521846251070894527388261296729036651181018953039022609274241926726058444481008147537500522664004998596384316951940318468711750215369648918848003084466015583561577999240693586158168900492788750135005316511734707044724744434852267742862858594536859988407971100596833779833003436362890766579001521614407683671887834761095495295762342783506794347058440656971624913485452870755554751868263137603061343382993705715261011676036873532290762172008395028563301939361053371408693336238612494698256939578818374262930138140989596714084031498567315535517285006189977349859424827725960321376654538540597359483141065517673461559870888508871061898117283321352793207830256414240534759767294418849813555220579226021764451915913481312262045419344549737490980272134498561373857269389544278550088853293351236236558768138777824473094561501498826802717702225560302612758129369529299857039263183799863453788851338017864089556507100202681208650934211635274099715066634560115506986790645157473406118017680092835915412308614709153041076042023202003282619293537460115126634460561277899488325379236633359387466050634876356738277252279304302237015848655637251385306582317456979682883683769450041386275940004268847009106499628298762831605257982178589446638346008114601312124445762087146325339139249704820832359444343824901363026895888471554961391876971416638332588217853758414718395393659866930835844996749749972968352961172823492226025577823991322649923511071589010455025893180229583943332320713403805188772214345805960716169213646426059724326048589756147039074270615466965019606498393381217463403329389647996811720307889271257888934930833314952805912356560274127869557169061056365049951467067467514201883923560188079865465683399910288803740295468565588469969425625021418887147073956050759343636925101181207216296969697361075583808739272035789675712013249431402831055416938877602790497426989592615033642553764475607050088181074757134674239523954477685432906245065188254126613066604395705562993930980076850099531769042262103909722504434340994110345874637615541789220061474198092940152182868444018217942216602715976404952085978844120175114181744604123789575878247482972691778717890837805192948120914886041363221961315549106616751859060677566273429753588000015247282583799490157800719161706796966792632486416263109604052305220202735851406571561541175511521882020090631486903154215588305633309047211535589965885487619988565814845295913689649052294315585606449280237036108394339542527892909947762667501794130874614941044304176504166378961121437426095410027392640550335009372799823578719707923607602104685276571338667178384547668773860710910546993949908226685544489220241554632457290464269067092141894494113695157995746561991359739187421123619204937224542016283192275175504316155765861761871771640104642640671618609149895824228959789825493233361513099850431853875372099529426217864511769166765752133036201788331953851920112614364135291075350509090952719758432449951982295410790584942630720881288437733168807926154106198065102735704534878817718320274767356493722174544507705351313179766401054015164693230474518701794594732593728068340947277838908957635832309039206060315530237754374231255737979306481525152969093439538177676446236423535861237317107643939225246203350448117649270006299102762270533451730686429749634731888519609636252477825581337110705659800752498900624233831715623479354989095562896301820439891925875646293925475452793731034665011892699637893909305900760824821615259158432413170198222470758857861877346637901353334088232348451093983713408284277646347824720228964682746036259715337685136115421329560517701483028066013940581839309888864599415286071783915741631527712998939747132141725943727254036678803845469135754883346505713771665403992492260499218743162379237985781222784228187242992744762642485352176966620383270840703099123633826937660357538364858623560540839675909180465051030526093284846948277010898768487871890326380778329016848394093426590729875857328809747397427864345978756881863067418074658414880161497004851735269332189341723623191315201320458859097946312492755731916968393241820948750153484199575292437383663081257569147354760452648762721479609507614014083762514993531003593894177689306628428498039231698069292846457978625844117539475631572680021780243310908789804534249434996412107569920595030712080600282342946202669487023210848861358168845706286067894937337386454052280574943850479980051117717405621430903456650343566148469431185900043540105349033100070676685777244306978306465918634025202036636510475721007629241588545871211972539326759860583304693110035663324501113653570775921645202630697780961858713212516561334013348326225058533380035868320545213560070205207562222304694630245441789642007044958582761310166170092606513818533355506416503138178238926924029854356783764846269571231064124989398963664607559539552104044135811716336880458969821886002186810378665318814857349360759449834402017998629913830560739073187514446063747428059409415189566032778777648271901897535021037632237337673441555844584224899334449979514549904638784942716441436754162225690067003342645983427065877494178151227524005236423721319255087222740043029510678492699508245557172083879230339088119020337657106755375431075295717949268229003000957443260717969142106992062271493079824663359764566225147828376336019026270748452717393253314475490803955514288329934066912021837542259201722272832700435219750434990601116835767493598361836428525525716408186525726855044301776985049678623947036968989101327221880718261045697112099258569450992479053549718047291899008772338493681265284904304771052307617604101649352227618977355217440570035721820494122567655436113716118477313152455988514485712863770517367759304899913857886433222374500830300303695344725129482291512576551183804618680426439616937152118759339559612432482514570332538850184039770935005653550038419523987581395713922386782174088650265538051469661395200163591540665012901576713517386697792127411191729522080703607040365025382396735350885108537043502317748123373222661536737201177075562927397524822493284461406412059621763886767295780240291641500079113445394881294867476946866790335578670472939288794429360630142634896398303846969419326354345914884299241380699232359321522586517376978036184836147797936624459739856057445957261117354332546444404659740014819006086167509702760412181255710991885114354863946124672949744104036736107814573418325733684329452833759009457005413360471684162310380160237274503904913251308458950203240038989339401558546510089274278342563216530311206726449525657737995827995799886886893169245136778149058334187472687531918760558712956808478603969090089694412597116302831979125081885265980043625991403308886101074436739324990756028035050233150490945373212368843226181869810098223093118178200875004347416327089966864637501324499195425362348448189264166606018308967324262489426533104369748539394731081377677943756049940502066068439182015209063295483155781239495087559825515293824917353497592443327691860937363916945564169368095645774400698145455723017112687942104331319911862658049233912148832968064730414935161365369955309788673124708407382299312441721622230431710608917093685474850100659714388862915028655890490076713973819711943780347669196251557141185849704081564771587597216899009263678439551240224227332219067616493340683472375441149836496999983760307040040734879967920752998523929629984082870468880521787764885097839607200891970859142575000533732328348779082005177206171109121335867981306060829226196496858193322693632750503972331351678341101908861474938238523187282494796690757486614281139151330790672949997135480155715151498782357237502178160695743681067814913958417272822783787852705528915421626698411898532014631274676361303984955417337553561768014559444638703376995860232179456124633730294595238210108313617143087976105774899899831006865571955661546641587544204855676515754389700090356115605331263781501390704583648700206836916304462550468027528754694077767257704681651112177517560514540049459774860915579736155291083749548408841892812267712698455799845979417833342631548701573516644518372017377246779341203511329171491342026110322847586239120433450243350887858468720724281052397558812503993683824152082485399155175431266680224664439192927026152316668598307745666101712928601209383815949234983782415807846649451467246514468022948196669403052709331995369791164240246315707225947105045832199212522128116273787191445105762707854878923231633907241520790627399184515633852630011368275838069514119993765241827538290123910024464663246684939690410587120137932610118532125515923187810323724815018047680287894176098695047619294220404808229244655561013637830629597673274282912624508947887467847914849999110130894764163574312835206954967323089310922039282078829039551136448247266514307326175350019179528958142461343508666909095976036153287261859861791139953969704091381812001995505456837278656881964287686241618978489830981150189427718649098838683774546155761552445835332897998861715210898100370229547922375197727241753825160311516828583365689091368588730604940998524137548764193458032237852333248539410274429232819205950027393623894965058423981331055941499063761007657791867872763225586171869418350201081517832356320456632497523102361713828760127135762681787101543930430877778869475269311912746793738904660230137784448361544742999724116206514289257103562309083165521916670148282661059726309081024140084322442754053012591179039055122995820787404566443394679823601125705952157395893439248315348982578713762600156895731766094799060454962767458580956231706928774977516261063413141174183232460942651265169326594175657980851065238167890222434373639949092110760696768527696968717574984012283198800665906291603913205428628294050543814299405148092266852762901531680626086473295027820944748281396919553918289889524511282293517606461316434724177420847831377506124663170360699922283960637920514804406692636690807787000624514095711897643095566299286420044738400918439061161096140138490339796735709529583241060091988043324531525869391107390097749153351909194098171831155502701826956756379631309207786156453083856728062833344681973177791598518452438829466596717443066267771024023455850521660606191338899451869139734568326655281262196732583671856717709833184588036843072331570713313194573749016973641513623749003501436679539226707339507879680052328642131404696857757286533419770479170763799236042896577425393716205184982747105103836369975860026181062871740086455968735889889415658333635662038199856953482559700206439991081613174899065775651455258901321164254807100770968400820999792767294166060470259978168291984616482530968909754252169814395201265362477199953269552963254145015410915296568989798650676503704739014021135137908149935225359831174249818001134239160729484623906978134559415892294187163306040325511941791894867628497694259394910504729037211012288852047498153299106927868479925228307947929220570708230506703546306938678805811449504105365176583222139063853574657505263040685908822580105741295709320193061046595771873751318128290847527311829348964500074504814342022039963376841781240890126151569257863993668936199053963653260475195755167061297006853449531413667352977633074604401460734300645237051676899426859928396977305773622815087253877804712529181964725750432908410913362395555068827553798754847357403306414694310834377560047798889648158313531109170000957653970321034440800465649361791649850190792843972558460565690860365126283268036878390065877236720510098204408748835660425522659606410031888826554562853440606202044436906886130894374687312370804446987571639193059904058951694158811313561016586399920125140598436232931501085846307267766501176117899006659807291687038295746373424703864051564578633770339822816728390773095237554945471273749109195787352866141343180997507913042356933458221667633226089950539152365918655595919742256398469959518933785483455048670941248379954080782229928481625594147612722025796512385901997823348897675606792228637099878198168021348868222657413989675363453422333744061153943057996551201538906282996849156867579258584044886727528585764941062325539932564734635382159342701143370231429994214814396933847387584733688409761636025220088069480752303347938503635352486191672754064317576406655122229807563517052583083752530767100307829533871628381090726406502700859178663991268098279649948400273740708110237886735204802280419304113567738053149673867131643234760775844829540138394796580548166971480225008145617377085509357459419794546814432479483089083326046600533988333509687548939380832641700176690521712157370962573610586949643318566216571040541776611577194648833592138484358027897947688951262728304466686352528329226506520064561716362856864161830947887422210367804518728575812860082431205571845145721971893004671078333545508336036854925500531626865466513252533185166524861991483970859520568547750521259306996085693861623841556093057299325449063252022360882015911903160923711796573006257137671127641537352013879099483433511372247326653468989812090374120356627439786667553248953288616293967378037828934911697019854740795862285000541667286607776020279273011371198689363635566682966895029180082815270043262759368546017221705080558215999635777341075840427770141277750720924518976525729982055254773004965321872769959569358828403107665225069674814651652323891922946156704097128594979872223613659764728116995907575010157515243623489800820878369845032259795061178595257159013823805612595401828318743823820502266371395838679965530788511114044110418937209460307927412139373350894815092053737447658208565750531785216947219718345837045179399958440541975309000755341562927322605150205536458328773571556177953302126160803044012789928858822913662128267754272680387839340545552544261972400387842217236039484274163898621804921196435287854074347733089002509786048965992464880845915956430550285086502374680875994156995185990267633530845239726705645124192804112287062117874770907727668806695839145575792308666692281779675739828768823402677865784853285340163697671988456262025535389973010300564478031714123503339612741942208518015798663798266605711711243436319055155893633720871165350701256861388876762513604843911724631012911285824205072780110991113645765579923151014878826285529111358169812998541351869054835681693281778143639240099664919636302718523810834953777358400427015970527553076409091676202760727782531223710789302256837825128408078275323300447153648434273515555952019271980499396909752142561071719548100752561485833597702909238274755944125160124039313062622376885111109736338350933913421730382163296056497685718534298137110017017478457091608624632958661932071093037025463553426588428403066399145539481917052828500611314497631947580370509344690071190423754178785961121515171845278402462480710417888629064717449993431055711962596560589376587472326159302651015957613878070301093061191900421540813163985144996530195323640737884210868302757948492147403999278975596945248551283004377836183204262433033021904923671403327699383302245851853034063184038847302383759712944369291132007918429265511695298727518904348767431848925960823337232578476059158070401456385270426657776200919703536562669678898671811097476532140942120215275323397040276840404710251165008320807344215643565553588319456434071574121933038953299101392709297140219130638168965245193744075617044843912317695094296063596670704993160259629045931963245415342072236000542138391140910590673958707059708992696915114872549375586854324050422544275952924066904695189101503796689012041909431808859932904761169327949195390199723590747737407096735496287775605297825406946121770637799446229509926948211304945392819892201653803734527920212291897511202547491084989231625083984260079431831739361842872679099084157456479939228841065130701265148190163087162325522538312010997833704725869380642518554285654504887587733601630438294663685105277328390850939413329831852851240136797455684796785975933722477237851955070029113385997892673383734410947391775309201149234224707315644452998433200594631031301712128285173571075299066787741222769669077071862732662612731501081115898703090781226274475305135401257540047041623618648359526650169634293288332418055171554388229917940863948945177904399688113696722741595892674512469906662578618727833091134344605677113369665617014560932242060907681629615179289358356428432909876790381738253309799442356654871795100513534626659437989345488662494478632603287744307196972245358807912637604205906376382029658680713458301991204036246526157550543344487121853739182744132591593911992997716821013046078411086319475045454774290339916315477488752960237168518801060924989857131909414481522553283180672633822057635591666848194571040971273949527415143808880690956178548332364800956054166229089685552498912257766065430827041619134659369245156515882988552838676931586065150563019080419680606330210385923772335941992592424179479729581566432924571021308103213534315322283817936749282334272854376954190178718096622422888479375928850683703289309669232468513777999940587920400892631584981086396490602836288633412903877450981934904452376840294611358052440154551254132842185311339606663270763729794245666942180733169766703301100167010477488785630073438434482103396346230880524299539113679648389748530197601529020188454393418235463902223383466414486610060955852747383143324951622134010842636145780127096533944259097273544882262999847422094116646487025253342223435003260477692533251052644968147716581647147795046114736464928979428941463129269336579272654687866467589487424326263721204596946498091330424107905971962926422510431882742535825385932911709794108073285371605239048554004464846991192223757298436927393338495211668212554250734394397439923979925913567588465750640555639703684178588714412937396462905132482917370517567649678755286283368828164996970829846175115998560541271996243385811539190162791800067525674415122691484909356489364789316335908950393705054719707924203055088081026609767995445885034127888111776899122735427401823826652777716620945714342074370266815355860075138431689012725985693310782209840608197176230986858624179726926835939451912338394017293408272062450217837419230586734903363128845734716296238261639812043390325492464450333469570376387445071718958632495958892595938072452944024338146604628780909712920230176909319246412551256511653820586271330115398757378780468801758446233018252629457607728732510605932007190928768756090570322843814445754025792464922092696054429221354990092269320290636528640204446687099452054915895544556944821206890116990965597714913424387834356934223732907661039462942025587201767086606614568747543044467081652391079967094117857153181403233857333621164623139343981385368502184433022499070129624165714750495042580673762828403809042043825774907865467785618529453985761045326071227317380293449191272294929579156834243235434723831274101522883195565363551139582544318833231094125158072639478461085865028423934388730326008141721025610357687220804731159070037266095846369396512363639315759450903718085102629568646648592687936235840673596062711080141959131697912990876847876083593773941080431705425058460688608626329209492051998679595104309770716961787983493902974696702301121103128822694646916621540053700348841514157629615176414970137154578730745623486114224622923978050186508844152326925566773116612576699371170580850309583548111413682475683581932914339005262093384459364672920314285464256657844922538626153650720807470250694865665791839686130866951664481875828460962910381290071419251909956351716620801557367846734680731770946672777588828289875932030236349084556140779574217818844639263012650390295361931895018900235809121822168168873527587232533847788101361962957373845031333648791126309744094076512588248153502640573094189136601939846189904203371569456879597644361590274756418622139217189388199515940726449015126603778794720377196010443584438461374636302409797098908311543493214536613691777309948506460475926910187765065482049777125956892222173062641454341883213181493501973813113035532256806310391660141730721743750900479450573476235246423480185837718170609396427082217221324439418846602673293860251287944042872300288594339702092784672389619025456688444525928285469673460733339574669070477204101535801143989771041776575183782288824177463370622135356263851339756697252618678793768696270257211324868713193969493128489815596255212236133369222365791437609726180717694660190521675227126985423992375876834147727850290253902651633505795492605882318265670493710221800898835764716539349573671051220259680106279272603936779987544612186216201306565120505492754040255586155146389355995659130760836268316832135996613546194561124111182363792255187635944793312349500205390115396808296418745508994395162138229136754489190223277648580923040609463893531459189202563196938222441285666447065685529866179711311232724704134123775989394114610141670158860696399435700131799643084030656037293381692951085812589348629539425278893147254840077437359158135344052525702605442019905039391130709084932180468335751541871318307777470223623164097887432803834456189606011681374539343425384377031161473963758466561252581706766379060910615747457375017168283757053020693783616048491476590655733964628915838698960742132456624883989017129348850715536629006387085526490117174518757893738077039623358926102004481940221207666053151384324875283834693915327868176311205056272616691684223632666578322290034797687928813899297254217976714347679551669917943175802719960406485850779367952781343217658177929555683928690402206781105928791134733436854334246300590255221200915595992382337033269962863342301283453340769341056392202307721940756417102117196588593734871804282874326824827924814142721532961486040475939138175224519677852530641580139934748386215765035917034435175766435669861148802712824718668661076344241148141225832792491107263910036706213915067838061110866120092992927063413537661140418765763546858113570993743745270351086766939019934642101798325067467367495620828916761689261768744115590986853869166670227035118465459559719342616558831119785062663536217466466929151442402727228870821836223900423269200392055750225447137227682314367872312585038599961536923598345872044501645375067052899488108609394983735061754804693387756106898223214334569618636455573190990834630960057979867437705791824040531844028224758543914222199460758937815796217954055129550315801422938400428417028405100161274965119302797941294870490748451456206743059356032544286058774074775511168723676274856257425684914830866459190699392331613894131451610505414776593643317322972688057987156037981799422218822832730768054015329438007930514310219907572422151479148257206915322475757552287010833027231672563681904072116092653036422018180965764361701722290381346032330231541100823967667413701503913610025021355119166229570286982279735330520091502508331464193607242772456956599322788154973797746125192624993100852198648848435150876708308428796684200474301146383975854070206247841469518743883991607686855481332430315695655395835401147210566352942948281472378823983644514958948865564711226613212346071630975018363144741428227420648483172365886802936630323840638822133145119347985431245713703649523338946824270624754583249901523656749193496059316864984681113539019897721892409825596436304326777892500556355185918160092356378543425203976251005871245839617638002224232117480809422408705514524059324493345712201054790153069998538152084468245191226146487515872639982951596046776083658244490686737760202902368345312146325163360041189219559532468891999675313323208630887202180043292290182606726818465231322891180908442566147547435936165197924151856101239099556097085150444062230220292270332917155552598283516917065249889608697085540689842169496983949920049065358142898344730688596518308567180852349501969696560423338417251286027725237701066062858587238067806778361486207407544863514996976427867776318308064174418681793456439667929783630366977810300436254208687927756595059355530529191783909574820718538048672076331195707160777580362513630934366525819039324081399936536009344050974001986415435161400586211096993222179985507246695459215777527332795757525989623942892513123667079184943484210236420693776255721320206201797176424378210144667809866162164445975605797511153712827497354626238698990428727913520462877900282766550834555119287839012083634112405143760835611812985285080215130675302425148044522481052617042896070662224041071769433966181469684234503295722404991889689762997739691980149647252931308284282124365224692167580512005015070606633563949323543493300807003394854752971748914279298402774079432047346952787100017880839065016994085218371302099235506464454750992067478559720391177462135098218909134792885981007077383587657261378575088958246725702957463654739844237341726529323943354788621106328046981527899065059237421494083671338354368075945272671334714861765224957863415515052089987198592356668441686348553666154855519033181506488379282370546365993068246116540099447312222112546052193448988148414089876655862903248152026053359996675243744879868383202638343333122505437772446815811621336805230284844126258490207094551006736264562529054119721793791100594215998076509396080286079303438374127681873590201911941060504125845196578055606214642800364594770357679185394683541272582288042536743139934465398534424087839928920143720922515833693079091754739405849712920878077751780132052854513746757015594453168318215634195652400368828886078382535602331245497811654063464999029223951432144981581526704129796766801923042682742492807368344458580405707854112827238106530008649351191454389965792725667515571865096628298523304013415516817273980738318784236214536881058080695147819971782324059550427196674350838139748496861864494214084612951691658923131947311519028102327664163043986975470854312196685166960744999083663604971941349332756837359544570799435024678120356659492869053327739933824612420350080668265437143611223810143880257059913286097402652991714137444988978691239334699541879694746561902429911874040088766930905735185828652833820657599673396956638063895788016254148166486588479241187039554986566589188258339756665302711422975711868273425619873203644733131976839556397952577159352570640836200483337043149608253552727242595257829477980700516713803639966028122535702422378870368721409091218035176892303046677039261425356929403658793768766279132362499033744127205027981821392496848150569943054380316996776602934890128618152077165319058639456332915435181343741239472813704489377656530527548362910253103884070490445692540426398388986564436102039975851870383491133655835704139607876619634603907281220354766329981426201670185796474804884612408537212528114702622847068607203508873911585395372364906007327475886128577409393345205614779267153239305808364644429308594012949889302023283018579753577649950375319959910686029597542532749308522114473866944894182142877559886024811764775808185587705164045451292891969899909568309552051154947153759379598225231195318999385733708088740194537891507541893069289707859847215498057612694143308357094724822142985064690536801703174528055130525156681383944749659111297070140194127219739692237756979206360089451800027704223284816662215581618821630417663183701793412413344400553385307068411089846310906284748506623446242621607963867573237147145385705793539546859325802389538809469612083118911887030495207641884388791874274221662465586501827667712398274336982253471072219824369865201967217090929396256090345980754224283080117323967063864114459262845722991236348328648951408682709575835004400002404713755138538092059428273878693272564212204340824036864903095414934745178377511157776642237867383912692007511882523911946870183566283784586383273038023206176252528775962045757700642603091389906478996967391001687223413583344046360672833613671787053636832696150022107870241999747197676873923342090998117536540680592571931790578259442224511472855698937442906553700290317572844645822231408269877939999637238574606148977106312265838220513615020429488460363083437846512838205319698004759598543612833340929745088760691516057130035570819716182724079593252123099835417866943880632143964527377364253213410653086572725114711532009125501853440938200552632952074287953650981555936602889624018477437327167487712265334492881351521873841813905758357514208328813571987853625755266509667171183074436986287711672081032113822708109510262972079928591245816800924657913456460724112339328939625100369906082082555613801872084436265266701859509124255883898971211237617934884357909706831879320681787165734780107540230447175447713640469004944511458683149313270397829676839573342474592776508258768064669195293850963167508170055785132402520882745825856652025699820785443229810721536293585155566584864262882024147065112008740985710701199536798696712609381996118107696263296922103871122935315372126766951725365823689354810998247520816838818732623552492367403990756394622524647017378374952272211035946745793306714230256711891869877065754397822450824347916891742310753809009914930337254358980056350606674123121356584872489350320587807329071118222636634115418350111788079792142881312845101921414037540112561430527150786377730904320581651527877130316561560640435162480026739208820928915869559303389055953570045084214642996148787304699601121589223445249321854556920578127837800279856666103394666190592903228450810748897001059287606084950894803246140198589765857774334253473573488968506161722003635761058612411325015173422249129232212895742313771837157181736595285756972255165991792686888131231660165480556671704577812946697522885208336591584869124197053626075472948794564638815378512773712170238853165409178063918488813227314668636619220233690884322802879314714848034814135792101297587219613846243333732311225271611081959762100226648117095730323960093888578487103517509538738814510688173508005308217842966447862475615271784682878557144872270121867964333126581264345854124239945845844268137941435514056172004739404384319323951638794348658340698469065216801902330703769248068456204943611453915054359495295116019523018615744344880244454455797405528622197598212444874494679729714658991132211049492360812887292677004728740978740168617643272251864829484158744719411727671751181058164889556904698150753245867112006211249577912961316790932725768217457843812717063453682663045050334794529900107183578304594528087764222974951563950198411974991402889784697443143235575627505020541111858403556020897985430427173980370416564292737149678577390305689199138011062374430215663756796207189408232184343334109805087554978646891768539262806964352674891056864213638762728363418272094705577218280132172784681782697874196425947875699025278783027947717808746043684857860541851831952022051737371118050772829740514781753657148334388486343897347162196377305194509486480110296336919685134303907044757431984982337164871643329374851958781266258151991861645393105610411885538659462213818913521287301909303005069048272168702208610156245048302427626855700971519832822633537090380300880147914347234820082140644820590474560657067667849144936658290864942433130043216985262293117883076691838058284318041682327978116876415936931595600042443912772993083520301612595118503071994586880481778612186279663570358246867941699421010197823699694368787170424856701324328619430902155273704856086909984436087067728859633685898591382016399356909032749065743478258178388574707811759524605758853083660864234188494337910299675216283743931581071609921969682942538897375035573746716638345424730016554080181529175383191619875980557817015240795076368050420031060337898423735138140460948533607220719099272171459787811355419249390436354183235754245028623273742672072411915501653432310898628680997326675722246678601052977045709829865971305856198646532890980519780318861016160693862897971180836243637277421695428781992139409665095048558899026160174329975989590098681887501554555594062899925064458605323071478507417800217703399991664391825496360979679326823021153301876392177605831729907504259269394144584046319090443170163740553964341604899879177482633845418870096282906242534945959720296460059540758867558615838469931112088547674358528339282666278751259126375295340466792980971043751622828516667382647162360682737936963501920107791986283964612105874627797007088403150808368484195336248661149309278775694712547288044918967816523906495595045484156218874183499666640045887843965773791248169363062508315220926056106466912997127717592686996494183558808108951873224714047414419089881673880542594185295946102003453028201554445465654356354544910263334406406801638691436979384741308493640183374303688337096360755927451089205038442400110917423875794191920805362352081563903454806910551596642824432024757553103025897329966779870080928248231445319047335052831999882301410354668455797610972654150008777987246768725223262704770430072530940683610467663279907637547708853751297589579428710234350207225833796328524504178605609774038385013018913139675454124600494972381053463051231716061542878953509983719795383353331139717899930340904005054460974372683993871145509127709113434248243401604484382797732939853451946446655406351134331320961715794298744552758780088590068107520169125558707964592164508201790500459672224092118289828411998669294132433544375803324833171009889084874984363236310323341400388200861082606393556860375400859114651046846813564711379165943184554210978312815864909469208102659120260293565228567786279692524051075926892206542106658833140028076274431092100481267787016656774718002670814791226501689623907145701973621966917373029363316400039590056334913210703140852729858392959326278053166549204383029221569087672502802682246180843098935776380577309651903483077464245974173937676670632689274785461249339323154837244060537103681912424925069753565557336199684750031972630848683967044023916604576582734493002801961975796461135376097438135887654209861540105833027574114143142267703266309203473490352225121966260916583708704501556770967854145555944564176884936552896725744045327914119772520648377888298418875783933404326735762102989076349098350682421757493074737432678708317781373091699464502673124121635875064850683719052985097777692684404359278943281147882999129330289367767138786250694234120358156495280285190263921204034709188587981048172560337077672762003350345485097372485232004338540462194604495712775917521415986239999447609091182797637224770097667958098420986670670020059084378762353989596850857441821264056649435659619573468947440051094057036944565362594929684122745130663843152578663497455899840094973164238728342548688398601165561793156215734426684816561128889635334810688508213764336787260141187340429504474325372017465947454032438311442718474421423833353473980133959333486002346097312225005496213994750551357913294717860681999514489845244915111274689263395151696079347556232084491995701907629616315925924805838332486050094973321304813945406620297168166802073543586731647892532924002479556952985320080969189645706467338541100750461968367206213024117902076085775253743478334568599470808941678391841511769503671786282691613688900018288144241222841412960805792649397867645505517160057398562786927050218716396931744026725350682518760450849519740225825416581359661445542784669764265931141872189098979129416268753358758598817233862672232509202850307606879204183966597972186534166625327489045722213667191453273416968719996542006585849734013369108840280235227155748838877920473920448170383203323396694658496482217559170125590979469762472030884413198008362548206607607352666518465692256206587953234723741055962861960184240192624014264381925120547118550529443186487900825356214840902325260385107032997017173049941174775895826565939091281375124949611253397621603752413144078669945007546981120618083514905068259844954785615972066727017438655850662793050125150295081408553232939043496114264008598865089695399077119016569366632047773311093157228202285209666135592722954453205575232832042444070737812840341437204440668262701403843323064543557172821294849518784844023224753941169090478624760602048582700493682027448641834730766377325125766527323229204602173989205919678935225190208101312072067303268941284133379383542845463072036612958082825670679464865067893299183296688825677854003662417634847035897711460314681265280694411648691993475164151938926825025020358408776220163059158591311550821207366633448850056483222934236250513865230613786231577113391679760074433005435756785143813910954811897983552900727785179263063652258501054707722249692603772987491388303195065578201169685710447374077940361709416468979783654715033951858191344426599841676387841598237665687963566613270324251267065602127276255378722069658074023242323654962049680125237569518482767820298140579872922961721360309395410039110429536498691820181571004281378699968153544141063192495220736555948208640658565748556525248179511402521145834267606856918670425242437645679637607075591459299948690899954682928801321475676133626113640093230775626721413534406223090453659240521049648026940800709926311230251158650508016371364764387520896775200634569369416666852741576488960796551132100726929395023924075890940669930754564828188920384279265919391090732901196958885170065937202851757882103379416460670256715388114537653259751252032007174264149019683695788541022116879366885962617099805619803002666856288644496871296154904852205641508034280435906764735854049573324633922312347678876046693624473519894395659402934240944895462405582055923470082693958802019815802106521631502060980098465028656639907491319926095926845794996976032900861108759523996645438086239051947496371475576379613071810626858703883220098971009431893449473129510432616103944076941397564668947040901714644168558515887637763465429920693560301164232606386671919595419280763600104652839953889837501237584816844449526275617735860795623036209747058020288740618045280162549027907050814131263175820733713992710786834270389467101078199328456577185659067021467135453975957845186661500583576303475149181408391530842130321834399042393892293779836830768570582104140518534768134819192414645125327079398569498951709725488971770212145803853030992709004462194399884276134087094520201745227503642586315785970690079919322849998151047579768428195778217708715050354037557531969808271288900914669230584120008806513413646452323866648344801898337987498658719708563944565046457336480043066037601089064845219308160194026522730551783565936135539481775379962288508692251120548952593348133989255943254387867552072626565392708480533973888163076079886470417028988293813204495943985568702427645522169153925776624772048032422078650839399976088122093040345773611508810492247798205978129475602984966339841643319033877638191870239611827493274986850458740046470545724788290123617030192661425765012140490986790567120344496048591492450914503206815245071431349027656968529856733983269384741337459461490834898147883559343200673191598138808879812078364669281847042425315941788696144135164340917495050240899971716856725665750578756104105853573279851601870171108597479406057843505865585001348679340473314552919559760025174699199538630005378107249118663854656031342226577015100500257409527795833455330196152483671803226538318056903554827313339004876543560085304163727021534610541894866865024312645821477047662608735109848138823156878741294971378535026628947848162097199917375088939775201302256091930372850182354455648534807375971874452712311499086895839603235626276225304518207057150285717187896745464364887985186443903658121524268906313367672087970235897937586031268906223924091376119445054331863776555104949019358638840667888863766274194200436320535612550244779457538956782058351407990021431230174918534764613307313381850932496218885688696825747792549537114743955570627496013246018842705173574213582191062838649764092118969613855502732877093104535257133731803387512933512614184840904720516749944908012321794381447457678168034386180865162275577604023166694086129241188993822118737860688334624194856589712941885212728152000488649239331366733703692606518187211264780755739866959463479800656359412710960709380005698677891719265915569556295252260987359296639401640863326920777306350238732176013749682781221720070103441122495896042953251521353800557384363374903405481123641583840974300242562254454465597300034455414135847928003392049178333190867180106428387857684326007803558405192350012618507204234836270263784414128842236466236427107587509365252690853403495873755042568942839731847987671322231279239829889795424498706603663764506919927092344228725264146556272946197100391369178723064079034845082964568178290697054798946536630308400594884043674981788255899287574488877525145380716270761109420249689003006068713419850942648258183492790233192726027986166039367109583847906707560111756142203932819295346302225270797269540316959575791925974550723189218268829842094033253883020853716916242098117052747552940353298287771194745234641651933069156621421933381886798564394140076134669092216748367633900146709493637847408464400741255568581759934356290393539764372356932663548053450466818036933633335487128706848432591611536428863972591208227320493032679070268966738243764671281629357980314526666535008375885953126609216740405340661020086183061094802700489216698597094974943102783104687087087562473478638619663534905972264744047845347463644801938477517445434821241525401273392201096004189748580571327015918948954108250183905405369778460954716081845470793977931440526708238106522120085419930699281703166516577335403215418394325613898507089275542379326346320597931492270167280674261173646952884070264968977693535773820126905175230930100916292536142050529880099396433065157053719773273254677958661634274871376111955242726314024684265494833943959829352553768695332150023396144578074169347229614520059819607606793698328247499015019698253090300308537660887220617687659325241158330042257262046737715416038931307479179059510338791337532170270987797016844926044828728832380865441780006639778599613732887455842810203450950992850250869475762571991176328002149546571743714898585308709736126152234534819791159527643166928364950834964090973226629716058146204973137260589402861948912885470537563050157732574262770038186320214562967159580245530687575125051032015714032013022737720379448212099888248107466216603929961058864167916988419530605169620050624836188615491831131273694163486409783753482088461641003488848197785357678489829303866034290516844065217114195169185605063792890043603376761771456362505219864420628852570208159338243421950039243044309164041234101329769316747318299844857522134450736336216385724754140888799782086152541639611457651139545404260307001657822942300263678584458797262824675045160901847193660917956672178369276398879480001940566192466488892713881837208878200948301477094886954125228502571891369170415435158492920460737650795659406713396879339116410347937749841738330486132156228405755716112096851914832873181898414163387510853162596380472531344725441142499572054124512779110538504851244779418905523466566432295787653958511885570999651838551014310084685402886708723913790161248556764731083909541581269970933909107284858322668457265684993002001242504685641960831406994186217882319070957237422669812967601001460446443026289827952649182925035256941339375340666403135817728847519901472035805917113365178989081507304636350200613805332304981002648985159836225625481160767049149130041671007301456248326423430703864552363781558834691059221161992742601204391198924277397958295666345262010348625892592769350253683044648245067974776423228507718423608293697889423990758965269131528402172742812952080199399966102057096188242106795464603242872189959760624660776376941811294609978178434597990519036775269235142346449902120380206146997843990237693901390402005433043057518812330002507914019010814375346614572873067040355486953425658002660364184964660523244827024860500063209325910247462971444747626032289863836279112963614042248014226439807268971800224406451120300162902365191570379128941511853948938413767554799824471814105873119651576354068575225150422787210421526544958512995884713444484337906888435132117169228653072815700386115791168315522684012447135256274033027179641324355855607976805249254387057543048190653940072358431313415306808823651954225358261605244041820543140167096220944094110959775976406398710700439053659482809769706285175747365975606546079973800005293742746931224192936438541549310278620517899289927284545144459971716097937799353622877279817735669239557216737992643849046306422117895991393611086588535841775183961069480342888252765945103234814083546738674300456499754122275516151794197864493118226388557740437023430592903974695990344415924474535474231959674406720463189100428401206828251123626433076878652498803843911809674705762255859097077282334525970357658694505592846026876114900261682410130704970642105438224999738184065527355191802611658127684594145016253773279972840723533800610202192683076768790040002645018811480460440238923578266290231038671409014468924672964622971894484594101261212732256549773542325640877777159312343683756259652343519453914332205399800146647077916258110217225972081810527450421577870869462412144707628813973749885146764211556818565666469067168921846730414757264821838630407324728237446762738582155564970420979341908705380027231649000588161510555106518016253084402980158959555273980124561837770151080219238894892591617377346518016370233008164898631941920515171771813641918495773775498815570142446502547901790028078617344957848693619007766404868197784898717889701822210917315603529266337860716065788208559744172574287215591269583529979203907128354100541074223047787705519660436668580794090918592430281803387570735456094673860632557173449365516937061270702033059418750476692828179636168325855084677196004370282790133811512397836184871858538753921879819539209347036350269996503146541638623390596792860034388820266577638015064058011044506992503415689699251413386450629809112232468371621027017182428443990228280095209870783240515541481499008917949718663358299066667978177916758624493015633841508898442541139422115393050206586301895093618250288268036345894145063423596203299580500596416435695771295135021161129194194091496180677041016533416545997847681982420710738731123606704810336952595751004917157206726178839970888919140201887172472595512172064792139228905932964331704985592843041624195263327415953560225115421183719986678957236942402622478569970137286891910351938244022545525443146679148124988623998246592847893623497211104905783959197323878207295436475745279436545057094850157280968139352228783472791139109538105944388778483811938543326584511191013248489993355826653335312608235450943066567774288033116605128406144160838106510099748745385929105808186180810993940888475041151826631826524427256130345857822517064299942487394623030156428000372824802266239651075107687639826662659069781204843223826953353693311231237326474402064398834451546282582545180125636769407659304788280394001318667002303286437666418655098793559233127514119340032309203748863185150625088231444817181650627187497504131732490776992914720167659568545766178655412309968693197282787615798421232242370350776009425424614850387001685912135861530359382251556894985932403191458499674538577772653613280912318884229387899345236581846989137647936190152917573951997701806008578923516093623415283845577344198162138871071701499234554959625036267534928870444948708088536862090366131804700912894451396306096468472478272553204046192790857354779895283594119087787144168558507322692210142754666299550726952904246908764056034676287632293558391399145419048786325385079088203969932033327629997659483372008739388804973477367969545075113796685813506188039136084729330320693023999048213042943432042642011660610629694211649405924062966732535970027197298937430617175479824475799929291817766345079667190528926254722643601425550415475085627994085854774627921218292964699844529955173901772333306377215860465415030278092042950429605226096605846462381917629402785709854315673894200933310138539823374003139666006453606062181753876199537646483210169995647275451126160258318346448239311260236356238645836479580753502827310985407135365745760956980489851968187969442661732613929830332758805632832424449134930132185776343616774989972465097569507834983794363999740777798611215052463321561652116930494028817881196377708794588048651803374747340931359019702281743409246761915946772430687216401572534174385539640296255975442044810538076197861827735815114365281041444918872799661659657913998049330118485818499651143853105255746992261600813648132214529559298986797745834417977729648981388199837118290441199568887963842319775921769896424296925748019326971156242390422699491076228190398593274910105773936816457150376444380096915439750553541147827554176050412608567716686752637388336211256165265730597308041415600770102140819348038427840617536809292045461985356653320685011386573794052472283700710575418868522474388845557537923940242751904056213376299188409573359019368944123510055829165138180537800286671825729127009396659962520387058672688451610602976042479066910280817773120676693493441144042267763365850151767680250979329704323609163831806212608381834724790933894860093525968517061104202089237654550387491731686188570573986950265115869668848314777483247392693800646574846722350745929708379045627804458992437688461512660354579001740501051864691072491922023499696551606134021285381021538129695976203808639411381966167946376940867295661085408800481290693165824108352345682018719811935060716770857330254873392526973976008177943756769112262564292439254924582166744877310978901765037557830291385626841838281158323621267630130375264202847502293077301986701881352919101441147428930810007117194889720162764256142036431763202175753718075687431541850906778276134800231521152205434786734231096705854151241321955793273893813297983673787302711840403131629085705058609005481325751532489064285608604880886628823509154265548121218673445797602933175863795308611062166355776097569162741033002158013670811870082117783004104482906488011376683960767661228577185492742765116777785315392568039851166508584088180173816069273227199555176511559813043478088831209085578391918730148341673354068904220849171478299334337406889551297872256266404103196566044197160483661979568665549302537954910504106970951403309662654218506928470101242581743989875761405827303126229989227470373817421350703956473212898004865771686437365900258024829881736243333172391211070852841804757062851953986101463767656211778767913257143060479356302982836763689666018773130184428049738644041774311719971326631244115871699921281032618909323232648454265839472932303952594544116167491942471052217797318760768418754790931979612239766178777309629152040325527325572363004076038061688127657654799991826327874576144330847609493740841929662353921797807413793842085274714998915444734142997742228911261708611282845249437698258221273002557398236594369967364553381241521062685763221805392165211425344982918533013361537373173349526158286582718616611931621073632614326784972517796126914588437432368263915329480487731305731584722269192876252968467942226178375781154375461928419229880251445417973060678300339282026959116441893738503353359954107543946813792539373009822028003725658363322752104290407434698965147621933379090190185339765557674870119035950278223878538769409680458226968941908166047027595263611549326849678077779263489763743561070444101948414180168100223007306487257137583646370511818658630305758165365229360243818973779899923067248581559027215285298715569863628044097382480588168321435729743161284702958307565896641058998969695758903872716717229944210108409543056628575815014934383167158466145227011070945715317415479833938090542696713570236053516451234362782776201505432049760936146518549102231206684528443077315008348661259154567344355916686909070016678857780355975081307428238433519358056315999125797008114875423300044415288312139482576838751225594425644786010245558771057584577235087209155275780866537259549404879719831187851313627273926436983026341214091055352295618934309608348400535994128216744717990886125148858031552188052640851137366442458455717808331636786190064780999302911598394276751689384430557265253409816826225851100031808706147450063543620118983166490273812819513301141906089264748012727708030411334560804304384959203356622262461923156676643492225298082887418738404351237176998654071386252752385001840324300757594283226604198579815035258758725016071140712484494020981496551055259030203265367236289240285037017443707718982426557901042964652299983513574328959931977086484653931319603656749364709096442713587699111819536747093463845761879599090990963427796591214426380961474240640448092544517527367697402621258683458131772417415097377484142097310472014228814738537587174161533932588143366577799736562122780153353422698385234451596298419805009848134849489005039234831531093183486268057622918356098573236148615685299965208679231676128362483014464346951718369559494254822950867877046754901924178185540188621542993066925692077461484955951972666631632210239840940264318888360395080780082758120626230163789768390185406549512337735483976187822789647933310640868790706213673567632818864278766418606303905817533932576897233147813963139687533289259135408106090164867418443239801796838330717840591111720450583079567020945514382256520909672804221557981220970204245441814749982051962051613667282144892623360845607479308920263020401221719385311855340433743935484867392988956881218899588176104437864967329441803297476090362247387518484560639779267858963250447762429602192799440513659101902966643536817298570602954751992890937809904314516531329273037727960864971951517900025179069662619113693195416555662961129403882100591429575837945477454254333659484020243534480196616159855116490216872905676859000052087578132752936577670542956175733027877204386504976821424947755549183044055698925880490918359661981323200571624085972816478907923051104722095879618325734506749449136243401501102099196561033678368803015844036438404530895135300118734384299539025409985961593560458670886597996090344815335530603225383111041900460786316013367420414758242759255904104492472598923588045909077652416059731015725482823194066276357781555448604044754466804407618679236313046894359843244698989099756378943133720143964227344345701661994293020985119886014362959810822422592903827040432563380896132786269690127435729059667279396324152525350065398465085894402838813000942724334154035269834601875381940046705702943709139462841914884641909521001015784025338977825912054609636795214206860554237680919304723552393140461021586483551974341202232866312049092495275508942833694067492182990813843050411847565526081651255802220684537303253526957842101231633874871937365954771922338005845430089861847637933239194791600816520503030340850047662991559584558977554728921908492874690761576722123387114250138882780095464528356189907082031711719256181223247665806140525857981320873766730244378583317714523581293821351511597074109643368959525444382733217710017914780615094122759177350609267655906412133401507505729393427593506525457145884328397085123120659826312204322989479273884727792790865692375455206766268448595508646039727758643465424617476849288964817336102959906075831095412597954933133567532984119715721321655236133397714990217079153109820633226059932622537987199231032501322368013613794628477559536877441408573866915812240051098246258832526345926301246276134832278116220798564742546499920309217289654920266048501424739538975986768644608980792649192805091444882699121848706804240519723084983668060105635919413636854240965518095400628344546633578104530951317792203293518083541152389985436616942782757234516515847080981996256130909442665707538843739887100625010027265952552241045745659502013381541766040159820369189684615611765699800264241969704311155914263571425077182183163195745431237571377636966086675785083800487937659246341956451507411519612463357214814610424117561532815335233757898690806900267138943399883629062778682596074458262683208879691047602564379759772331424223695940013758971572161990964448089049140791481240132418616059320027286663677329130554774744778651228455048726866383358938530426921489639109159286036442577916273963439833200916984807633245369688192954553985044090038030137096614867055879277790584073508754802131900007538782473447620318010477188136037692587484801061395258022588781834926165539719451240503206120009706143560067138291374161677770377542985369471141720913824793874814037874223333445298754760011349085499622075023297325637974891296590495105196327360630221740758554339140312798337271375793789521609786624604047757283086568080791406276924530965394834455088439308822959739254813242175494173445425841390844027210657421924659159263191095744569174691710724772092163354099235177213808680995974288159772860807658196187182355947846137744571923713183860180792541939053279066909047925911883769310522516623839302955242580786339653673124044232442255086417998971804457756386816343268599869843283273564185605198581675297535735936888529596226642878899987695606281744414319605476976539967000498028218968904680575601239071368095384245200109758925031153875208969852348541719909894758681035394305204710948841630510804076964611486191343747624894412383611824027292929248565365733216670616319393635282165541998337941223403660404849687593240489568151493622923733281392149582097172661273474611974943255364616014891402896550488831653362840367569140747633508487597137456222152103469822670851278282413674411610936432577098086286900723428895342491678179693395468447736081145074248448477813779093839437686420260671890935094085024850608845753608373615696554822849673325701945454792565258838971401105411527326185608633288106590756973536558223025560165189058146416883659128725621638856750960970270943375287518085257986407952409999779304229597170437871276602441340712555088691108487067909277531763690418165679673613445414186331134381112072938035323996179271136996139980004871109817442542701943790717131615493346847061608954112066256109078171416118995605033890161581911004276889380680471231115251798122982261999164191044605087784277846168155971782333003885011772458369383959736444106497949213640958838026601215015937990762707312119108132724173089181571109614314335004332694112064298841592926580082536069629809520287604294409808291358576206561800112390548624708568610687386968781374707924018273041987621472767873268945565814106354660908205107384506758695616878069775177230605635733170727045518136674045640835269578802837338734122360763849517752090018732868776346523748016005132549858675008259059107986081099164111572908146548030826796073804711327225779487101002872593315840824099449090131374430546750720407365664579891276931779803193988067216376835029622896340798566708214199045740326850335626651332625462408631010715756013870704232303457722322661864976865491604513035129707853043356432960867966229302629701652223920230137896028428393992042759976667949046731376809654787292349170259403770380581506449651961582148020764919069188897360599899984784606524761359382176560383763942233466602292262320901410752927848801365637960919668585088031091874938020105797839635854003300168615485699379036301468047639596730079133187018012499488897102899773536644562053712736479346911824432392761737864471486954313755088104492071900478131111100566796268726014325920210151097915517373865981460563559931276123746425745929330538727659829164081679557720579244982613415822206276788367410169559835998992218872732669454092686025906291411062928227656045209096000517893203721801558488933242787961259269962287493245920369966697534524539831252115092772276083281510780893527029375242579739445955058049164333196765329958169571705589299188521593770372320865826687053277484739104006637301374783031006950090708401276555131637071842481120823561574471347616309755840111026552081371422321479729285885813211368389370652842816699806200328461255348025321460371161659301366661783453254068085682604343004107233184610477652032758565422188896705226109477677987767018270916325464866336497320611490603789010889816527568501641959303529531112029968404355590267316124367035527731710397529052754163239474896232831119433691202945374410556268496559100216364076499588128798771003520912703333268436666823407406004261066763256601260538495591046397771585950133792479644903315994358015709824866181609376849346000673392087654085734285120639122998170446139365803494351512466168430669362753170849247380052329984315088414213567700768009593899478230195171085388913113227112071803721357668413181631525065710319061880011344286719586202761443968743204048657154035406231119131915961379781573618198556586959513322988938532808634181622986138952125852132310733985224915860410148754799695957647297087124243352964356737275858854745241782317869134469128616188095023630132039523171866942996169394962188063890989282329603118104389340951908888518935033353715683864511944117009134861169994950621016964665405793021007516037259033354203067806760055256911939342638250167129957575444357202746592161745855672172566790117615214222327564798331567734333317462659806166648983823451356980831595991452864958270044989816759757656693922355194702490554977985938264677253471483000914767002188041526573724111680948819763158466645650863811605697414008617459727635037985086822562292098234289330652261757311667874178199978240259241575317436048324438327657884658357641508791063398339819859649116593207149049262114927122322059581712190325147889747668130354639347911894173083930639414736572496492382640672571256495265157821035858732654838782663650089570763805447462305362322452745814356117674968575529607231296137231983623989959521604590686678561178430949329470990023312174258090501964078792017247612653138809763404500285637042223296590701344300459277360544609191652658624116750584714602976762530199058165152166843978111840427121446203051620910485237082240951449111342430900497084271824223795040965405965444140353389682749721772080863198474891857666227411016019734044201647947835792473319250419687622519336084738586699676138789100068129702560822637172139369864125314292211821134873305094621781785233423787369743521503938856115330766626349573482108198478559659727223608634131882957650652031842855671523412074320664931605433226958987327139299958449553045979686452769534276520190755339693755209253180868953231243486532494064556592292293232892160897274540258272088187777525907466884458361954406794188861446122170778118313390376063186475505950200415425009737639955885669011356211352446636024069225372231760372051815378919137582246156248386739926279110538017129247216404260989317053709226749521040434650687312009092808009163812341810344567387277289556969894522716742154831926319939545633072037166276465282197363268542578129891227362462982576875802400042563598322067946849134588754434670086850466577747665690632425803337957119366066382715571326332702476267778383918984119474856118964292702006846140538065775115362744918894644579383547205351503711914030109361501876507297451839820241074797041628705909658015198448987987016165447383652148406646508310689476853679962650776488415103757064372998655455492888876560762264192272522145450603158584392785214166176078551568141303915006535151747256444614998893201872244922397801841829061327109464425802949983986877957602495792252626753181504920540344615851731942844921609495858380561356345010176235499937068976171517898397980717080437793921833053408988893497757893222469659429529497447642870022508845831085244199730337482400440915445965995100996800821576176326692064181600825708433476080147643110250860737599300331718601700975726081809313319807718522238434479633096118813713150807548931278057076867549771267825137189286383999334999029257804659450580595239031767890426883480859228485375693960835514846193987272104223341356766970307616687475870193459074926600690918354764459408962051743127779941701736072327235898838256762047263901014514602265027615505708411473894131614077557759046446651541764127353914188751048543597938771748880011670987647166904408666972128704981429226099093523806966213186636364896533136089941635918854334623498611726346570128506375801604086572274385014313907064411343990723696232365215944438283177228427775724126547523627885198323564405483249484955159616678584787839545091542965869357286623054398328074022435726029989463791498975417321379382349432047522280360358118563748169108593428060183974695556033559168525440719560027007840394567848858985115630087501993601827798810386638531045106694250062134990442663526316522406909553881227973607045810900523223898782637384734839919562008768911131117480760917613309578757877613540865731533882872257805722596940568166030823549885660289707137313589673889624381630884528137651731445388876332497592085227024081078370085116276884440965467618404659975247562352906188526979625049907516971943363682905782211029659746400061334221988281214310425823374332784748970141384190582298290877084260675641477049956005096241225079642324400899870055022542167877927886930424675544191416623088757499249654253631264890653720213816216934211115659329791552368170268181346543892882305549507366187830039144614627029175161586090625754754786894997847892752406834039455502123002088032403725276029925829859909259253924885513836068786558780277111632555586314047717460303738261727666220144163507440517065950172389795144997689767343893221382852800809525070385269955258110332643654214137398950805348362700446736152343184861715318326628396759356174872986952848065115614150657220918546349519311904091648558081513898239741615098098058678758931819808456814528377344939218950188397291681163032600473204135418166492414608734135930898183459524098554096808460870027956390223531770405214018555482963391969945309845487170788815799334636692519266981524435973841491342559382609313326985321548055925084104193861297850692257170094340322618752258336619060421160415735078574673472920911627972016096645144672442698413637155666197586064919669843686000709764945739360644347801897253927268711689458272795523510675113720601773810344705486355133130035491693825222544936802827223972995833886689674766500815102429171059713495963993580875524826777978404554057882775096932817794404221833521339183917189614193953788590618379354208316306488980200368632562169879588102394678287387844559339755214626693221062880156780701032608810242262239579029293139581864933118388504246775891020726372590925977200284438717803543714232910412490193242814673738668452261833675854824150265689340745603337797384054946164319883860408030808022607898594399739315847308234093401663815770705525514779493657443653714055229711751056545231865397851957269365065306252308422813599573646160256450618660903864829038638507154853971187691933941667335348721880825629277330483650022562966828796671360315921263427242038674710120389613258827542642870606613177612147175827110443269533215575186341249042908336853749334081907184771699594993279919517132822718988067355109575475111897340020600864307716969152608897123108899149613400356935688671634360331694826643480425790944663938705935500243540846759054330494047746371764781938955486390358063722058059120003078168390871247453142161883773136229444487181332536027551959593893240656933206451653452615353694683817199588594094995486419310149291498836599569924200533567633933867374747464727695357382508617896804951317752350029047536307146003798680736118940100111941704756847986294086074139704740388307831528159719889378564349464404169238589378110108096238855078136912178749429293948738542203594166055667232261494248306719228270011048051903187285587381690348964412730077329724535053752536322731585210685950725594922882774711326473780023822723817626579033415537593101261083820647219541137085713728207758394396780133319540022980737234035718676065116157524378601042781399454936750967200670015214670957092285484756532865327153327890516156788572740134825654228860188238659562512533729477624434221765101874277955139240499426446860174526722681974798264728742009346079843555876610961277814765066725823124109858126016648522700183745330014268624456217061321149540073197231916389999104652757799706743915815537969654786499451351454729529756162183800921852269604472350207620750890341719553595857474385309929202079851737520365276900290279603109025978172087156024676863225832455184561073926776113619150937826028042181683517861235251495683523589919849050441902500648619577402329261955791446833306751246932651388577026612467534368106144696272032749583642977140294588467060898263244257477418770212524860736309050073519915232343238924367613854302515821057520637229385370455698608620294289954022528774590981903669979956479748845204878097859462170841109558347148172278316988258249685988486276266752540296916087120241894216335700983461673346989862302503742353515852350899993235218057527918797005361297283897071928510247085324728961018758453876330398958598831711578606295116766713149743196525912672925036598079761044830416928917474249208839194801915853309488196689174510707960313737364050246058739081210850041608476926850818462144280226218978151197599015156373624630544093552994515491654024706798465670831976139816826165564364563225146673625708098957887501543938764851690187307238951747502905144153037282549897354149754752166178617848540324961117894810880110688716925910250750329702022945172511567288175373453811593533641823525817640063607345519253899448283807548552050127010716695942163207597716661749497117048543832861734183580385469184987871137426594073130300484101983091959318234911240955633693080005520674139402687224635363210841122426445620264821599481801467204246570315862009142113558789955669275615414042730400351982802488274722775362906230980234842990689178788026879676394992775622631327852924734031755954501382422943428853241800783206149066553817633714944849735746112501576103579916279624131305926846368727747529622375070387188558465140486699495372044229435052061478858858377145854095751116787540049748585529314075654071869229466595648220084716918274892195983193030231672587560861037006859174855237559959804323249650989475787841199046038918554014839957791167576657195639069381438065264883943535737371067305741129648032526392370842492817244954600348918994219168387011184301365476798848128364825242705979598340441273881097780112330672297866867088349690395241802373356733191931900282138144083470200298318332518123575875033611631785604490127357450603549121297382097347427733917883077089635767770943608680445911934516984425887434341805614984715847086683563468305127183296599676117584578432225972803476167330782059783259251791791556733056666571673041272479592309364613726218312245791200055515901747871628611423043954402523886256765770928329855070809624302293875094225483380381130036622329618387017070274167520966659239266107646049305203291435918833037586934162325331233393296481655530811011608139396089663443579513308137678639450905998159863297910842484264116473774229011046377795268832851056102561916644583748715999141321286485578207904348028735166321572141173972801352403583706225323084477784303629399142101982787903573340567931986954914761023631643205576916533726709018914161365521652234655115105880087492758384870731745317036473817654245938090989738294716731646932194032148595769946977142568288882059452323147464836866683312465808649301939505075382381854501301613155642685162186039343807731068884142407766300564762806230616296801350853960545298196016225507127881339062080705734523757020940127265152861932991862898863681065014433238022703720529154267868511541634457024219613725634520235338433478431688957876963844409137680877489756491582902311867467015722471586503464443219839490511058549647984588440558082592141414014792942295452960335276192781466409198210553765526739926114929366254313269807172302609126901519585120909132891034358139464936191910199153159495954160183615497328087774904074393481335843584576373136284150851517444763646375530445337712082683221397017329480296296914445700941759711243615497259030228591695744235019909801685922550184902897812480060490118090474477584402671041134071875667916495047339570217020777808955176767960654786170838207781756499243582451060727086636414245807153811946278539814311229959030577326847821905136049987336535326337330292281049789044637225163331195492154046522075865432365888999403862816893342292240928365853557815502241232433695415798787606124590548780170989544501317562938013396024958370077725618114326680081053631291244403497549430094535081206625820028212210666901801630728836720870863252934414927187334545539101573956819404166657163464470369219924354263881856560990161016983394658460313522470405462064005377095737170130007017018541524128034284326768636871722316899844673062312731577175741488008395938060633462797502540443904438344056827443456610073414193837171823693772290232860079380612458851443008506336999481054144292541209129577002442930072877749969888707741723378754174509973044948473965178902213712012070795045384327088717339849136105168828949690765663667525012825419657364519788957710882505979517594084174551742491290294460311395507445618537360723599106627873977350417583302897987300850210058490832083076785253801056545147162506287329565284509396180617712279892508640260762958027407357878921821496539916784924176154921522183523933530832575931771560065214112739748049619872084774969976762964700947316550126409815972161566661593284358965190585133267561096796809023867469811777293608189815827059042405339708091038041943235350320662234165467673074289213690999945823105173029882405944474890448465145748119025598660232107844542617617248393190020032889867214709229726176928160716047294853026312332733273922675794135499482339411153563356869682519286437024787528193227069520588052963469031952735695090089052727333993218993894588664988391191537700403239982900613985295733636483056407082471873050534002043338369679527738553757558708794571488359352436422812637526248531391411928355934863109859911754936536920603239443563172741738860974144788841542154610441319799935366318899805538712597978248647560693055452495178870851601422285802735340517107406984254440051056997930010080450304762700554849004873302725125156879830544522871024540483039687654490160881263341422445702353787816127622994525561819862810948821023096474734879089212852482092441487151366161984891339477615170014072780854373171439607323460061040174463286146027553208088906106705145779278907445650526802938943681560976315250722062794775449964247571158431526631100421525291302307357579637023665975755956073363253665557952741552478034113762373958136987984901553467528618441343998062367157075156876947974751884372766105818884448559607880715599759145037048365044085282991930427175535215623596030402329760730298295503244853406584852699030035251264685095525313611592939288741623906217793195165673816858150990647079843116420201959468515841409102838125955404704082246171867047191889447784060216828484964971030261473111604901309272439040292242729126173377402198615500731888982688417057076698114917343778757533869904959380618547461223942581963273109164232130725732324938956990981647889904693626393625227503476168007588557634323152787949836740880840412085129016856476646547783914812755174779956355739645922173259912646511072679460593391131253463934653861644752673065002859599693048294586796732306898540797118241518586298648608001850790472449476401943293649509206712645099240184939040633763308911580034175815478217523941286234185042979543806108706118535671621388920104631850603801282742962896548763944058958442209974396437089800188548599317311908785435551427637884934878130066278993719296595486867164964263286367343260113221696591547647797831455746718724893426098645740764857507485900662965780248041282018703190818283529752370690337228744740314071505825634612269193029404556704392050660912407250241307411035821657798237719781311767529177612723238828318902582860172229255835763684332158093626915258442498855650185188011317821618664041435050002985486510783374909455563332150447491276772195285771462531964273494509944847068586509816793176342069293720219418755401540965361133717645424911666427673727601828822366905067940196825886217450110842535571465211835355262215045122835126657339554228368919324903027163489665787861292106174822435022117671334085529088450749589325230890187912868352961475641374000154364187160443070854698201802400898995560893823870455808735205602772747744527747260510119051325285577504601440408898857093103605609889700220654699142164301634838177000616998742967836677170004203398001344762732048084465938041490608895758093355670712710899906558016286730809937589256430508157175948274573616719854014721003284427481951487869288259320194252536285981570997887615286829959099894308677329274039514595607362977056791302339836276164243339618759969538493640470295951069671082426801474137561425412746527937065406871859451412780668861930114029088200725130019061293228710245964336682111806923661930538484826792881439229185752588225862120863950152831879205618924065820096656866361246195603609286579383585639406557081711365170786896268940357862004099769278440182474281031997005493024484790544769853307075186216691192305081602520237751525200386999946307049392583802714598156804597957238325309018672789773827432322044377748041031701016350903660252794203171097454169665976592864680712491308396562390331395071862049208123148923173118579467221549225916399577052998661064158486121212263483463893484605781840280807841359155641330651756733374492784022627334445304906403897496827137651554495347634159782529791843166627134463727117973887858642253641058131194818013599743099083914713457525873624199838688065752018911679900841021680301876953847582160252903950729582181663931424509466127049714159462503077727363759900523569694232751182759802461556291784325982845063537218531217356860561084541650215434109451552606978906691078326810069910262568678442125915503187579872120323969826511400438908204059939411701421381221417253378681789668593754053539056782495058198540043520080049454420752944305286063344665334752727614163647774446553944904958605288495130462748742878480620796221607050505963251085706382218474510342048887133882735846018784913153655333499523847439548844589463361167615280137177826239701958295899398057929088978329567199436208470050160048516452260244250560194000281444649083780156748742567774153921387714824400322007121334791226211108875483804522401274868070799803288592039516948591479848100313944500129551412446173290692636442023377249521207547137250459082935178574962417005517512468129252681930333389274846592151909708361917346724058581182474719031343331518330527220312338428826367668172378729313605774729849188447613076177031245466950701990893636504000225331223917897826098968394209327102147694733848090911837648163924827473913182849596441553635778897463510812754521056025642211070227627275228272318786020618723005125968834954763225129535126481491500701244370317068359718172444233533610732538894368104925488905751774072104686276826229016480540271780570417411766294704590663046886462349788823220600449657859495930294492567486171982211451783806328863508681187732577584018010885477157528051357263316139828219192150380027793697437676928397983367290772324093953827087829342076084201739503611320790960276580609708630805424298028506872065397330571944456469516655615716313321865824586221162850325457531010707080356810786422389039676081810086604234259224036345918109881035122433003206613083815161024768346531481829954493902790006675444444741409513250165739179656434155437543311931245425500773918063862781986313595261623084558320825479449744302000300167779898110573801886409125125995260330247560114824193212450414972840969523923410259179715575882361380367224856771195914268280105409279454124224193860487727513106785116249557992748982584446628377264303739713205059994351903352630307472984551161386763636935780900216255483330827472227848458749309499654893975656466942371642734561628250674910936013478260740087486779515837200766384019730855143810110200831307369057532844359042598295281349599061793040252899396017502714999268785847498531697220525517805135088308515593868104348267723164440471177584781696712311268639889085230257059189879438873743198304402981365972827625617876120799085524129597292574983462048344688282344804578714245220746218068204039501531518878577419321927038144121490927277838290979545367198949176348341068398661163481930084991196535126924243214580698061318393192019888989315750423248218587720094948194879036815015704665041941677007314879974036303957213639170783486151680678117106469076239763415803674087784751568638741754287454157894377480108235212605486327660886862719992519418475440934663731391759340450463396591384685781231689753011216942053393037784569815174501496182518912398275812045104337284375146731983524960526850004836964197816837334994078630632641058818529866488013059300100627102459978724142099201662163793213567671992459821120515490606455856079281873740106734243306902491647117813362373595847213513068629310269123718917349240838655619519753097388748841490527196500149663073615080655173276390906725402722993824985899161310805549295517778190745503501465189921985365498123135466402186575274450542369355927761814770584785057865238302582865631620829643266405289257959595703000911223415825958899498086187149207435466573088661026555135184742112623150531210222406383822907378015724306647464073403989249936480981457510341012204695976988723424957788225399378466855763365743990221964130609050140519209314668714832210015882525535477606557451692220324489111482749619867477544712290241187566251777303787385022807402415955782549810481101044568728923219636386036507120709821200207889351932446588617777055018270509047413611830358101700348832935032942168153371813509410498282024992639006376143357786830467224697238236454537844872696106237405021776540160817674284543130841658721048907422149324107669763754828981962300601864638894687569268840344350500284311477706765199436511276756116415248701036110026485068722782872647714911835930034316215300731017966170590637757556977163362248650730671840237135669367490706943388914956524965970637279289191506728788632856683581838268659237675746460041522928237128471961660698944299063530720192661887627039213262493717850973218709617696792180461037376692011411336398490851741967191632719427619656804317056062146739170900956498198950924554826919397086646434388748694658469251243072353143745036111992339600790030232336687106199429834637017855071547676782056841156713969829475103876027452821082327118798051505222270229991498107708827323806338382130278717971862669944489283416600504613760097163685602382084927279314767949480992944902989386420033657328985153113818369275041984640136248065136116041855066796206034065029422130559119550924426186564393441802959152484448644093627165989226865686649431182110336154746789206911431112610122676522857650852220604125385351396548823175196618780698093924251741685687787894295766300172866166956808084135962721528173544637744026254487347411922636241984817411786047193673851665131194288250377371546428621114787208167557941146364516475209581326245734257081362798532755299128718174437356960699543811717196867869114561316192800595601882653194221408332652931167102237257782468739228745366131919411062608303635846235959270645597411515192607001578664600452923982040126697729433635003708733316769938664320983655242693844777189103922388677165150882887606848496737747130765253986987254731975766596483031112018163848827295108796789104259780781903131297407147668855149473421857415258962177852776537268537610031862232354808491834265178958747485189912138195656261396992885112890754541639359944346119306038981902972611675909041467431978611335447698655162887732488734386191807537448878235008854237638212239928440677705570510806617475442603885232103163377130668178031618108545349826479302731512933025933663438545754676150216737556968954885143914290545670313536564722541928726119383794884741430116810858410389576996944267943453108274713286399383015336596952613490358852097056455464311646334236081341197618070263282208565973157197904513253332659419787297446536706309922948077344562770354314084497246008535677661099685622542734499479221256174425396271842257354079271813649826974063756113961515141945690539167501220084442444708114703061848354428974590819491206020307717014419068552015217436756848944169862037130474164812699432438275896646519548972738722236017062470774017455038598641723033927723972434231322164536470721875767871577006161563868181385665180528825273644556000996838869858976157669262281284411683204468803555543403782537314584031981137480400275933361554725449716386229642355934551346078792103278619647968531204330805437401854821007694138404690486632100336347628233067689937975404473548867297621133610254615774168382701114520552753608844979689276544104635003198165964348856926225323538700925750125918640437550587683468027783197997017860673810573499340776096322633992222624244126763811887527397656930827632083331244154994879948803677644411119759451517589698280969795483278668946577566516951745682707963089258376492915502276480361556244079670004908552169022619987594775213477068632533460019252530267063943754107000077082757482052575160786660636908056779389678634114165722943531751813985239594963188413690117800339483250487693869146741603289273335494971359290628519284157241585680331963123972178815318711903951967056461343598203195515926692712926074488972431185615415828226173417474654544259032928171583869541404415338524325673288876077681625464127558935567966384553669622153116252909191312639500797968962992744667880540118039274220459056828467626668792652798613493518757588650068706197619230597306868223124172549139480659494643876483911178807241111546271774403129244322111173962682284126211728424007527988537940844443643329200617460974653507136881927952059937283739142762631181001163447254324424446877554931080937403623707267159230943341677512257514930973255996225475467998817109473405938323412816396391830352847138800504358342295828683087912702218096714174644865878077828133208001692059430586393300627130124312505813112804779463438677433627470885879753761089200295610848993514100002349204098089458571405152451638692741159060107252270815738260338416208837948128232295620642979461823280007251075118763709039717244851887559104346838016534770023638127706948095097235944295975250770618950979958037607811571247306819580399939620259179218811412805501589587211563013554002170241252433611455462934475062834636520684893175037615771780801934098155712332130884363144386768725477997274519809019838383399208363429016030991076858422981211577013664209673938392156664079929248042907035222925812076829023789810635442608685231379223765916035335044113574884854569091309892966235339071011801326716168849128777215752319017512406359555390083622310994912518250414673601424423183463434320220711598939510482245622117851047764601447480426962635717511449218121481970948195966390949697455928885220025451686657759207115142274562814705903998292063410915765414236861644716835901360921810595829614090882782972486218515063336229380743363978187264733294228346794012771765475753338001412909560833355820044827900463092009982505381634812177631005433664046583221279231125067941597411941646036007004844387998586124116844753131227912363650270865077808974681789379223535835840973540210718325348900113794950230004535976867039815131607622510282686763732536427343960928629426581102622433162203807198876280496261217342227972814711543235153535176020883599896995747303727619906933861111184117908617444196355728534379979965790682863358488547884282785839724718679769737417546121170698585305739932759684735119659760890420060453224680425893682541858564059756124568570254569728438046855076711085576397615257724315007823253808282636888007200657327318639523932155278194143122340890148619645049099709080419685472286888661939927691792089972204485773590125560921312724093094596039455570392240756759007874870033660811965582198876838572536363477759161390540022825152305164546122666261220837269458756279618179879250115415358345518148813781598156904276084386468920803562989920152643264431945070611359985819959939597423868952625811009295579944565016779462353538726074858069861828473810217684857810016329107695456943314027052492062785579391323307740827197694140152872376557069739390067124623729361580046601161309744842516272027406323953793496698897055246711386373172923754138774429039200245156436689796269268212748990226434591309540016818948344062295816731234908766055774551402882358144681126614916090242236333722744588053703975349295329899859557619427392383109712498651062325532602583006059169510133481179206743557246959104650831229620698958828738332586453166406242169852016591653402949235064003331769817244091744536655700850391910279330672411558738348627858093005524461849383581941490407989637902963927926007282523177642128222311627156236456435319434958175970922170056207943294842196250151354011164737414615229962961586674912289329336812662686768666000209207643994002543608797216221103012731636124078006986716171756253653115924957079107891197424959340650889677356184730857244647296331340165071855408340981336819272087627146425945683564953996038669896327036992101313840903830603717297321381905447999719588082770338970468012767001963980907313611053259579188169771470837933421083565773137798496696025025561714413896674521190896563486485159598016883119170220861819381441199751508012757700837643383256349974175949471904834878171580672278029142138944483578511833189215673989082111607906008511866794377580418186089102986199352912965370895745145639156746898412767188837081875559449504303734860307848745967809653844499021720985618421407036637362064826352198648443065205863053541404295536241375587933022872968954901640237848036271648136868435401086340992709616047125279980250608563231113110263041254961998831731481403673428620542447734521756178405451705257082325272480709964550711246193094733788022581372129280095658535805576709590275851178577630329992892432893066149220828463450841066450456976164140989414125313200306420862824371202943275532785145837607322601287640505193799067207362617513637049868969020145396817309003559667794706581493592673915335672314532631184119106066276670016479019603116383080191609838863715950600678438844529007288572329737973938079405247075415274305015865142121552938327923908168064402578191630109831972016294486864223314238169976721795399696496659772014830881342529292572173408277779236575067677145465107202887021240480715511803496343894484820189392167801954118542758736811932176636409969173738304302666734731318646239672962997741490136296997802552113906987798617732347098885826087591901249711161645495567090382424639508121348491083248626181404179503650028090322281699033087533583665493112833336014502400531157227280461050837115095094673865347583571888137516266990322530161288890196233670664602356556750341204187463020528090314857853713259542838843431503325920065731555028673449668196920531011164436540222894656660348115064395223981086103456193939834951469869983228865132770280155479111227100735993838636193881372023143054398815198946771436449283308989815788082055363844482693815597622297521925351885551652724552035645695848801303648367924303937442170864225019808438587063952134473954727091021263919303422624610262144009295332861640434029886536709064491365020611355396938875669276844272683845211223962312691614311030494415914989939200824881543304458348821645067040519291077231914705701325693048643079042221068428789165317996796055029803295427625435579511683384043507441199808242863230868642036571616570448139583693120172724324993063100721384969976321105823719794144468513862534900093864183054060753933468190873080933276503058289511925001372425319163930718262919348431326351060421667789185425972212530726275331347703651756531249191112832879859368545128449915441697403550340696282351887501236727935764298854851219364127821612710959690673741844794497585662698915469326424794549168635634153996277392153647424181537569901250299369889349386666617620822348144819707862707885893566061351352772787806862097466806182394096590849231059361926005333014144113676147876379171854357101881970578532413701449068419949452945169286153234244112308299305690782583974599246353225144335168790547752743401832577063690602200083227386084979780844521010939919587918349052275877987170811331998717013269399689302151075582633231834880299316908732421643496359888285697165408263449512647890426248211644011324974779048974156360355386920729901329444200629138712211478074939345368871437650476926634452520162467499092471564227639583313083212543974487407103538070557001130180373540099221390961791607585555773841904702965580706798270375245723088540630290010129636746304892783398840397350624929654602108256443240337151645022776495829643866829313805652545496566328473689195143542233653930711559928550885004279506159553345145130050792007751058731760713278353607933011648559204241348260940473708145714217878118981224872051691570150765916535223367730051202608724427301219652077922456629258668413779782656869219298538086280308641961860109179280457159969270417420104421517535656512760360956691085098693228341303685260548672182922761565788955470145729482802356776183885976202277315832834630364978259392667915150977210271856240409168206097307037622136663326347400963266827096572838012125075369763957204967723998029011434327464347825880386301509140664628478612303537239931239023487922706628767242035161407950554722208064782602912134702494104598334790519265533578780546017451267815041458647861306695239147743287348115090969142446684161852050688041547892780675421182777477478400295910499746183281916640073733742108936410261211738505756864585342816329632551644467926225299205437488525150499024603408878951785943092471491357442988538791230022626896003854708974856967980829731739677726394486833126034031565044046612086584366659871073817539183013065058558028475702416786375252671399624329655758161171773128213469721030871616638376263225576764352435990789449867619545512850096447299739597701274616843894541797033207948700238310301480490985436857296904773185621175097724530554916597005094455889832498279537116377115591783109530479661821111001822206329135712738934790986037047187866616068190453556532238841096636551546392454864827099355565059946967879502410438416022690827298870299900599013182887560593682825938404555620153596107799926653786218358020179900295955458157987224413342687032276916487683139467717096779911745663357912927696542972619639502621001814422089869478747281506496167379629023119890328718285897541551773653757262854233533551448657774668830844022859100886891060595173436240620628773577378222663454079812872219365486487934540857440109608439843236650211792031872662550053650107015030263075603606302130989224623285144811027637225349797893143461150446503712126896417627484654539049409583379162072534633548122913001337494096589009091639964049428864345904767936431472222273018863765209976579640189802426730291808854710015796147185099221970720580782958631936240287888176499338714258430279732897089209436738319866614821512468608757060365271727293210518679527297728310505324349161427013265903656971512505071940063055104610686915814712753177322569819897980092039203249013277614604974274656286027918191846086209739568222114208604537342631699984614429435662608085724253983494371614630058118793174382810575143622165063282187784300944030300902235544321057440913007053415780681853370823190167147579603289051852987658962683577491403901356989730911881311130744083430232826983343048484265424417647505007142136881686998336372477104354970649053775468800928379123156874936800449938317681716723162566019688054790099643134101252833308478971859650631786845884091802526494024882534499018017491276790235180409237723945640343594828229494518219607836022143380684932306845879066431357307927099584449611629184810399861385925801290266708953788943748354363099703601652163147726866129842924562406334946505294700638539605934697320653617650832529079392880321201911570069055314909571099941158481394585958863944222828744518674816869437205680054207732011413032369967745993256793269789091765320222374333883391761931510769210722170131920846165985813555613255265458257841895082398712180169294875384197421136364658881069185989493204752558085238437916787701477730357445822597690362470876442328537950074669317360549010371639334515471976037029461446658549775012921110276010860493791924752486959192918325785641833580052568944422259372764359300768446804143267466778156111550296984720395992106961723516652360195175142740632900621730547651014080174629535793171336149313159926979593751419092681285255307413090722023626447819579039022491153151949890063621966717066654005655771315496717004660944119148836729533522855931465391788832367540902416304218235355972907589232484880272851469027640184607653264335728901193211424663537419747029005423053617278727447657323677547447152056419257028971088836548473849500971519791363183599946718154490205348162812848652359790229974279850978990879551059597870092538768870136444686068105341955547923156742073943524135171660155954177350583734695857469264187517635446888685213901451553776557084229296768369215827451873698426291505917863534569247677769949220188630737901684050870091562025969039203692116903619190750963565687957068679924970302147711678548113874032071114754828738534055881298349505883986552978357437342179730865469334001498745354853214716253212894506999749734846543154197084269140647558878200353230134291427251923376260313804350560197817577286239532169800253554914049316615611858856217936025850251221405980596278851178821098635836172831126734878183409516229247944431259115849976671960905016361739100937293126460836420189057842832825641484553291402915884539820357472191014370121070864243753296589900722737807449630648059349810733204568349106126897517658309883380313268722805990672502147082398723597661742659669544203944992951419447584668093529674151779114779633600164641581221337073740965996612017771643514141882918438734302522493426551891972692266054080140943271804568409195425353354551770013969955644369028891054364757262023659602886849369929098922394237627132970703541452193740427530567415187870526668654664016131663217747599454907133653133178647418616460824544102134115414493129208008126728128440090292994664350856648921738574243906980307460741128558372641584976652618789746411014937036016272953916085000568095341961103201747645381158770968051684108981558011774293067898243064912614958899779261986573695466597367882149117451306488288346742541231263991279084184790060353143175134134400237034062936661676314609131152664607238982103894481916021015710090432108146730602420874721640807502007684580686709501669383602032664738623312954506454395820524238559305045136610224209745807677077577071161085666031571067715877667082148965094236438064901192789950706469321881692118221922469853253155950568763204500419010503031653636923380377096462986461847124170310956082363951839509819888628242124743681157837823820467230431088494924281554231514429798753708786548103886468485271341462841613146406313080630792033217739133224125217268005843438065573768377126165296801699649596464659400843212634607190245164771713990229474993562639407284822501785452879764274344847910116220674507527315065597711095137762508911657902165826594331875191654504518457467285148873246100213006591980247452988984506323264819312644777818827769163610993668912152733137502602339020348543508592629868632074684051252646301937326021425268646521783581086440974833204986214995458450068653051769126445709622942976940850925220219989412403264735439663287880096687877498182106379742921915329446694908187060580919846110469208110645204520446549908129592083641006601383292197707605012898127112174554379504786346784192574386710359109320949798152909695471142390081897190503010926169515949647720601169120342805171072726584088653264252596634198786453243857785671527887310594186688922816571761103264357225787155232129411663309822806911629552740779184333602964232146366432457599963411385762286788428404791709997661439649491344945416829854621024920853729873255173902496064561615529721820633336738062736069088027077066656670055046857006342789633586358686721486046104311647247485940131834217783996964904472599779632387878100780991679818977861930527509997689993747086234465740398636280030699085281214186704564313431062455805903486602295991548348710031553690378421638806094906960485048758908066334217626145458009926934481742745156233469757905890592404229786584300274269638273361563761494849062794145323580099449350478141638653476969559660101527056058460413301570037183171942025221592664563753192289114956716881712527700059482462096669781804268488543051793240930242240150041426087848106161571406620135908387829945337419839927969590453195812283075427275210637163991431966536574632463041225036177707700162500758483534908533898167675890948182311933261197470093573565170786963796327403797363218974140953927265210827988870508129107676876268572071184922108193324695311478363628550732391319196460628162764149103161442520220130750442763617372443255634654024865680412985583456904231943121412007092394148014350104117635922748288318919644534376746970229271171650039769380192221399021608325317109211044218295952373422390024683561331699704547918867814359920490597204943035872084993895859379775425201498186079149202803301850157731285957748265701775898144920562076611923994273432430041314447890209983639740281056526486642137472085986628556686988330265010421689605395935533970091496032054633872826933271933692239140723218478438490110713418772774325876063967499581656958157376406780077921654417019373698257310975700954491855930623077422058672360861838456245791861552167535349207214314181579733715237635659582476137571482771083276931411918623971150097663143695520912132542760391174464741437468668981259842813421897976206803056545480224894256148036328441512182765128794799941772718176869749241390161610645955384928073873584987892341906908180942033862509779261696393471332765698181251988287738300235251974940754450143264561044168505654674716951486865218980585176471685063142810788221544680520677844830759472126706285622880824474614389422395037519619722013259632751748391302903129860139229578215853428640833663389615079463530972224957931375737557991423489668170387857099818612040294924205038444763364512650672664763109268836755593069711350211215057469899145389421049466306681156213187404431389546910304634083231070341722041736270124768505810048196645474942049772490421930500098068630240906516030364133321149079640046249889678278431999504686238344024946433355730150774534160950804616998381275463336849398870665875175436073801727295533994125641281349413779169114699039302045268674955360677828247497636016388690127582439898922168623234450464841376724544491766334980916741619236239970457999769443420947610264358577622353557655211730366731572134396715391665191444674409017438963132399611665247008235005676230072592501732429861049420203112690359601847715388491453434647082595814854108714504149589013794523222055509595686276950728542546645936801158761668118980709976238216710495500271047829709526826790724815638193457358688029827496404252645000100460034551813602299787323765701634246240175980415336950116595625381250444602091217501199555198065495924017274196098548404368057369933096993247720732348677058709130208589336765859311198572853055851208931523421992712158785659500849304378252532276245623757058111925912652755476934469880834866188379694853638405052244381055526348765602651570061187254120879014187040736779477606465323955376898833645850091107933845670769350579099144703311941005983160630404717181208481475275282200703773975156976219555748706707889864844237792315434288121068407505004171770639478627192648805011301706966534958421986940463603826579613499000114437293527492467555003860514058512885577517443556198131835763653344695443471449442932925542575453318221311301123882925103495701732595637805527816331856586901619270991300223928890302724369480601037940628149820698757189738390333379659047608086662825008908084480325541558454730682537421194959921752381730117621091804863410305585759149947579661125505997915719886346150714982234056838891927252162416100246452456526272723533269058843872116821347962799265441358576076067353979671329424893776549136915399611293555749961812455985654913281332680718287457034143087268892561494207278337472128150361367335615750878023135897826716051580936073845867569385735389750402600157062559665896290689207088934662591688653839673332860957632110661277375495346405845825273271897901445886732618251281683074914787583201617601261971083781759896533931019193562847156726160459174158706778430622352594845318997387741170599035315706133150187157730155561034352401876134936777811975517021544419680863784649207595753831204981386532369623069125217713601638551371539412810286107967474725500521581634792441558254890913719322219471626484031588025927055349690874808187341773108821827663510533881483896259078655307646932700272591074309497109036810415391796874537103187842501116730328905881197772609961807093806187791149278280865286823109592947682369075173487168100592184068220847687041404619768391627901148053085836626977890570183141190314649460651921778640369711136583909599427708516059830768715592299262168334540542630234250904057568500975871666325629645324535037872064594185082466745460835188395436044140397065920642650550747344403033471162995649817748666325491229330357168630690684270311019840472479742936424825921197805651997440469955239532849977971357191710047130157634313922334482235333878015714839599411186664433328415510496151561567718349516820948404063933423084693009302908107311218220440154590443917866032632058932733526805222098135324730404730153687640535170504149064321978149504718989557710809017984097540466962481541176086869972275473113953439500014654531641678994011217384000943880697254779463222040445727108611553739078583509719768392525129620453478351093218536733193891931041286736710219346166854935131901838669075249792196606114959770007454923483259745228370307745837910022868106731358972676740278226503726611093405147402959706441687620575920383484877956409569411339143088787452312733313329213921307954797493163916157470984321846794733874817565928811235965776306507861012991813225794177089306729501957759184858777831459110728358643263007995884895908333460321318437435612635859433169624682632090232942028814817332424317963821585120828121014457792072685840512405682697162611821347037956893806344021560816648739450712308730201662270590302606540539068693212186129667541582512712671802943499109833536713886476063581806141440313157717094200015814476460837676101400297947606043499420842334543921515944062049633904776013089208354508955975802802557192204870873406006670167046871666718877210655730457394714484907974649609968535223746405942290881584073851466300468334840246643759214847673176208244141925317476251702346838224667614860149377125923695795007217039923832151331992400356778890767260947262976052444632316703791263516434886374149815203045258401717809738734108428380276214792096958870725864384720524847825283859202710811678601572592127851047209766335854881524502215217006503376216361459084342245076686955636372942539225327806506021268226501747375711003979886135753347725797744814545181018452276013091172557286796196124895998386816399614351411196433269770069200523327044765606219762362803015798104028570151479366147051281682460626013391160579289800658557155406148864430175984457188719174066735154746835876071834600207156371043712568830212477816071793188508377552633904649936831367724856197938351261570871346468701166668843689049898102704549072925207277146935025709689331723256398648078498892044976282939588156514425477145213095271904759330618385962093303620189210126551947931487949127919343167051100116719457530161178477709190940515390896893478898163529082129673326537070645412277757967355327404344815491399448901147889257253546121933675266379997682543315145682645247632323218724527363841340467887541160602474242467888015182470253370216034188923529152268345077375977812295005117816014183807228570204245656790202457879124529512399978130285294947018040396155215564996677618622399108682394245006530761034883264877484809906826969335592125103907739207948032733963626697663403680704828500801262164100155522719580553238770177109596290892187361354261604117914404011724271242061845635197100676319186681061868687251491561376288069405192092128234595056465758121968349847348467572371079338654188700229041222064449441259243664068731997856852849225359159570818478089207695080475445564114750413288283454035368875611882920098772209656744829964419192100974910318842159024166373078795140235707232772713255143071619275279663406207241898379040373771428603733631594976310292553706493688342263892724429008853088625470796566773398217906327783311794615926842365698981997823394474274564610818299943128324461051959143138382802131073055138082839106779455859328080316952193538976119254845835653473029103483991921004101532937226995405997914816784110104505707362938874790311497007988269152014266332013336019138002651304731157001244774439762120698970218972246692754011218295360516686024117713975599577545559093365934835138015157951342622916241956924360053823934558698524576279865764125515012339898330913126271843631146726737267239513054673617892885731305758748592645163809188992887007527295464374649623612825407632772118824071831867674958521690119984284203269109738084920865481088166339419021448721592028073520983782974553820985109641340663232019546684579525932531378232363326871705573244004206751250751900101860476079727270211467143809099120767434359497907395170337307661948646433793380444243043083800785850639633934750165093493220053376447805637039520259526254985112231642819170896284917201356238174837817008937256914148872259625140991638562556900904848098258601051777569957730364707066121495002190655566898620868251036429587533058922387161394027534843603996258432604026532462385888385893410938965285468386034519689480683778031774916014337831055225967488840094055328553347778373585214419834697272577163619055055681930425413556403263222262824680295237950480906587150920450391510864627404226792139864317655743622589148164814125624096498864782144024891547239700779604025272528815092692453780269497993631891714323340586044782571429303829613954010061051312394667812070453877715774317947509730874458272982954532486484810884227959990757442479262428116253811496579831240048099078494941158131237810659231410205656357499338721528864255900021959751808187868219196058013310219190199152436391235527661874549615158353796198849337575327161877220125795978067130485271977680936197896960921877093283143958611653045978273565612738356997386345836043844633970520053592392459317316765947105005433984533079925906083832346032908509236958178841287824813285086910575918503581082999669326608563089621183693560468218296291353039284502100810234422261558178369348556122078485776606114499694812494773860395506664247473855340429695972413166192827033210601411321769936406457124667745510162826279849870110121714118241694566390368395788759928760038328586623114727580224670781678939382778096806838097081754773267793123858771039317050639295497058747316975623007729633939230947927566225010414234595431239677730207061337862917402526659887734862958779712401980137508192096530414379430101409654292588304719052812190859519177595534149798475564952985654971312044349520259239448027910189224855711507402775956935029952509353047599664961895593709523689150732455767159392070868853510069658477161418201083974067065116474630746679632386009782900967832992355856161179772504560645708470060171123848358778634240133482719994791821849998038920774426613521955085307573308726219598700587101891442355007235469506006313236345091271634397170137991778906832882918149445546571999090554231864660805510569680288767831897280006164502952566920622467231522196692632484404916733061730227003000340015316484669541489446572225066057337582034279922590941404542722355103596659305316527850612708438160096311863893082498016669593643686367797358548279658597865725354892859995543005683877487316406571654343304576248259864217102259192444551783802002100574884222527207508927196543606305748244879936516827284306929381803701383915892587849633339377198670623255951004708314057081810965823702555759958487059211730019826516954742516074275080116282842387246966596709360378140996668841922789287852426098530272608958394544531088443076712689735961534395437237114714625775528071085426214936298448401361121537603769603961236224131789675918434326944958088082755223520077974649090655031633500890717773094689525988586978427257142321908253780350041103316676963468919640053378409048810885417364379006554612178565338256340704968882814410902099320289397002944645727131351007759039727436062630517333502973035312725248186750370524719082458006083553726055897965938901225168214532879387409483284482993473503376907125207984495125051792893399501141060942207475160085148612971684379416228807793207512990915340255431584360873120288683034070379080291496287062100297568575720390664886487507553130000459794168955695000537120881014396875590039092321911502600838031871691540599646161968869074212570078108990225103973043389816241954672426996302456618718712587435795621407794130787232764549924890265800828579752707104112956530604565926493751266781276386831252942548003866511347958516508144534331268204094168052727813260385778842217678162515487308617243840856403188439195448462071315056250897295225170682186416859376064347923880416267867406191560544607862485018682229538432561227756944107018966936385473447729253011099887077399005722020003796230621010747115421429344423354448321559328758754906564348249354249007469449072706397107202976185355015277293002609859259912910962959280489712721884726428631177910683511546096329183779461880218322300142834530765349255302575073004604872138530591048613705296417704020035758798496419056674443225469526788950442138786612341370915458733972183048541873417827544914020066184656460265337019402503699393926454744288159883741380127825881651358545075025982321032447347362677140465156300973006237344191436170613089617263027605689960213054331932738383652355453018583548446816965196244753511278892213003025310709812932820064946187863504690018858579998585485518135837187721214413920287231696620514088151226556231466829261154765048236508337720940181878694419859277063754104289216229625794175165392921121736935589691512807113177531922561639462799312868897648839516194174723275947757015780084302570505115465790577751513971859623493976258006567580952323273442968048782466612451993076342847266484564582718625208060964632795744894341034917341113927696899167771072734112852842132061716453038877917950892605908400282132508544301795019588356549260854204501585338198940461002507859956467019357724970206527545739083607253679360047192769621261211041857082164573124535727921699337894900706740199811299128956262683140078340783095261235903587890475014087823873056956747540101512260512823251385620633731025337857122037103644018401954211667134116499146123359723511410559126447109549184947093939247884323915624560898022321072284863853579257332815580125805799199725624626885487378389782887623426769973846354661746683784783799686051694838175722764542589455064977223250497511318510299795811283153629019562481699808533174374029856124026596473822893920597176051046490999164648212234450999683588229728638859783324614820314184948914248263220727954700250562092957573166871357491356663000624012313730127375103588846004672619825981956466976523511204517636888775018382583687753661524285082629662362032412299407067917132727725959108412025529109408211482606388856769536567064436455293613989220704466906786866803593002460549773113349468656702853818336214022020022922227740612827355709103499525764841397432505814169106900897488725283021570587946208170381440713973406372650922008842848777210377571813211892260820736271902824238531635815840788221855144665804497884542700100879706926884761369631131932214610341499272623381266853063772685551524058705004238599539040045141298161980590488811349194439810244934000813335225949798074880115843163136323823496149283523364745177922788532319877247374816469048078358288672664783499346959897244778373645097009221157345507716742782238603605086835281311403451210278670405521091074790744533486770707567693795187976118834579690413373777437746712525831368190503495457656927243219987417896902178837504434393550218236917595616540648409914043168014884816894888865048669542919601719531152033137075128571725540000843490353532048906252080490648670796269941732474125340837891363754530445149268115914636376466048575161503642426244367494217162981503866584365905162549013295104044099710768835271926187691029857392727176922440330818822118649450638598814276872930813228950699065172928736498965302075775534817369424277496714519727896807803240576337853036638358780998733997078370262559027341856277602093579111338192737102016108223368009474427841616830953204335302932032113244949749946007932328966144128779266118490837195396360728484132963995608111328636225129233036982479866916567040214257221025725408915361482289499602057313948332735272087424418505536230581714702011343217280783889953284014958544989917967965429768288761739089677233848418003859025171593135614716730393317857515604245234992465457875943651681921233522569020044752715903588404023260898781619929132831536114281600530347778111231108460408454781837266663277486311457203560239756573359471717863537734730303679619394756625157206130959680849910918037046931768110364782469595042913270002697018225434350273744498504445978417766412902114547395087158135642526253000058119036274509764378934662397046232687859995563662421448207238125038068561059501523627856766871913654916599959314759970238920573055400490955579378321633869522454693451763536341179045781720742181990807859673798070310891174438013220235469907974141613824473882284008953694926294029212846916767727196014496393627930879117693999733540483721038513221043091549025995997184594733633460187491334389716602795740861283243255376120300197616459728879517374652095266352172710911155655677782337385140377718496155031828328333728622134268061822999947062989490597514130049961958337116351502086989741187026492778928350887052252939186876309986113732037434567627063754361801580301790316241859633557799767566550135730175554642640991948330762497513392476044617983415537340750927988989670990462287585862582581904170738954074588255694062275804308259125137497205210196732623289233068744859699514555663813774042594054009889034026809460344186654445654858191088616417643854539513001490071392827732702414363580269836753849538797474227042604879788593169017177650304121257831890240832093230801193421028550894709942704889268975640527164631792378894633097164206245530144557861749767053469374409705125592290519062528946427053500293090740536680073986871509189679287816830753605270715248545967762234940114475011790325131043211223494833533560864309341373737365919796940074865673597092590843593618493556329416887650342526861186599404598658659586855871057394551278236284452367853353849229857506386557846898758218917868359806114786622031310531093217285856392349086184899917625063767562502788982529778113383281277058348145783244267287202213942035982188976847441265620619038281753337291602813699115412672769764678417500002032748789863527571392448643121002940999827197865586183806702264550328284861729230273253419707150639812526721450296504371078401645399915754018733107319985738748910057197767581511181105398048050955679214875764477049109315462114402098575952138090707712394283596613383742817733210843632452908729603360571865999493567062444417997418377304916056958239602799632763689420791597643006111717586643278216780363266957178325054974822166601007357085971942137376413127458473610144818836168555016352091310123647820372245357528609672936013215749377199683483227367220654246791500676160143243231827337929464339662866667281875593506472002494863458446986812392923881919617404978897148882107471584665881705890906225002737539531269691202663070766195219344927422252644556419154748402424720768797850637768081592261675221906132296505999341928558065592444045152505767964884297596362769471544250855586285769178051960738751865617505216698699293393819728931381784720628806627557299098024105868679984026373284798451169422489377304810508591984355902323896791639471416666739113696613148324465638138636450721213555493794833689720400946599662462779516782747400696311430042519416776475339094729398378030854256011017192662603615402258847485701918028335969304900576564888218858770818657680360799526663548040539094074008542712011920772410029612975541542820864373272769965146022004866759153448002408056234504418758122038813306375607335665071587033259629635060843597735340536100923783552525162558529244293699042739519605482245430323153111872607275037238263879686804884463846828442188675037395224352239219734170673484145116438810054918405950934512005092613524126765574278528131335944777183245181435035957771568175044525891825212222438965031406029068705619991974753755758161649711232183635498029080037469779474561449869075518946805577493443642951171445849373317381329486783405838605732811167952006857841992591975373175473621663079964066740281075681452691369862950726052347679316329545241832545712914830530086592368130933665425075238655097983473778211371217138466673490112330559512373505883351872337653059412830442950719368437455874317306350924769275694259208130678378408509608822131347886917356288401136916362987090835562164982390092736820529525395595231102822004690700868379914858750548613273985379738368542447969839900786901516062080916933266894826902060057603855070803927117615175066048936426186733624601580611866748280551963973438660940206673722898009810998862320242271509783367286692821718366695599679760250112976680800428951037353428801371366094693906184977399543052791464068312440005111387448514616067991239899556593039693475524402439111070496127061366470888257864279755688502248885267134937239302134151541595298158428621404738050624344994337178657257430975300414693528476813531206676533259085285395410197487691031607354109935221171063884016458940566201610434127475838732177275526931689023342496605247797807677625807031175444069666166159874798727515755764282094174025467032622023470559423527844013237188170371826376826794074945510645142935874277180124684660704116343709871887419999906671732976014549009088709260169879563661119515949951786072297412247926171089583833860009534622803321276802399800945725820821060844769929051619287564514756398819336461043448543964618983406423358326076902697165651305998047431553454373884455945279006023085718890952340702058647166375346186435973489235555523012312945404291037838962027485877687238460312817315515653448678981414896892422212715596918937718554564991958049905635880735001548481988066461858934659142896026533167106406777033701068918381314776560656706427459743985668699679061087825941958871261448888758618986183626637475843025596244360548327425711579937299000199101059916469423928383551930599836027022832761529256381037674311797542237871236253928033698067873430018511712306514924968660246752001253807502559401740798317778130073022740648224741253762748029604516807038218213956577893749472144645028859634561770429558901530257901654490927630336745121035566324985191270093671692687364937464863046185962177783515110139941121876124039345173302208910328479568313568122218362298789742213536104055444401107619523926896711069189161191938539138225260404492779133653137153535667686033699572724316714607101376399545675114785831820676687718968061980796617884347049902114313891697438659386309038887081887877623670948048902565372094839937871997068928943542619110006833647924355564141135390546601775834418175480726320228316152158162670941494202199342008956572531928454818066511549179750350107709109094833615902054395990050491107147776130824404611747279126327012916156020947585886467049620653200655373871283077172744670254467951512899361731537090885506817632118754921951818765220609326208351350267135917093379501170183125534873691557743375882607840575121497089829322024672584314422879488741249742997956989167126067370449756580797497162122901045293296309952535637712767024612958413750917853843842305271730641221742725049329470482207793191267643865431524668450017694458720345705422956463320005518357871792926678317387807215889366061052686502553226666934729701523372628413448570672681028586399126757443124109863624840544602200574496294535930325638175087605604598478254138806858286464147372586699310099857362114597822349714854347954757060801115847695048741130487859401206192713752868455749261100651011665188134501032425501445910696078791446791299009394989240450150706858509880015020825369605605791941691173220638826555357074003868594415112617766293892967162489162766211110009315842991247639987198691278464826958741820604004984453953652247611787747424648232110168075961406551651575003843555086986364073406285947739678452765147199285402496012675420013148513175243129982089993876185945673273727031635930636032695372792954666278719175275193287164974542607528063085113723361736503758913922215290082376110847475421065893141839121350060134541926072678739834217553453508975683102580508703148498436129627703024256634218970500642868428241538026254596799986877248457372152294116703587079602160825096039309673076572778463034433614343728971951006453663190187140283132030310937877352426424122019387479670374224283149251066932739558643665925165502390122013806920423093505060028177394316741634785005596653304143721651627631073084493629486180316828610621366841682679942440759254148480723869880479231857829515454763450325456321766377756226840936915593688569918496500369274136548177940579825521029655327191007301630135168267333528877518449465412639048691469722456901166727930066802406999072799022449350489380956555234043465401876870691582615888873606446720565307566564439504353645590662653928790306755419853232621832829717404492260140479918787444882113011385104719655702571819872586189163572775721696048326756328873678670523372607640749103716216713459934083727489145853766660924860550051942711257026431030695717679658205423593335157136240636602036495187306733250134472824739076264952592742942916723117043838542183562330523715809513294263306943595744871624207030473463086074132456031868279824409383621325390677876771764509038338896770838981433797419605792662545338702168337010741732723883787895171754742634962288452999802028339931960997721915762869309813980991276163735980216210817798308850920819509272949010008500315249517224054736777789629233485431287480690749178153227508491232664275629147528057513122479189329030393966417717888064895730401888674643912517086726546288164551831643539521264189930557333632526705735065592744090294304220114884926182744508722404732455471650325934099137010011961895345792528275108377735355962328892824906371907858733792244164589770960139184693552528220515074163702829934096647017622826128890497774799699858383985001975945137103658380319972770693924462916590276783368945934178860424767244776482032211671998444873325764320213449058046678263293369725563355471474091513371856067230100283470590699631230765639356819496874278829395858361946683794272685389617912275149055524941265510935656694116107424668821912229717889301198161661643612562276516528211082111275830481741569701691596023400660700059359609214599941243262743486724749157574098442461874898675140299993890959426991840455569064505114181656437969965931097385415086225748411533917220484152935208294535626218282068352317069972888638168601779623761108630755729440142027593718428660628979781427490738417673022883280637422577797357673630897799823958344769751842225184940951118560465032039223141812373426286355646201147212320282513293149352251414601334638193569066780629176629569930953614087577988864090097239198893329397836073536184393004655163494489025464596277816160199576042901368508911810812703288058009666500894065852384979362111451493194009316813134753909374301537066382802010716890606376656992452972263847520216460769371372614835492198423135327208055556341744988542806646785833240800990307438736957293420663335748495091806243911455848173069014024753598027505500299668418679808023474091152958608730187248803555137686322744361646508336545188368330045597914736795860354947183374830357007383418847546396143753839294259832780312417635987466164069423813723335490324855896335132518102362876721914208085889902728172891607852972448690725775051362136647820100063018364836443150808941091082429908958569753304524375099104175505414834107151108412514212348525672592329019283276847563158789662857889998632648249126419783844108964505399995725723434457415727698955097415817275675931174661842892294038551894132239376114598438399305391901773567451211036568665049146363497390382153362854640101514920439888465220469119253698225873850133174470224020228559974674211911925015216923059904409258109061063092567129805480135836269215431998113106015872414802943921443209250084049653173407795309882549638914515973848899626792109830403190586573086952477105822075042812580035315045279229870615257417580028963997344238493146283424222648836490370593827089048700941624536073293941596874964262996623756859622056954667354298440474713963782493073814079466612598486676790868357241121787034581754542281347040251424632128175794574981178702778063064317942132278057885614484671620262144460526007001071781043197436180741313503659173843260082313375897457094345672161704738923339936018915050026843694604369537135612313498930159256161373418057757046835541949778796595932232602652387616366496226387041430234186367091587296012652508004557395634892545278995817164376003345209138454483925736745763773928161853411801049354066807725463519560598214052455875105873112917134215218447797873549831219504361476230430873596722693470234209424031322075344616116122833903192810425075885123301946491757968775382058096741773225518053750924785556791006655315415559210430668944908974059903891615545926268320996860175197687411972425662806925838492509585886061437096083237450490907508587211255637304614846576882725653241196099921913626608697484009867967149566145900638373974091825445669831095847792894438047808115459807347687674065012570461384926939675217797013329885908385557821549071501290454929832224394041770992233006948042816092687795636100760410760316292324501037780428814867161519608884991929738132815244533448361260092710532981565024790507460781581695690634237687482004793486714653261057692765722414837789976154442859861849502846639640322312608196153781183067128869081731005226313012877390902184630341343732260296099385621381032574065750763801465162408104414109912479950934425964046318747422113416139507682182061794585128750740520308995536885488113372324034178394001631611223839072020862359578271548489247912699215852981935785549427149386397608972940580530312384888832396672373788700503538979105074059047364395067445715979126497404930838746144475015879516500471689129927849860001620917249722122062015176333866556355742929683102495897424885822831916886532991609410063865866886649422337326315321429117191947828098858676493838520021025636714552171257276268566817523156538652373065334964683025233869464003067770468570542485843173488007800575187345413579519954620713761933542618583318289736541147945246670960192634612037142113045314363239424724163407893386525428039723628430212299794561385942621618879745458074239513588666312012179991864854000516041115218619731634062095790240847705585893712584820827803006606240308388530624954925081149449381788399761366285387475808708452096590848725170348890926016593301033307550805552818086915249482414934572568378277542962615039438590415665370481761735565257240337902070632615251689888314319830097454194281067517011043449182501909071142852612270875201188892760220184262750940821465384598448423852412601180943226446774232719706094687678422803165415463224064839342110890208599099478356703286557678175770340539801770127892150811746028074930145175477905293835665735072219770984342305113873192806412484395143317247444933507696381675659676627747237083470856970945580830282967872217126206644207482439003823033719098483373723185317701706951406554245908532107840496144918525249565970671785735060721059896502173040658360612953401913554417043622509218559044449335920746489811944372740431043897443145509982728178696540043540016108599662728528627552882578294462558586112922714205582165385674819257756533934723820769879507170340619342723794686327995761999490029430765146217474177514514261520198881277674861003769137306269360529903292809243537706178203609950921009677261184946425972757612256815741863653406367811929125045602858856869091950701257914976610324741305150732133696273777105151245476020058600336037043619105720172829884284109261160074354403136786732536347778107779137426235719100740638682809895273715079910400262581558362015111865547846591480629351492736105443621099706308804479359153011572430332078703115969921780605743911622039081300801943372654996422112988363072410375962905175041616552737654410930771121149248563083392187647008917760068907001391669769595701603350691026628044338211515042202191036254100338991058628908626043510674364088542892740769082568406556624429438611640080027929396433980148089711866049355181902720995197512504950832009669470296188036182942378006142923454831118224401368256398153057131176366773061812347999267890970220573877316657850674887466305893273644094739862121910782865847227298715084144704596647532369010993466580835543424391449328850681611726005261045175099504731278101379403195417311494610358080928804889172746387240263059902185259400615337569646631175776808119662125880669786319800107168930469254474356063789351578114074063088153824068667635528130949114717847558256720709495394380159141851245527319742453191457034954172105063104572290594016850587014849921350761368621135464651942103646153560542356771175408016304688436536154398017855238697192335518982414755908432480985672815164859500700798197243404638016317866346918893518219393717637937854463585464288620457242201147770652207209791061526086554689956510543499812441244882054544646171870242763218052709816151821517963551746722699765010922687472075823621218469230933039747306008930507514077493228917742013328819040521479179920834601792530135231906686040604696402539518998578281572361138527209772624155057508643597206244040857084806899283050282141530692793211595925209002648762457306519382726395956109235238599757670633609980498908578397361636358027406979376697896755582804277650073503346961891186216355871283889909419460236657509723793362447504569969717259760660485530973184144398006173529963745519775199378621179059491534204911154036400334790919445324188201625666208160925605568792306240121307220799019730426110406900929515331130525294487583093774274387841072437865054602886755869411146069829042757765632316275863249963178827574589393372710142230164167623705090219263390476013895855053646907512417879355936437374023585641348907258937433598630066158624251725243991852062062626098779304195442192650640150884458893628568220281060046838917015307255706865439538332099454635673604584792930913922811994057371185038049846484898624893585393847588558786046327216812650032633054421007851508001549589063835259486449968470824339817610768392042136389515067463330096988184675695089019892671882481604295334797138407685661405094665452106214117120297883055828391503855033681993906367301183522741658886673460421595223721412952781830709089826808829618743340706075203672910856857631202811048560177920506726434840492256829931721604701717498453760434398991761890867006446721260638450696538201363375316543350986521286254309140088732160345097212625309735218764291916300426284328977289965249848306178980268388776854750777740073655652228333754712679834485048529314665029705986230467976007720400307785840480644472638610603658480190908844623994534149067815371647772405153840184480063996648068925197224481074063856416079918847762526886681561213239444164063670471354606492260874738334727005473817402180908011558865794809017763914691213940618503214584077723565905453210475848495307864519023539406690110960624322297947376593880049485518536956306447617177477664398073084971073170577896798449774839791891746165924170435661970815521440473068539846279865591175389396043057106824458894910302387072385555140254383032659734377313161712532947901686925970032268204052337620207817862503980342677247461875092810185111438563701984661172974323280039535131779354105537567349965821174200505471558042050705465776453606730524664380952858502107644395741393346683915999070531423462700517055849521524774235414603715876597304681631063094037526271958670031236133042555687761396572970278280906493929740275310329741823146730464940306108357518543538118988717068576374863652987974314319706572870004548006992813643505518060524491894859436503002784890108345096257248831843312282403620384976250033450110010990207647503179981575172286406834654543365057430536225769857156491776075046774706112747551467284838711576628393195211652472462786911954124789435075409065767641174635536805289926322412750103267244614075162868715613232513949675113266369304189993215488260932399126056011720379622422252609962582133305234042821656764429365130139339975858733542328693525633549100325791414734651791855856286966060238194733637400021429343673246757634695963797380273452492446883655277022094066700889859428474704954449913551225258242503799277693021149586682293817043025510950438180727323034683813703515696367213167616116026310874036272578958968149903295537751560218318147298320370394298754596344317074818677244942234203425988846888305942603238443588805914542443668511109845948229214632077598735199748535424032065348801185865330307900490836702300179969112257918192296170543677966887096415018902227720875238408817532103981676516405013215221210390594635345858958872489672714116414844135275583839373638056673542787036184184355954436918585577886449459038272894744789361936855150268551394236097092805328052671378909419872543523838354558827565357092811714743865122544881790181717500689757604335349938340794978006868328113761761499815932718090254064509197188679459403980840099235777282454482384452971042005967034895918636452247561055902496888847113197131600730308240702900773832244703232441481239109285348668795663821846275936754790030196283918554709827999978547553330202885507893474941724203791932577783874542298427702021628768897226488223439741996374951332688790487435981239179885914354043020511087535416307080287374720457940034962232715037959944612163950273328840813445220763865089787315901400734177325481355295436031004275633482176833954715017392273260942320859366866285216383101951525472836504584047340716697719003174138338229527933770071428543294134046032092369737462952372652259635602154396439249706975536335698775201888254883345400878644206486514884051357305055903974065178861627900935171816761130944618264351519179865665030007081958078801761115523314217835167960808787287189679651551903140206661412479563378735511586180267527405776397022087953708656911628494064065770115034053738816382201352690406181867161609317604851783838817139418718831145785357045869166509145766546596352721524641702939053027643861653274219762579324518244175646153262016699300499923973426583423726507696735634133839248542356128246386191586185359667171656025008804783036956087202571406041106684590346470097090198813036346526103940542707457332340974982488816882899207405744377490584840630444398322595587870532255418979393390002726934442481323555705844067860106464185876636189507243899285709673365797824881682536579997941650734559712785621574874810760871510078246352545355532005202292131095213879757831002458682501926927859379955606674313253901377184666516247481046668415914074879277003483229559523990496105842386187557036122000732424083648260365073525119788207183388551484922288796262905955704595476852475831082179542661552718252679855373183534216570499462104564669827642678273517345965785208219571123980912574837695788865811625397942852879259230906737141108967102728862565200389451036145958973739681827674855663823515835594273621002873832908223623913303917213335732270921442880284215296737619611176028861212211244866551277802679781248025513582888120607329284352641852329887146493053747499960754132284022527539381727360631791718514036140617538531361153954074873674576448053134269968045726540324195822230160432059486953529605128129297416597592270523572233889496305135645340399709422159609106472029955295889778107563253175649209806843093371734789642077780204785118684481185663813344415983404678583959700196245868873455696988533344520725642730249971198996908326531649505484227421071527925046882687772008300621981616893652580695171046296717946185851524114668924162195485202667971537575960247689502964149601715068025130377938052154565765672228172406773631343241380934801959072410859654779565917089111799894324199410238289252636598439916839694682467173381780158747344618111180558122920423395454040980383554943258552390001399530296694652351244104371953720827750329671188947173169662597450012733424031339947133609894532336474475334378569182218363430855804846612546198696058814566281810816007960823355290433419422463133893424196027175831342777949593220180500024915628566005828957489880460794046380376455366518494741557520556820471024245921989874654616855675773069342463019006483678605863630867136068617886601364298730220259766666558916329608353400265372775773611823660758525718173678342934158746513581189078905486657938785427164356627201563010800805238361957773392297926824922075453969893227238226752498583212342347557760763630849243723546056327739834958153551355268205428449355250979287141480028116665155119869196531588544109657541018929627081689643597118020900541285322526037732301631468795801606102222923379464876185447652673394004492325566265103549268467479489744762864903266271243190458699256743128581419770032522194996474340779910795390678536043170040622400424384182937334526555037848567218648414149471828396118923206915696412532571831825733059230785611812365395243285196267554758089199473843358151109793284909707098632305000304999830008965331336905777288100143730359928325293787670043902180464979177711313819552920638687585360820805232015435563116053049470410429709198569409875780689601589606976172474315357916324596973974059946143650349536377140413775142003750012050181741425486817199380064679005102063013825628178270009074892451560087375878478213684122450361764793580374457057900689721378811127039349300829144569737205644586467488840208302019670396796054082386935948841640266611412223373977430548591624848244449135913185889319455481062751708246248392028924239749018391181249685509835492509695375456036240671029817482532037521645942446869163207575469194713504274319778114192399999806612339367319489007940697905455132829429075028833014116162160140742653264366881154311979220342124395399527136306394307391708530570047732837511482654924014974509274524242099557614021241647710112230702635847744023010097395213040494607467818141357601949503454200672309337131820123055146451973687900240727719599112219590173168529421799928272935399785752709335872546182322947706117158726567441549904169448219758154402819181290957504859635571943329912050407212312856239344762822744359098907998937415016210093733067331764497744229758269784761339857968584441449757980245844752880959160588756969216588434681849355358944922414318458079113109629267291717942884269760343993780731491308981705922184647148180709780787016304052481939077657659390480486658947746387222747606922309291536477220267138099405021368499223659405152856932265368516792286581666307402804091164751346431218090073108643564691403475449177250924877355695260746109609768731541141108848627879834272886623634310679893593937768136664527457008598264946516900691334222758005072134985647292821154934728602624775143801704154106015231664359869668441769445488762518953431964434627425882419315297668558226374863997936906060386678995665376679041838978542245534388952424740097756799658432423294840924076195446364232143350091943600913301595970703992501303683658370015260594600144441544120208522874449156194228424389120322381712819331440929405926781413437341090944894295814921079280195647794616252745708528691363887309517611263409979006965579855186873210832736008663425898464525155674514332795724995955516062464515925093464449363881441715313346036743743923884431297865431918665908955776035527263405203626494265623600867400930347390322886996991811163508769480322270292657267066789050560006177170380588751864142011419060113503780528758145248917764779561754048031895317716403180369842356929758941872556996935525122034632892664997696913713029715175308697623099474157085310234625943597270303472780484226509026691079094580388753848839789914123321609423942934107230430683990489513775080308209327796875802025647175361760218041580431603632664328935607957368375400959136077399382613552637446546226801234605355131527112879468814948725683200605194687217845801668496237912491068336204149684646989027974928302119841909464866835638890219195602237270593032269481848010578692210507495399237164189596387148685561163358727107722902286589437697010366710627132508252418829726954654302844472578060407339048021668075104048618434335389565915085304315601222147875872143420455402174062263522001490410605820542798984621727605356515990175970128926224322631483877168955008578485304509255469891979101938314456643455371345139219432405895674188026158556115320397616706380325238094376245228881448289817414429192557011083560123347565220452450740575645970686731591242093575074556312217022007290203532780689515247909779929054985311435480811266561536345640467055867268694635886745503123125977343758121691292278501995351519962135661269239971009267870618338588712568442941021425466396401315150202093953399691597797472730939647057973826626355160144087679633420199376097161305007131128642023806114063110896794511565965216934150563755056854603825878331614482026347085442606544943784060794657589418612472596058861668663372911915466955953158212774598867987084164135748298751445269834845967784068026097200481660222102172288729085621094493420818254572279985680018045391798018648034276756694927000617756571068542906108740713469717691618493078765497283355762002670360494145584873918181845219958052042362516570713877037863284464941533808830837792821035948977276516474935678198720531796786687576999806389286072696433483520369978762529616089667741141914660291247924355271873904780845747280547612316407546250210386405172439029073544260566459525611097571297182579659653162241270194356268119108966112103851242406640865154068239574860235320313399384876966504715170440285410362637767343694219302358708988807397447675767232006144851276872788277460754117534004951245447432750294925892171213919452222902672715279330686534485734106920113145515053067119843175217594415214234123180915801276260440478111329178061882657548660021491219845147816830267615234823660330573574251885645475371141567841267685286290128987008267212497258029890593231835955026675358092659245192623342175413981872537781232407431554685194714221892223242328395485978917644683722442942039142622544808362262647467292212205366686323084107481067138248361189883976473672683700783561421216439491398369225476441228260055621014420155907118860187747254554585241373707252699564338099172234298777426049301020928558689364428185579996348771866679901051854441534871525397480297602261073205832722616585910414745615316956380069123052145236754185514589817827356166438475258989003667817694328131285664106779703527363048936272758886948866286222003065474361887399537097589497989836687018030620701062751983444957407129079301555746553647265062021853669397776033467435729313722926268346541937164844924755390038856634183498805022877681266914074985170238690670728982412933259950415344513826242635128221842857336136818467199422390312947532612338346371399639873111382102824217601663336426396931251454390319509020462189067020989750580021650343957757310859165544329240057434588117378756393710997027101404165570320830621523465133365113715944526572646437951398739428153248501490609112900554507913939979892742543525430080895581051166927855771536006481099076339848459890687216468999679699306338446343236961207421879686574217518840223288205460630812615733878270126851718289895088114813599623957050804023550244140878811975695683417260719580182509391633087630394443122321262412644885768877579422964357301896026909458654349239744076659956167313871663595224889541646074990508877443105122839599212320101268774840827185392712416334578002787354943932370795133876445826931304764260089096231385579796117057451645015936350846040226800155225591926847977151571518179696158838979535672732358992627415057850173191557370877932916890289224235601662907509539334355062277420800888469256677864996252754646450637278240252541963543349386327936347289174584749560159399763620233285000727447564234408631519004414478007669266631731528843986555463588648322693986328953027401089192312698234920231142712243960463949405172627914315709889324331714039331589746022119746693120174949095244894408536898069844529766099146183098677818833925664464795583439598359699153091207161157454811718518989914295318849546177133665905342261856889883890678297625731026487211694107994381184664261503906533986081018543505237470553128419169354809663299541039102414891135245244541187525515916946460977323569596514698001556267180633814430833537047968462647898166826501281104700781227873574532745146604527939681641772374127681950727782065816330786329840761572006184155238664677757227956275609430948402941132564629333923839968805788664024293182648518699637062731660596064169762111886698946591012218681563423586371475183700068588652573487679102348821521635056364682588826368990137242227199757801614596977474401146632341017255340511542886408504982926672162386098121027089643707043648459805517973161773457666575413337853846142808173582725862065731953097750699057737236498213515405747849682511003210583602321811575649312897028368955139154048042953319626688837904908332481377570358921511786810381913153383799889230589917762465814998298746539295273626943206897788410241370096052651880451617008974754142858012165692373808773197812496304314723314441625386773657283270452245786885333690224673855584272200087322005797340178390963027847131604339005293618825911708152295604696334261842076659058407848490008403560298108061530941678392404555891765306894577763523954276964482294520547761853449813412936783049323948469359106988355068632684517586568080353892789680480638886335182644345814591526672152659654330123939583291325063681985782450806476729804004213771535878836665618367642622131100494644976861086125992831097213092056082132306222193872802618228930727026201397998077717918642539368543317845493459860959239545773767836934348562712406363575281879782311742132522120568126167585505176525223670133231796471340253067047647543308457401245415464814308008984606577361875375698835333945280935653224370148171037704643119291609623840099354394007250135991096047117476273516475284422470509720877814820551428877917713595319648245120363443195904530385803636804403761346255233802963332347608525252766393164679309446160680721254201827142464448620334505560255998936506592858182137465412445637867340960154308608097683806425936376355366781665524809909895033293999674715099002881272325452480155846308744124707187394588213457888127987193038609385797965928139710133314935709245512529311007111519592337255290010356372351834935100167464398623311630937618145143539797371838228000837384461964307790926947852087053801168005097005436859232245256099265739889653305673454445637372015554812105654564498584929514985283707877325965817456634625068803279327570032256365297984017806381993455812272143828311288342419841870193544492038788551677906124375670282399274018223875154565101506933654985498727320890748410475360297778546567697015933618228705892222800267768374965772061335638828941418557417056232445166321530239166446491728393106500662036471399044593446832559569168932391398582717082250328111022961632366989936201581012350775491332243382033672866612623215202892513419325477362933738011837006632296734769582804049914558437908991280387260377659740982529857922467411532667315812054115124106354995135234026864270347691459037260776335497709546346389820244785901416237340037537775180559956402918038265040991709672519238385270669343838553009284089768229799837892586762468017643600768616770777565798494563448626048175653186020746632896717272915161142341538364220453427037967717414302144060325748703717542342204954147640981325083053978910668587385054427078025420603158731302285493797589347130209854303913594826208717470824491931439566259827589679006422706419989017012431896930944299788029540194536091897669821624719021335037114410328498351489855266703074218405296799908321031211418208918525755370384574792980771730817037599641055243351929271417806442564111199952490982803216440338737178220050153438394133762128578529707663624667965511253999024967727195951180104528784761356999447590137555371854207216591470467970804324776130972152118296200835726225489089837239918573252036374361879865068038471366672813181158333989880496640884819177650160051667871406324858644073624504347362322063063947032117369913394328860527543893069303227747672430041031298258165960584398976480183610818029633804188200930613841285046634326900764914056848718842449510050636505499601083708526062782689198651346758003041193978350518718799356600197162363475290096883524816241135839941605560834030150132293286934004439245002477661907084980301514027574700026916685968903097455093460457767593220669072870061144017180877215986989917072230152589530661098672156446631802461251571642852571288484420646397700029572744439196099549879105823898088350134312694698320928766765159004126492953662469782542193656006712914169846780092367666121144079888072917866371905048886068189439004141320046175864515142881092250263658123571754787225508484042446514108734596113894274013744394585842601974657601508114383044398140145950782586887533511926020773338859329979610623337978832381893917009694841190687453914602226581970852615360566740985143737381301173475943669750562039874140659032767958223058972687633832156894636158643813861606460753734737946986122838664234924721792984322196625277835998841151643570783688436418107970928329546762809478770385230450518117527984033499100442459421006423847589824684939301532520893691118528223204842498095204567243421431000144005203516669487560141606306764203477704004725149193533518016386413778646331372045884832435659515065086223994333743321629903316974001546806819555329611376893910138669280447514929898454783098045541565366032709706082279471620442680873168041153018112339770211195411027631289907939965432456993588364020577591811800415804079265475407096216067243634316969934543176180662849406609396304015760623290675425865973967022322138038705145558598065455242445772405918540407036947084882293464485903668964744703635744336075913655939414126486989562275016881822850956979596133494556531742347807002227010209206059378749250366731631303216853358482544349521223735522631096315263184424177832311222496194108965666078310699563435930838733382228415543980505057253574698774018848075956224699162353296457974144327480321298444804475614504915042998668735388026920085708350347911413437647021189317288034573794025841032156780362790355678168073079761072049920511072218664918529168401159661328919567029785406668342783959825030255423813941064893679179173899344879519215456453609290570800353503633738696953404535380859936988850783629212124638911895698889580972817341912129078824478886374567381490523250283004202401545736710808475316193087602208285615454281301575091598383588462333803013252848527991418921554207579577448183978076283263878191112221012353277087488586296138532824491254828109167015109332640772960375476503916841529480144367882810435129408494931650668698562313507296897134255548111583554063027333192254512253872286531685410571777627513286816273016214984708602061476961053170484635770421615176732378511954856297100018025695520001505625052021729367135975614742844072948775497867548439604980058670721400860064105106967848206641961448212674585277442944921628077787022728172190509475025862485668864545024760676222916271111376911717618971938856039601623902452777796630098245789430115274373642666680601087323311039317119062315668146156567382519926569135126861915425164819362847007796350011943613276133687092998794772370283303345032334915383080639815346170415795782335747698459583146777716049034314267584988195820075102582477762883698246074063684902991169702180109977674211592340979172609582772543472141853925136709920099417663859156662658912019379165207724827513471445035466969537626097130584678552758524968550554583984499313001818425703092690187520832567247525989485978390174532204842466165906718961964505140705185734682428597390690057653011141421332745578776761665546295327198282794433928474934457091493510043515186411752535389420535596107560945078082178270313370799019824319999599327685798339795454897029384983895576914177416931611032168416885505516490940305328255744150324337374460342742262833939504377434686938604695973649827213171235544164408815432840939554344052669127008178054078506625296149295614338213717865736691094933670650442339790135479834133213523329446653253867972034070931601945896651633224681194735004489204419957290675861055241258884609902261789792820026663378144985293743330091337851311164142814435850322124720619191931017618464677690443214252838566202665381514789517992261522531408687706324080067883183282418634824265067787600141057289425532943280194580671443098132505022124530355937321082653637503197361177981229688308583772335694779425370507448481210146974940991437201509897291849388068067301458916219759928280689747127326811287026989228167667112227370257513519229431483643581312540100987842236441769706432367178732627941471773904699993702018278135481568541013479642320225852932484970205575821136307259919307839318884481269628547347913947512107775799744793829858812163248606082891661158860923608694289422908298212435877683177282973062878046489206677452541454781220557844707987354598872647058529338704412075423488262308947469904286575666209158441318889097016606715405891848969282229577806938127440471376006615945298944729997091102129532392849401920850445262193901591315409398925358393191385799419345454155221892398139050278717623646806441800212825702035581589604613309008380374045309370215934707626639483205391586443011703285908484148405010447210678195471452455692259949864458660720893882720338842446241820162271357540616225365119884757057751714410262280828599492579272008728718286269182982531003508617235851046112328602063196217924846761316440488510283517669421999866712255130071187590769134215342043148191248714830192370536889201959403266484339052061327066959532645735098324736955012184430258793255090445558882592184544211110254946661494069194613298880331646334305951459717377866586306251491710688812071872798203230374229681048851951737502121065652998619753339258720953480797207158066099685622139101910188045377624939654136669668049005954343165915426103161154960128983416166068867218944020614995370589732854397387019116048368409864205674250600222147804712623305254112056141581962846856332812671605235034416791365774496195268493569276848263594400581490676405785856606385093024583378658622719451703532991076946743659599007671282290135582194033053685407838776878388208626535403811384823598521116307656023082642686208817598666392935331719187098579472158663841894328930813036250262439878828517940139965117056998200453730191680654278200743363078098591531353026943421064515511206336385476905556917599130505936967746255746698505190483810257682073228111964148551382024189686342225441883658168362520421411831935516341810533093638324966497444178463931204391931047522564666367401757758875384208591781492702344676326473807494300304402170294043060889069252465293207685252747432178389849545780276222904227141300334349347864596786349468695559007681112504812302536051424315214540042270807676785879338419164581120320056980022932377096540002951129553607237359059699152260990636222352188654253628181051528957347470264189885250529324962127735657388743400746521785681805037406892179643496551297443807486310030951552466845315028422587414235578940469701106270543531290868981484276040344427952080578948598805148560790763204301491816132395977577676332219441145094934771019193033293220132744776449376725942805671071896055500344757945478122386985393036240586227044252956295515979546703963239567308141522441883405672600196037193011312432713109813762720131770003190374142901003596397587471598817188276935325989255546433631046782895439006337747225922996390392007652510189499709591784549301200419340859529586622173908748590564696085522065579851252496321749670069792569598545583138688438247960240020438101647702005735446402576289230067035489050354585007541894345805534218140624890319505783047643658696628182006196402602378479393790144690796031315302730682608025899426284681613000153622959794050191500046825581346155692804685014162888940665614101324240981042994532872922183557552357387827934355512855366330060647928014717311528098389139923590216338786318383425345283627842554180079639010475509555857591077431425638576848228100322382745214768292525048634285901419680259045529854389964128016633063541676456431602820754760675797721244523988065130685994030301635382182524617144751781633529544520005219105907734158212162353764037045299116648785861044614417010402073936722902501712598024252867277740048283822681338858506241530588061073077977682290967529728984764396064613842373293474284116220885290947385493977511361371198913647336039277063942557903723374644691170382305021754758315746721178319138328555237370039687049942533807778786561754168983786635760780462128321297727488241771698678357663278529505908141592054766750965702284012736374726804532478581865566229714759948021731610513845128720104588565901461509607089451061660779188883318310136118185247726673613273831786815043738263354359083024616710216413964315160149750077309653675327640611725068397523136573260488740413887359912881230420872640866493572882514063071559149902675265530085792733829380638305731444105502082555952737508211579878007802747103689177528436964258060550362451882912168879794529212259055140056778149585065758201925105805366032121145738451967797156110017797851598948787045413700351546989040773465001245366582468359848981439384911766583735987175583084674400014694006041784278494475274243147585835656233991658692156872447419465292491530966697149063028126389333640763392449282700555045045374701501373176459806028432451299142771645804519257502377493325602181683206679844367798964964634382418755887322143809930964373799714090366449465716050407380031862035370095313241995305746620454100557539648206043025525898243569816796069324498076185806491083174056235851754592194440700862620960600007540187179453055881706082542175987557901669120035496232418843932181834236648210844701201293335616145380419877120336953670935712629676996919070980925447370239563449468858608854638164160211668590995670560487674275510302774181864255968100562943747510368709115845244360483343811013277381170908655301399368800623629238171128321362615925987128638405578683119664591620886668800872336326809257759771333055410592476113070752333532948790301611296899431864370134194824298344332344263991685217875980489959399014739398088191847707125816302659876857271002371023547971544574359038017795363389390732312037737867662516829631423062608348977958384665314948135310433072787760937535883799601658665147917731249594292521118808688462437080185577867629120527535419499265701365090037308954575387777395825539862282994925092894464676757311046085274885522804977132623623421600137219423928128208327231678476685061493566910131277517393515689589466690374736361510113495667360528131895748166233649167224832042867894889494939446762882873349224074428941115796952276939331899265964923260537595919321852003022995692018068221149729819720835998935922080176236854644775495353413265239914071879219516783771553029665377315200080916944871730742795663446956668175314765074369447877835134260106520852122313150461209729197208487398718852041561512848165028175362201369268620162759215249565696647176963581001321991445926022207183709884007100343363609163376642687143501209214687034107100966014913718915558422773148748106905590443762785942757624111076617133646693980357111373031600174526189299237041230270805956057618684302046217882402157389113649846552811478125899810056700873673360052995258566949113993442067697639945987731891743171704513724948986916381134768483954953811908445018115193136592571806067860865142607372325316663107130957551379276819116400744245318848181123713062532536210504693176501941555821593823144188345920133040713692289881443939407720027855533045416985591354373608110119961208895434167874281484803186198166778869942618782389722649958201416016737483132612692999513155154241641500165053088784870023401072003349847817538998075443241099880772824539602726001482847377257128523739224880002798406712411094379168290211663205344241086324857384542647189702562042151021622015970850649236644909460969777057161718543894773170068253174853499630612672606729456753596206101414262512693014758374448373515217170972608669674981795831052546187412514550215630318754004571636023412109598942253042947336350569822192295305253263429045490725085397713163643950986919279742505154569026779802784277921187448133105313574258380038211648957212612381051200758479814649756000108865732476157852992333803778171298328976290901272521245600619574246743049170928917072495369468074882462398459630100713182331568825110800771668635389614955992003425182867438208510796967612136144214377048557101294341376052656214773460521915621730925887182356683559582237073893816310580297234451728135765324165469925410271506310867042969699134220359702411970687193915490152818513827523132722852265434971453187019171566495641715997333493265207063978737410988658156203435177801594278337617971452726733829298694462126796531061430927487937051963997176944364092154614131145590231074560952978545099614861992506620002513353124760792182435099296754600865111779756396633544542058678495761747004865326943045107775115890159327773261578945790241349754577984960824144328088028346811433613874039485612739173342915531950006494264597577395200224765915535864777394442389736991614702487742367307301733007101409270498438572920170759957158613407727296961204493915593644511275570855030607016454134797530497046059890347241441218448504059342679806066480026302800836198132999169937958368736130668632466129268855505659252299441956523692455953673038150663948097389417274031290998117653434124345683187286207352712791174906803263052346219672341057074391059861682054419561882157166745799533900837669058315277849630993935449486129935971043476600109321665798831113414758003962361174318617128362533801388530101875659986564171109693218558782914857452012680363112515727556980169333947410400662385502788773940237234114039753762884636404030095913269452299244895810506092069868701569492224403961580412535909114383285867347440957602832718274010006784498545122566767437247618155753999956053319745851030879960378641318054605337529456018240590395598164063827522094075975305437300266701099634719549602200665603537269929549796649857864947673904620404744240009902635740159811757110117400031229046760034412424959963801680138094141475862101542419634593914050624887510364963606810051818992206460809289275676545157405283354092316433696577444851668507655395100197528202092994211954480412875078394250054021055159058979771517675452811902944043942231841913666223057830740546206987573320884227007734846861492436346715288448948199177747850670103000051855909620040198933862979760207137220438523641056283204171011606528764879104357035671129481595188695974749247812544013031329905230828128417845611812726351736294353175187788351716241184161382778238495876118441285033273195072624484085822748275017712417908636891459778648173341274844377673902853652118600005971099313881604245128510816877801174354360440676115577283380362532077851248081210134249616577970143489222788351876834289005363816840263365542931075849260946242080268036162050481902351504874281010285351020574243938695589451973037198212115367058401374151846206678333907947097028855452565275007640963577766261185890645277678707988793362067957470192354288395447669435921050273925600726096016151101796935570282343634738210381161580464464047681039281309862176401225364010639839463777672648294195839124625491026136193425352763008988776696910668547854483412978966772477021947670292555794567601208972614906235675364003390088984605969607996768855642686407249436529157038299029857422343034806087157286758750488068811866192349119608994343177663278899684085744686357740720463336464177438119620873789943008267624952719444727534398029953153364909819599073161655546596866020507494049804075906412359210550705327528077591363271638397599330107537249907007629420749168677489728540180307433596960597926441366675519425477390918688772534715097096259176957946356486117712480465112359103675714543409573384141813232481681283747914475117131890573413846908241370285924343971485521814809891268821532824574856801161944157092924681482643527451825198235511089398386742053938525216933846962444425998663967216134346639813177980636489821515466264060979361246673067835521915613625280133485076501615342242849910883614751086406200430154411535332822325831748368287893415470820704421368186609277443405234768528016077205193525755926316054140161282767876042256178783458308665351158778194493823099696709411976464274534236725248088276470764421024839860740748292566090300915954640841436450347160604650889287640031674084594085703050253850388672535059506131918564585511374632490706134256352429069059865278300671050608669016837280785127920474665701955309556658358912285252625557238649340970257768290322226865353374268916493031960631211232290082896448092161457445654612877397192886877805006747830053610528749621429821054405438042858840761508747535368597732282107450562036820169258745320108894716102885865928338391454190504349958374574227001641181491480655184380868194040852521180156741147728753330063787411132030171962962949940508872053947917615877704010932770192146968449780936029911633964620961918282769328048274784741004929526934933232636057886035372479283218917771080959086498321573399879790303950985304879985842705358462485951301939565065564552375434575073026184305482195679867263899871427669127911954696971878181279983394763344393994813520785158514218916367784618730277399125665943684618149314012545776002869702208826996500043590684304069983881880876687312228445903412380410335629254500037518262152085084118234815570051027736170999131825370994619628535950767455890976870730215711277310677393700097846522221490594417055346023458987662206610009535320754292930614431009850773021565762759218998178198294764837171315466134721385798251191643855819810401997996405799192477846236611575531704179932061066851047454814113199957816195375609087926548465831622790918328258690467180606236141506836127420224636289189722421703371938592177809781452545772797178859856748892187123477876802027794169186013185218420084695452898219874367956133649652594137796996469060716137445081921284938592213190036556846463337906381029995452668376294524611603685761264278497508831969037631994289956811713742322929148344028537131049265203085510437596789187871698224510068024765106113437714517790046978440718418558701807895465950022987195650441415337058186006118088949874130816049217565285055225871525172325283066727514259991319814495441005397261346757824266904651175227847585580214387526878953259215926163796374402334659838235932740981039302752315484800283922579656308204525033301162662927290280707841880373779312100003141087652185635961922205843493416887612364412873306403208971766927202041532403752425380913172705897340260607536809021409316739770681197809573723437897915214845766266405185193100099927196246010862590233252130926852043825838085400672377602761706547188039501661634596043898452634805542707809673361499978929837795288978950290093787252429778479711383738543166638906447563033363376049772199877274468445856889586593007127668858297622772978519208797526679055780461882564160138597527801911506477281278981216677309467371788883946337901680974999493669882096118196916019372538528637323186806364510274426233903790168481189481472994105557928108793900975372701721228373448926355011123864254911159221222931693945983392656415062976889696650663703015044234162713813067835930131244262369421917314348500196109106078603333585395477784912545240360073803197093586911317703076828848364501959563147336343705848127065909622083330737081598541781041832845253944951325654394093892846123010373981298652461714868618352829032116636618247823205610269508986307281474517834251644334780207364450146692815939126112925240019199156105902335057778266319784035835538940831501185383310684893727323241064930349511031543557824813291560852231563123399520918316011482122518619084385569736056441517905855262976200648098289268249711006244596299361378779891765272502738684986107643602032012073208377495935932792395569265344210316021784647290514957213960597968260885054915865931526538388528929736121330188668717944818463242807557537291122766737483111506440653223175227716323404364504716215220677892152400057661378691198531149522281997202591136830842688646819099957337121390937014855287202335104379164002482729902012279817932488691199802538597056296524124838514359595264235882385719121204354618911291463748870078296977922660488712332980263852073735439686424705663284185961116990494017760528794602909708050672037766818316142315285909115358184420680558797281914126935720388563107096326419616840119780838648306199661479003865396029250851046898061852778040027270601457008662687191654344738647678180811903861939334160101252514554315116890439459015451767769053935999483777779259137986965304006707489546081939941579593315525335307196375661725073132126438484843716861397536683285211848232331195537496821642940469498040888759551663297720964698161354252175605603806048783201219344983653098581905363099430769881589217309078340111416457748598440438114583800816005007946291712450139348005065498019335130978475654707594381479448265621220150781085456407624533738659235179189931303754238245512894638671007533700277002321543044551845278330477282025103443776251688682713197455285950240395915735026416315724326286956269420919045573214397663346779431763043845038115616740029871200311659492086066792576723759775249664402273239482489820496425832935674653470484480560241410883818192351931682815498348159057889049540812108922349101138633877482675262955654887396399804319097296017818053872189610085388382511724227566245515932075503600093672259161036050836094376284959087831900338694789579579937660007659104702538142338571194021315484326167916808795946235946681730201155239668271577224264695539347668458916200738254540079804669950860745154803320847189069813884758799185348586680734165005286892095460755492312123254614209175945135935781779565964609291898297073739165939852634284853756592481448325919830079988590783493508316222205654280110909059648578064503028956544354028538584552195746332295268159007609767597552269331296773161274755861749312036639113899129545541477944285680389178641081034342018818306386659488501656354985868183284278865138370806528420973491246635551289892908893946716049334495186888482318720147566096277720743745929777091789980997152824132851858925699316927552613125910990819134205002797969415838863831592548001607237849669437187831786459830339859799902170023863235632442617837373480093530700745703888343942337941594879669280388553631787973863975180264795351831604488121178280245851148927455116175077946746405922596410707133509564305639224688096563627007397369353136194848260949561124514255972155478194812971400515214904897619651033598020652742753541829265258675090165394632767480111594095476445713119241823560870658166156034092853015663713575842885812151416786603381161842300439475040472289380173282128825749494941170331399898921748555235034681998387517472344774506387395156457536936141615121059188818806176973038478396858439690630971241548332076767078058105782281263262220273393385274345093360628549924920708193399199563077411993899722982405983198893317235838558866744788741716944943494849329133216091347062081531445199631069985480522911863203865583260719016247525245256836440703535698223111152459600254313082349351517043376154498028276832122831558390298700929342720069713244698787390628605584045558879026265974461221384030954514083282860843025531396083774139846007708426994610907191610913272677525530454819091407595189076867402163088796123688908151301276383566328323851699266041276710442412263420065586841771630758236845229130797382642932883715635741979045656178717488462229799142679383489545362316955963501289837994248112491506161624993290516249462976460927434097403248101730896184852195589692199220852791819658485091920942013006387466238746869947234211480581179374965655086048993459499904391503646538566616886583288431969388650165809844308917248487829351700572045410957474164057851264137610852884132425192873362830700029339143244711035410236895386409584098070467778911440943583129117417188102527067304396519548267470892001039496773600462702619557301967585124490578347489863812923238976741600515496761819131518842353200473121183740832368507518225715706193500789730179049669569367323841862785783972802310162962915568050608891725792433485022432223940149832388871301872975367363446793600752634736371888836352243769752617408800927739433455733931562497991226923805216584353349532849049504809974170055018800982577043688669777182592736285890968878122678195105540204272248390580393820299203191753697745777062728735570972170514246460056764990380922605389052606067713232577701636294424392838696287610366428334264933778587826811141983235482242062858511814721782914292391068781258793729524035786331425381876994264209460330413185020449464784651904911456930699929429438234273160098347104714599600363144893273501668492258865850840666566303952902979728724917846467529210148336141521144653387303915156788415726759706876238756474041247045387432148162181125048561154190418620255764718580750068011420568098121075403420268370255681222694050775678996464845288334147134377703885182227810762693297914224355580571119929725363900705377399261061739443648096662018998497739208815564443602433955245436250043264028547239601338642602231827682805810793925501098358166952963845252112261085585745861509708122962403194241774052192734164837136025970722835398448365419943023863294098063378583397663372189117123382111594743279843457602006756635651327388113941246166386880248148546039308203551338563566443272004320206847760585331253703539737487875842731116956750418081097881148437207153658944074991489646945303555823592763448767016399675749148793030945061363550224378751563244968161606893403108016561636872404254170685388780718362485892471684603851050902554176976141211241625480499850296324969102228216876469825321606695473607012168885224722001965495914545393708750184587563081869838858405952106775162898722827841810060592989389191955127666044291764318059804494325303850817568316055685854627080426542686325835964876553141683541984379021048802004051276841396938583168427104895518392357750690629837098668867518419064023152260303785201292067823564340024504022656176548344093714862402060636920000861136779322235983351951915307576069848918142642121399613377551250289384587896923345458562600829641795988047099321090693604055984293400777656063060360349203133449758239685238295088102612379451670995365740101612502995346471963100436699778417054889969243317359975241422615999864905971609424872788457959735026578812786560414470839392525110757789352633363040682986366071502656676131794973845460991854223127636671981266687318245715754662316868283488376154161082260624294967172772172777702758613248490861809991865415708732438666367176953388010626141335598193800862986924556206108984087858652818035789149486952098711848660291818843062677864300000930129260256449407184024504470863566635462695104544525923505940507031448293730472134508144223409489918924503217375307414906192811034398335486411371023880007825506297425718702339619327463538449856150254024633827234317674578604577129116540417338895416033038856040378491193515134139695597466431541810186526233219290221345376368482834778796788035861974003544181919019049371678364556567879283956739045152911681798873942682352382787298488367450278731247803655077863328853474274267914413786548274140821751164707520866066710041961014687410758091252125054181460743546230201413693613799698481564940770220096791590512379830829141551633302436483751602787735431618378462785775333660908706216841308313423800331010770897011146294184300820114489972039807411770882649047519826330602648181151278787008473310611704750127698485407361577246470486647418456626535787587401469132066183443676162739862424457123686547346192299571104041449660170154983376802661220509266706104745714767832064230387805981435168723654671891472445271133573956422071416162305049216305502911390958500362403208131155247612958770523372078864006040955986469436005955832626576616587546330753144197704793600314348436260424022528973531364213316787725810332430421551923951002852094168962182498393198791155025628097376363286683950524244572842674577024965003860704286166752630275146114281165012849043121181607071111472264455757488029212789988282748772888377424147848789247089708766823532429286302875673384949004743277182495648100500738269405616496712789725284734272015549267988435997394502864814635070967964856587686227483308624491205751652694134465033323459352887113216337569041511043032655813198833749560879159054273929888516597938946671245539959371133472513050871694418842925005214072785176375924731087130786686000220333676067664245583624295226711920066113796149501963566792377579211749885013994530535166923899173064315949464392184752367564178138537524089975702476836711504059213796633312547613978710433028305332376200327868603986811221468853513401690778543090556238060143607428270634049399569075067222913451620946330178687207698098121990497129410882306333120638374861686819558495395433843985994885034092702974099778305852259596652575119945778415767629229499547537533703874618900687754853842213892492280672673221330283007390812967371116580145222972097525432875522404272032563884483625238107604989705130175064251068436282169916767671316441066189047668500282923639863198032770477971873280200116796492439761172935203861808063601278977269341783922255592872620497151235382114824114065015721571607741798335188799785150735966527656063415862294133637337861317022000573500601609726705311872774305701469142216300298753042100683556457854736184168538534010708221077838174726779811021149121180696761536756442385631404072645188722100139513219251442312799992563894424872578182800023825218417286204891807234743767788607168765281760409188376626933331643503723549547548951547282010893771425572844677488245694708546295797964489189458648087708537162172265025327637767232616368357433994216663398927746663222740833919960112764567873385360975716535651967862039051743527097564022388174590852224837023018488305845230342624321733402463432329122336685461098473323044477976841953129719155424290440596784515940747148847911891559337555376683001478634005436204501375759265192513846362342062586836846088517592229416192628495410034150664720361907031952655226665040728309590671134696393137882221141881182278718332145790014417819588498862952126036938820243111487719100457647037489139598562978296934872271277146240870807790408317558306427938908776736288493779487487097551178821723461231410435610437810291962934311733504546071166652151174547984524650817069730332153929371841095051636789938846263428497921422801696843114662343183353427760029321435458934312905536836152793348711105959845733206756531647278450068207759098201296704716380555341292359423144532375192304826631271957948843322114031321787439618621221189652967167434021927718419789031892422620427459290038950984150575561640820397391176904239398836143510968800384144595951065454452635071710372909066262022032245837599728996120585246519239113535009630407519376243733288590805153236999014119334370013301195237541793982160990668310109224224406420738321737480579952675198544001034257225515492980012914388633156627509894421315608348014497605229981913047792244388384877657497610134388281583195123493267359511118215694516353116365566623236233708410883254385809940826413826223196828400063711519454047094874207511162083100014681289721638073738465946736428492861735085331128596240906074131701462815760175404824014326395880457251764653685389961787787492727020129029434526749936572083387440075189902042879507525420385161962066805178566613513557980711763596510933524986756919034743575507472043318744681264964116580043545061349987356174343546046456331692684751461368414300277943262890777137857381054286949589743313225428325863934729611573176120225835472429893265612356345906043684493219523938894286429687096590593500150978605872783792198658610535219255344918618886286687654465088177038762902454134659542885445843747447326703249571549322488269320122188852892338318464267664962169306038680749688064206206580083823938744411484520401964173315417785666476685248095796283616598023398841496688108210458184559430327464221483012609424569274895391098804213557066495378515739256131552324381603640246533256361714820433186304466158853546580224823917237196826630140372992135739111668124328033824190021835596472878673784550658033798229297766899472603028862088900504686734992072168378922105462604222830797565132370786030007172031296973073951492532703941240343969455619841347593614569891607156735996548841305008004211687820439810228008407628290533885570047840809402505836704152786320355008878640167404400277087733167548186188564987780770296573585996592123728068942368551083525573651336701538653888533407696754667253742137706894143029036488647070811903758423123638396066152310855532180385800048480290100390370025228364679523752276614855070579538704666666236725669930006485038458382320640390098408935813996789954777969477299924486726193406021169933947630299616508101813421955128410178002952126058265974558469823208397407427567652164719569776604066650511993161400369574048324133390123273044770512699220883199732414149617544265699581529404586830865913465783361817291340601848301617331662989029306895967785398185872722914466641241594650846607075803676718305667110418125800750070817966048872658067706887857771177946569365145124052144790163342073763933507491814663375874214930291835715371465674838905916454472151875911238023856685967008055027284274245831302124770352809903898456329234301904649455784016852965944031274950331516155492581273920035023478488545947218543659093015214610632681778214711835476221594956236895110722280773390081085646871125603878681124119110618501718792156232261810749806088343892281824568060521061225656552538096943667734738366824240066787862727290940893000596741756246729963904966067793316003906232148843795476713787600014961255337884051700732697104370229370382178335640711899197986577056738701952116870419505251585422338375262637248539402068185567964347614207259763990718441491884138034842853391178609729388258912672598558705617321337454390091117528809117370462729577005249960192138943937424875885316949078829129663906077942423205006906568346279575281220224176296426839422224931252015451387757275922853706898666888379377418733731971661346995997980731402263853380657372933329883741343256117972035859478687718667611658228677529076491624633399669071528477536657094838796841532207125537740558074428330751371674487571500298437313726990752545494744324774472417524826515678348139489437105530797168045362269192688405945881933263139154326221036919837177915952679871041315807036437868500715964351422585995459955762226144965947869845338508816044167405774831231525452238924073599465686737482737718085786573005970097906054848688460476643930035947918041352166137878299073003119382465862166457618937753588741335848751392630751782045897032320009902831268334941647672309380992904492541804872454785823528834311104264487292423023022926157080158389038436200944225418113548346762908673187199929979151679055785093374954141589747799740746816439108890974311266816651169171967078404906528593583556359851526898227361276141367655528034657714471296583953377797861149899719053392866929950091694571420664338712310733468888935819906618581994726234337321167569329888620231466853982248211974267876052933335346148467563743927763616544178187306178401794073051815735586113860331876250256709662264007175181897884864752642304315910548781681771968310940863530930228329495841706605396564796594034861023409940682909776470319492415748817232984077429711624162358976983467309686284266314375086787629636806262477528657557240562403049808463111722625523582057064882056844458266610555406199726814860825662828249839629831637196834713005581831699132378698913366018512474868650245630914257368245646427292587017320851778973387658323720002545447520121026895377344145390021339884309157405031946494649999724278776684992105197491096435955847136485792525496911434013850994184879258079751891347235245747201326080023968617312653078487916960682570090142245065407696175115374770007528933643092938969970413470955798511661496487112257758137797780541222084499532747479774723856818530610979683530745090831698555410362070978890898205453255449235124490187715541527062090018712727706212924147000188543445638425505148609019121104205146226364334152653860741784838861463289126091938028193029607729585300178557887926191421291637767467017521253837298406395291623707500499537925541509212678646510843667562020211893765186608297199122469323994920383320309949509008840972982937478351507561474266797836664616050751834639251728100080234895313424958680814247411322516999014089619425217695465763032741182080159161115998175809777125952463731114622017380350631243355703687375337402377688806071976586368583834471619911620169698209548253380974872686836789020026356475032841984491794668463762942679711066014708684872241548507359508472239086517583999617439749364769292928236901004009726508456271012027560215188061380516473159505007135742933943434625199833297354118015949533377624378270693566847208676684681145295567332125714429505101013580313368843659091458852384890684996300925020040783227171961515984261839848771784362026733665362501043213315675318350319930333559824591445164167988392816309588337338745823503794515320396514086317414201248950189278510037144426852178825539848254258489978562819315860182641976204904129377872075473496385760857024456053512885197112162638089368032631534089186973104263668498319682260402880960200470806465267240665715395516420474319193378471924067207960626127772748272546251121034427149985574443892859300454802541569025885338708940397281215785041164025189149752210684040314485379045496030202133124712378143336406477920081331411873408171041992388552840636527093483387020661825083972568614322240488515478466886957379486042114702989090069207753916488587875618985457417124906138225635079263058625087600522523255049763012622847190614060361755935146901746909699484715770269021152991553585479295434758504770493869099059272810625785441754927072179894603513485215965702554205106008080077297736552587435910386714537725942912860866442018024379267767300314966328852107635043249818145700931394397086325653532989128567911717691197955753038621188407988744329655688142238045088146728472996140523744113538782213076436477408539411949885312397275824865981597162811943062226388161673128786097015991154038656127436273421570580680299420900501498245116843805746462636322927642398082397712460597579579808087379227715773272798818909598951821907249384606527672208632372264461846534855870858350852611225799734938820563738678371240115374443157556442797815125942143875331452409975616525185332320964279348904982204297420391613654845934517414289516236702071056440371420905428568273773936553578529299204801208089398886125460625440981021262591532543232218172445033196379913455003271951824325484639716282064307605874110126822929218758950903813696716576879935285030827154605856398404599299293418558562285509397720212698472929076363382731128253352302236250499010810127429331147984970945103399127311290771873863416541341886265813018142699932042734840764358890703915097118408998809343158990612932617770243756337420105837703913211642541397206008479724157680757529826002005163720455674125871946104996658120630945862265705816268515526798674486713675449850784471163585133798344220350760348410858357359715871121133065529566496269154159398862605686849094261954189359843616126845599350298282002353320651834462403089244112891938978533752878915889863928363301398565279859618657980392503990782747651920360604451547192026855999095585390634478899466193844523678964048458236322866774628054848796772726060915541663355248347083745712908917313539332404934557706878849724333965686399940153831700416229812381779145005813703591158940514244676971254276226010465110517032556542349669106548231227962556498672373564738915633670492383151883402403848054899367136406345583028837182795216274242372196991677758729624542247262976245338610738143055087331771578729052529377954120200338757337832208109452315083783355216213276408353238006102405507493913393072039402326086669574533863680552177140887976444631117944984684547394733127399087779631236433442120134958180304162889401344664703123696247105180540092609117819656062717715462327034401198048841931670473210745588133728612596106614722102869093752573205727648837507434168085408264470264222373913008336748000842193479844855162244654060510503375944591415464157431235423942255800507069447218701993482084250386301369697701883127896314740893975551503964770091682459868890559496883088852278434429771888583118243193153645956692215178158342119059283842852341863878659705510007079238678163809303125435906704050280380532110322328560134545290545647676133048383841081986278976063007301323696187368504298445051453418512796769894787797344270036501225988440245240937915350450206067639880853571973602099709248535778559719656607676533645405340221820136471993911576008215208591466859509072755573120602554124134707010192087437576767993849272445602819752513006638242448744686739015170553763557552921909381104682279895620249177935618320632587200543509746662470808788084235224837662673183868458366305907129412268815386957779971402660336332939375933669378317751895411577939725717195188601955241438534644271896739749933881234506631206440888792610020424192914291992304047299921524663515575244594741127323226823306469775147381868475816909316133450175598347448231175050424043885179692633982554408310436637202648916968833947789502154720576397686484624415926795664311656468500920779589903769963913200032422730385730295588541610652629493792587269106633978931058938732313797942672288175725197383879118983705249138830534377114739060074362918095294069123742758448179176480189124065806456070701079831533867517503682774155789198263903512690891759901423412276518350832201167210778714990259559921124461795198751553648151708958498095592167445265231243535622203764311245816796913388194499575969389612497827802417546803866646366802157572677286210293710277181693114653125211507552805321796270797205655032530245317704528415729435172724800431786380074261616521563902430709941824091987493821858485761739491964052550221511252003672535025616695190819891277817831553112650536234464507528109385549480924603700781405912173361063280357069710003717780457948074199788954887221214786126176804340748677489865031492088509601840740976726584817896838661570382787985758252446231035324882283140095799147525336773734602818843135904714227530884216634737646701908532401467316967318275100616026434479434240231286367121212944203707337574655626433086699550006935133567252510609958563164408221218328983861519473968877921929682066290651598660373287528904157071569989052378846538666629217451939381820522089165007196798297077004224322359483323543605148619274292036557129872199201746993749721359015762075953904567277950279475031491026921306919353801180602865888526158669386110531410433945861714425688305431447097222329187955974377450721468382088907793846028786833246804376974448952890702031656520759545207650380054520245517923758683372865698761318805052376438778690156963971296058850082721305171117686033857768068564615790495920407780355599877782943741663913181531231557746044427185206743191734337332038632485919892205804805273598923315561584955765683741782189451597100096010588461853476695061036683910271080451116779770842287093518084905672421185036239132152687820899069242525569482844936153768027519954362482854557466814688702924351819996717181509829934858175765084107759914888511014452326628407447515900057638326195164585381991413917852337691168280660530683277904249509886689142278166999208563810585529332076629675472837729041400002921659914854012082082629461857249625621688247565244298511045551288220443034408911017211954452467109755666790134147113154164329065054413277636738837335078902232828869616514900565670249377040264661018131503887598256645995906743021906596842295549374958060595706758666065092999234632684318564955881534757439854826533137132922889129052637880399381339319313892425902128439567544174179807392385178925099981669583312854479683298110202120252216617728422185995681836355033462930708880666336718550202864262019111506427618606614413614038865869354801103845728325630148212679983287270126289479922137895590935634113634564421075015758027348744454791504386066622710186429604221803432711520577846585958504068082701483953346451558170142472009309497750775658021470308030158361175428595632669441687029183912264953618980207002937785605846909235606717749256692162447316216845333453211914748950498873425585586125858340919461597521663787021236889985423900528401790444231961134948501728239435454120947421492799968575379372095789559340349727649211265285530237849836934455125905701987476899268294853306551265144687995768113820450132423755410101616744308935231768176375437927063295065784446990832260467115996310976381497717913499083753924058939773477347684821712723358935359047039210520436768278034281453943118283668471835792657539686987070852438795654277040395775518865178916262273406944810018906203105148064663250388766110930506650360071275025759393477192129572233661008912209354312086719343758374918981015466078973840700303370867085243897082539953024036556307991922530607977990376329432048908925413354360447079320779965013973628984019769784724938209729243937067402708861093964270764723197080054877190523686796604114776354168232983254877105838528749894480574998395406954636166192338380208194510409964921577326574184612463280647874047322794562022285690714109270967104436776120294970739713755078182724087820466228025685232390126602091960578771226154325536112913492922333303206335959317171359807297852405233316273160341242891236455218546198616444476274618062128054177163797639188854851812091697333494813514777497610386952291984617745950783112212846394123416343885001505570252915899801787859721871700276484409413737395329956818373436256012452450103585187891399461010156936577284418983402219099364627468183567179796280338592342940450142705402923615126703382226010901113053515263265456172253917875177836007420114760295976395481624458249076197796699297412169177482670906633692458196689343493109368979437534139077348491507620949966624127720174358850054279460166485931766136693276408342644388547693479710585846498604691907086903043969911371976420805020518304556536722200729196289995517578139740004807575956899331458677296144376080062680816469457746366556673281498774267645057610190022352493366564323236492250501506613077048918329158907760827145947113076257255799865388663312839024465061586559026326289868778562396552802887578132985744306799332805369906561314080770516894948295996994905022736204758661696906724922416695347033343952251133944665759213974858182342861042828186993974539929699923694609493241737926721650775702197942766457913314598292098558613098838337207601913122167912446370648072861238572375311929580444416749378821750192179755820489316851644637401076805603328677805401537933211257898373171773996973041357608421156094160221872102202644936725114505756164264208906420335652016234780241938056075925838544677085415979869291401919100981031589392678279827015587335757485068392547752370920701776962148528744573970749840544788198271377359903787723377618891157544854100987460608764551834781896857213068329813728052553387919650311747101455668857215943885639083643301370664681085143084135350617445492838487103017392553026437087409249994049993655507106723323649696557976531852563792409959404982093679827840934420018538657966685522645566873281431796480700176528482159462787212207761881675135066459875289388618882683482809755098722637840013602837512244577529700184853264264563536310439073670654022994126488841182329481009516537088155202949388986777799129237440686641390630446815992009511359716320395302138351237755668195272550735788645563897201409413422297194058781415162645474613799932132495624955085535452227727015241926971364119448509811361020241354108794028725580642612788137008943149089166813847359742004034209909648033050575254382139472663561434699089233705765388189220168342811379975252951256745681487971017119643980541993769055903105306761471126310855564268512001667652086072079287227797950828784099992815688507429263552043595714982437985795335868578433760049231688194624020796138189456284622824286502725064998142669042611751911410534908918368479438635750697306549882532960206158183481171194007660947320275718707388845146418448988622239634465959274980435195794874746347283100591501062325463339644105902111525786817733673683738216733730749780714816469975765099768096273216060383185494520019231765161589219436243001493195609952206440911452706346314570505056665545850458381516407920862056369588868313245497094167872997126224094335015869181131782397206466018752669763825110579320318878187312845010972774903432044424953792206386882413642819736099575766942285485957831569479303350230405049971085944036272789664752599619533483100282717197845818756523766643087076316131746030825178584571639515730337358435469726776950480722598675083120921247149284008560843816016661659375213091120013699692942959147983809057859192003387199859182559794824083711393546067903863859352821994575946251999124872189596105752422486250210003350687938801095486619297853460963870064474112668638700720785199366745622279788799061611507949649898999514405768843749454904068130403317319426596138900119232051908698681010405309762790769263305449369627113040540411959140890709529239224453366495826424228182261735732700372410071772221073941665188853167723834513855263483683029251212185503069531538985271872830481467877210102116773924619314505252973596299603397528336914798722659235849362623357380549499050602101526456688105265702069685959882202323290510880775338729737350960601150612958650748475662382651080815742488955271330500478870923556500213433144328817647353099538869174696847402961257743805666340708017338103244881164532473746639485873984399309631286047017375648424204918748373381187698587841225798650398871954794778936795539207633784478854048473060443706183634060483505461334312299256116836669379667368873856313344589637126651607975098932458226549922307589774958953267419653647633404974821766986348110514386196428104028250460610544418957511613657542189091277300709171751250713349990571753521611525787031466345730918514321676864260656334725201328536480765334414470588910597731995760543494286382738471226913021728485851181500070660615556990890423202965334833768229612489467334085274272588547631885873803382552388021004182096895232995683562760415478713152123258750713330877342339113335678268773622974696274719764271943955991129768550193111456963093218509710881812662716539211867579783601828499563726814732339489640565863487372262148582198123364986556756486847925755061795046468463729327206434129929434029777039281415889091240361126121401319944841493187553432593415467841028837487327137780858329888639019944266416738841128394905972485863481156715611870636866821598650724392569100480695234882781263481994323554683449190874109342814036976969434497959708726339557949390590508159273683529390780922388788123509521709421546990261598416268835766846723244960628915688153757887511944242751903163869457627053703027674362931483985594032395998395834588211797873185239511159389881712874454156951123373009374312341129070387375058317477095138748914295556839949127216212409740998561318576454162560121711817558029898203746292220092790498685099076286936821021057470122869071997798753507842083040154996335713746222338510418360257478300495061279721165429676465060911776155770475744894754111774927095366061596707823956834720424858582567368647458526769123490080251545327890205768769671774745878641281261243672438051733997204953375810790722098799174351012840577829019149970342559703653768274056633913620857622237237352997092508810678513725550734007305706435090129457662568428321558344263839097971554967257363541054362796035997658014804397816511242441121201191668951591446317747899573674399324444169798751409861234692417228933440450892240699495651221960989585728415067466929082633838969624305012182165913305376804079210182289022311533523320316752238753112181970849695659779409505232288887418382982607336912889469827641362395048630970385224631155138231691377666836086612898332113698000788292242803058795606214797933803435345031267182504387738440382691629845060924608879168933381398759973189783995062471082884922759287248933895927204465442751996191185324975114820800740087032048540695536699948895535248789115516316424180890504314957441274520273696282471808518130660952211347422385406633968254577022392539063904105466875586527235545157620303720350937338719058170754848680649288915970384312157934253396050739503055749719175588441386431157703538973715952014661173358481129443151833812844490657740203424218992792198033560277785717483994289846590188157050294887395093549055890806319636471743765556248290230987657410463015432466220765570085356158075851079837288123827626040590118157903517396650927186836926050306222187657399213639639594826862566300586798667252925977672838359582842093100655042360336350038659737451266481522989132671557467328988736709458430786714603611251045148618352080678826174372962681465570740242439105409300278850678145395812371518628748304802317560917918360672956230461105124968594295500688622217391911700422823812716088009727409068869132841943487566801047343206401419395505604316352570866360720994251099362982820924160955916986193629836515244510227999092337435321025749219626783042394838363258056694941754772291882241387109718148972232717212846036418690195366051109765498177869453529862024945257333061290549058291997653899249618821837013538504914341336195628779135764827206762109733245446625688821327184386534007294581576326389665804538125542021971941798274338480551484928366498357342786075313906511553860307589214978502055446526512890792176423904450128250292937577812036045291803522797345859826610533193914138870295491221667957405401227280235073194381265129806978708805708020244210615485254932274777968700085736268078672643112115091081552440255917909281612828496448217901552207944976153240865022811482164190348712386224886456523253569119298589602893580948678516138483003394518212296205500759864806351198991831175268935464831731388714894567541320318382969002666102733724726167410593698816840004607962696840364660822314112506444159700189844975117790879434321358979300791767576141797208544595052089280281147181968791537126912306159502745846901423202469340122379545007874590668524164014263319586691402519027109429592378512885042466724554440607552425064755323231311839544567540950454614161734686894743499786598293190372583321576941085696169428653488659867362115066368736226548098600159035564626628614687338905260552991259580629863153715199240017320003963483649639803405210552052224222976971481626865173802856347262665065486466704986208034726134493788135064641537974875804999557721713584280672694873645965379956057114205653298847651797695787910421564180898104555259437765222759971154215056568728639249447320525510203924407613505784205227708198247874582931876592706910949923891422282633323792178514669757211857355818693836969902134647785595910993276186783680454264558583148429941571360526806731928021798887429910749770362892770160872497682860553854154511717619579254804905839248654198933988640299473553961781583384726354598904641112990927462049226912819107904446087149728159870258303553975613530057582519406645164504065949594519144281783307339951458683035751704613076467037701001230212657440043625608573927581941679066775201294400475575163387453299893419336027467583093140425179349926293939691904395977068321830083455824385322544992778829181259560655728269648672253975996421960441996808748482458134143588931470818001456111417704081905894008211414075721962891444688205144813365596053187867694922944603075029505617250261499333349896628659904722441513387483592024924695433673062453771245137550160175788596768096059936105795393424933474613246947354492877240046544233100865273035858930104787191863397876707812045143928288564604706277832354514534493548489500623744346123045641226979182062063110522324650720731533161843994371577065305556536929009165985132898352636824498160843195235463039991980054822396193176968896897203801352931168727105808858566806645291494424570376697994259280152155282644509027890987801131868122183666876319465086845573320897874284836015769285905291239912401295896738005820074441754733592347463419170294139876057702618741983785506345593134658221957733734461736141818968615540056527109708460164607134106277509884810736928787749227852288998438300078932710939948731136744720873838708065253867093881386512357838537381389501073092734077829708934691791954106221261308853936520971958643001160465957422005865807269457836429780417705439087057504932047639438001615444792667601605412914669342530363504314478763908677948224004567486452757337426350294487318768701294704948386344756728148005856666654307980398143021659284925485306574724987322126163269696313823667859449117281318140340533703769730071852744465389823525326589607842544731554037807729763867437263507922417598242939992908571792423942674802463903928077440498539843064372523226394261428899814717568470739507942756393271416393630289614401963379617946868234713402736148326148975195613020783935495251554431601931849216318838878746594610322809235153235497068685805303867047950347865394400899215173775373508662281609585696003589504515331945644599393340778123433524503479854934474232192656593798787655836821222433084827754788946176086776408409974458251396591589663917828354792349139482274213701908790984992797685664866967931135080279052498765511058867967892168384199646288142541754039322964629137459397289071273068167436277827421027028787005969342476952512364455467638848139249456267481615964636373084325266786880492269383012136920006867572958328092913844957246150465321094136479195979880682565742211662352375786196213362448455246425583718036490793866729363845465269092419673911620533901423915681428894271513079702274648121219539416305083802131950781441842116770701033367451349317913623326728526318272305382054196184353478327413773030092461404850643908733767548434693963574621148930587218576337332923593807637020815629974139902757123486745519276912835352933725638190826221860820322843127114324342369840403967168911448524387194018992135085351330802934640520805969371968472673430306068748739909932856323691982568040936582721005180325617037478985275863324745536830682819165946918672527835507416722745231515441666468137800596236591490838184048792330480313080517646562784477312669851779302138816789926523332819910160867918092568728161123076739526881914718499346984720100157378632670115082940129333871344885821342596814787168569586429405366596805248827169593266081243426481974378853915563827074248736208245371237599761611438424707042653216759621239267321668853818273891882058451416430999180076095920346129046573018041140349985740898320732482892865971878915915612896084628102372561756334629556904557242378464262123964081984993930685492953399891315174330988395808350534568979554386741087838242768964099005121238633737509383595753037033203347941088569101885816921982810879496576004279865169932162151851319558889786299924986226850498584521259424331585401949171176306504535962370611862062013047748245499515451254111183913303177082058754157351198888235534358817446012390571102482511796049162575082678432045546797748589314083270458547104589523881400517177828281234120573476838187435045877446471292659323694945481319057739995744874060988452656353216755456539758732461043666400012063178743968357697539649723883235215203693612762347944142257907362928378030472382366000719697666763526428553417498940419385536836189219214577138868118004957987200476362932635141087109317687536602681499791981536269841862123120812403754857970473616409887708049690374923257996601107384193592768823988451551347727342600648231394509000465130370758881074383547822771210569249366613691512844279854498904771146760973036194886414244335501673713529923370892990576053072489530946687315007384611387013913270738686707516182959720598502568424547063961179132987052401415276452441933836164478292366865627280470536278024883097763050527969309479401800502479011396585862997806563662337785517994584995519166526603482318267528492525373922048664004232092206684190342030510908720438717877462568574081828238423508360259582806617027609851834751417716977914476043699039725528791901114557949531477629819940792875252836545332468191350003051034598519332467347483461637160693854956603940258762162593814999752746578581089747110557108982709258424036754632391345777666822046744298097413113348626065456996043478328433638638161362139532508897530538082482113759027680043932592859875125393708785401622107963126170699903925615795461664994595913016026073159102965113325375327990163703242197375490804569794645674290095089717034055293126033478971126453631821788226467896154728400213520689966624409061568849304001526554702729853921399345753307744162732609667218738059882604521428628076140024387259629971880639786665448401607117461742764227103671905509153497968840407497334802628043604506017927222659818564198307721420968920010221387692206240361129208543935575706237412837079421516452518072452075014396467400040510506083469454645347897376909868087489372011102975381675425087756676000869089386160023622502556978689306215795301931266102762770865188798326775652222707524296411252613210887640196198682790692233222678061573491071924346157387145148381660644846597281832768654509584571382094440966671182478766515739332790227422642002392951207053057893241047780424580394018207185597835428252643960349213871598150010879403786378330965809116189595786451853358027318084934510738299946396560396506795142865228314417676818243463065232906804944200344743323148551472482173853906805163718655204331152678916954006978820727212843170951556833023806584986151015440276406312356777042766761045885009127191354191175512561550878478395155450171159130782724942961334898635007303019627001062247537793912013475928441393877123739725628587059200058780433658897320093311057094101317973142963476807293934403900840745254000086021714829090211844322535669951125350916689844968129033640602793716878902878672034101565489308203109887908761226393346209158383724682522499872312929539355847059125708894099002483075195497123942912511639727479951446664997367086609558842521188576356712368526383981675994820216914895484241922478485311929417090490946399890554969425662427896768715510695977420933445579589933569208123351610617926575955382665853131279016286554148818262212362130763747586060453227378768133374150391975306482884113609785626330462493605026003131700222070706772238570281151243117075831688323451611355550732777362268545276780933948652102845710047285912591099637679114931604783500063342607122367543270650930334430607373330611207377320130122977527597761722060283899969148950916523967241171939454478086116241839147066972002838106684980094578534814330838092379138396392645074670227296364549573053583293634776088653556068841555484630694065104109832861501351536686436515810996670267073174895379249978075429638021530139157178178608237883130533560693542849173395935163268355979601127494344988947017862274455627921751714050967589077358549412252817532875445516843965224825990823491907980336013328840500424105263290914244631231892903195906683422531749644528247595303380897809206652571430512010265117298798867514927953590982947790360047012770250050266548504075180403783808494633291050421445972574842186738105347570959763037024011209849713904102471459184099042613635052761823329667205075825050748231280460057066011056977607132592842312300982585176885143899238405254722409160683028578420701170346243504164087340660448759768966886886700283902961199810546034894760649293299530858578404828563606911621647683733132279658300730887157872004237207325105218144796845324233796308164126723183981137775812849003012712479621525849870414732365988770293809829992560751097298423576243500137023821621374779269687259909942534235090425542913011072402904947947480686841112914973269170087200787550249054790672119142958279026996093268765000563423358997914963704936225044667299811384605116699297170303247690297480960618876326731529685172033301768186416829643044460559856142940735685225641731918792812082509182073309519801365831930259516229553827785568985976222017994306582014051963284558476742168194611436964807844659721070564588600657683477552561874334223087101250898044235394441696228807193344750188538541430378957771103428433591856274123117816539584779164664342271294098807483774581291337428190647063331743689275945137114777136122609310952353192311995734787140618828344499061557075515353659167437335101378587561972018505655891076430708800292706367709787192308701910912522179272647924385019658596471755075490147624974688015371204782219357575415283407889124301952908849678455940897416464219456626722292031174601634544437558046435000589375817658260607681771114027977641949141627626406371610150006221094662662661587797157416442959283793600022513433043112574081024190396089531706626367673339046446330841861065034987944809247803061920878922269574435367672960403840513852086205621826944354567213892996332918894008734750515070011900919661196747909347400507575611296233200865431725268556015871594448666938382566433105594422586467585739168849712821123949234282267800650182835525461325151179362071570738732813983675978154467042555897835305445129868038719825651408782885255335971037014848326516012325903269136411942682168860942406923628211523942893698199348462295557318529133458222683388143030924554328988961285601391336113994093107209652095318406867903059113556004252412200401774090851339065933378540704980175336668286967146545205675024648640519965900489849989106447602062543943673665198931273918561551035668381495017818740837769277307423225026640995659241887514622537361336673172419501124289748411330603029663973562558862565552084287729796009503700006166760658283381826566932717665001578965989109509520231988033380847649173788661033273381029292434316735764517943461140475147098883898033017208684040842458532698944078895526534608080128267524017377106602075211138245861589151379805891559495211478395940216301077976271708537504884937989712749949574327763839829412562247541282047873957657603249980655300729174222014276776111440078853760482123241175706896485547909051033867570526647943450174657131991367814899670845423071357794015734623425330928342715039742759512135534862907041684322312749746694611764528833666354141899810551495734817813222971486798557534216931371137437711747923227045747643690011550325103406895357574483650580960087335365298625332191767029813085411828908055090047129349463766854738830469147676246071402969081117500512738186533313620036559089211645420725094685848395442929888660479340666657569107685760550375470949411357524817518366705185696586096774815407197432709991644923386396600787074689371379131256111144035049229704827669659808657824841437811705426828211194918972987935814033232285882594683491296506788124071687562593378222363243566823285687027051947768543623350041934724098598246128675709611130675756680267729267537396204371156367679641498068116283678760666923198942468132854867994087758820754532816733744587319738413250782829757527020914315195706163940158140790204933021704808328756655557980193354836454785497296987726496668152995745896793520269353785300975474493501992296556852295646243195454432594201392295894918349452463467687017939624799064564728129358638057267223123900230173852545294835230365250772073137373464343814315813740602269119033810412123623575479982836378648119114300056089860034920018326058606026102964380979912511721597739097185154827042448851051127097671006117633423743677693004818228463866750604361406128211065441035164675006120349602418896554741326670243115251600231200840216542054537397787034951453918440060734990493657139347062382158275977359124379846182366729081697195381074442894445088697927999189054532556991937347879555939347270439438300444394391615746916644549747111238008673745652322616613848933296831181652548376097804693878141458480118462368968359197886314896654567874723055607731046593155708089482089092079178834639223492908106071582336779824019593429277276630475056804643879306605021190585639512081973425003232230043782974289239849175583647457079517577504890951072119700949407493539192381783884212513563795263198347971734540947339622106913234419682255371445463110589237304567697411495619928761558204505218096614115763529850720890380865042567293659095582984679685701046872829556891698368687507824644066968852350246144997203598922990591793098651445509635957572492683055034595121008327938178862946872717246562142821440512792341719153324985408164765308312536855989211586124113416534024655312396542691902507306164350075631592538819519175673459352714992514363695004951805638708586746306574547926313402285765129253450446572471321804085640285538866907113298291361206431191999284090487438713106225433497598968838484753192509995075412669066763864275552039558708754219846325397136132643921148169837140276771259145831770384122770890671163246998346402256258195307682997853326846674224134718945726526459582566851987908542195925540404640210829219473939734138003671942652866453286481906713472128734173650768010442103388270950997319546458269708634585056750661489459852171161719594249153313740642205878997622066152516784999300221000092832645826383730128552105153500712465557696440987936820160350102268238658978554784248144151844063045960242547930961807665753657777502999201785358794189078219145639150123164979965540962169550502884644786005924562451347106226666996695888789638186778473119589556532364066085990986375471713350954949794229159803586806824954321344272544068211761783276821066283508761505699572546709466862813621361693148319646608138241831996518601976610617371651753934583082419929487545834244175168078829620681854820543848580318826942631143030396814723576378196064358930922299000079016924133422582923236226879938415319578432827897800225682002413524041740169614073542169007732086647947838976794600891777923888199073767316948775901513986847827901983545346600495322505350626782274868694084353321520584635263239559077805373666967753148966127788102285195376129362622717061592131858538162817411868075201594873428487501459374471006955480153905055003998838578559806415035935249966296215626724942989472115950236773230909599363909679938652415682707496813327966241158583364931414396767140852116833164157583076423264531549743644927340368952236826291924550434912767353679677037901990691099947844118743696882275855043043928728572887241541120213022006912834230221117530008442296401569075274294843634959290979852662493616842475246698883216399861543943753517728592826956582298543825911060000070150594870546812563414789796281303202742317564778171568206194840610308796046534365794090771338999789169429830851179329728599336233793129419410795527740771028318558080092701580848600049330199730203602602736319199162813202935728159271535033446355483724767338954486306344054809373013076957192954454020988573486109703732344747039054874512108455668872385983114210167763443518543178094793995686695697973579878280138202155263166966022523028724319873678755175928099794626199918848684420752098123440696689828376831616617134610871565451426319401076143010450636259174814583455319540002620339319861136495591023354837226346508539458184670043762158003984425463876875020248024725703839472660144603662524970806280953782699678014616431075977817478684304852752548331642031389931649772029847231431815025373049429811948684033580788031701314388702690437114845640425567073860762070067633445251894613242948720275035878757796548278721778437786554411535410075405206334647181914306879742114036811835366502927613043992236709240732761493752014721732633215490657919748761789779178394686791331776174414157178858831278516287559406854716306536101365444339543924728912817662350446064331667894158308407268681847593031022288350315555816590746183657437005934037543589782431166597513666845284649131012313874835401698081651839390263776397259603782066449443102929652550275370665142335667527188005879275870626534323529389462091400267408460564933823777253518080404218409992175836926583341368264622294155897759101279985766779105142301440672910191633062342585504767202327867085841865744615770354690993273951158996128921286578498160931609345497792073185983516266396682600586535401532283632574197212710291241912983878234989550979696744170108214386450025316219998840828882195355373090946535149484424406961558996720283959663793583857257850761088978841372143678751849081528097656992154385043434783929168131560234301150828594295038252096321252311931895154945087876015139839069658656240844554885688437787775916509651447453715551206057995274896083982296201270983737248296687256543174628356493765392819367254742604481181601700950608525828674547702511525447606135545638985032381240708307538344453967846049461098345565818927467458874800970547131700381308596613542081602665016916040244744111935616766283040174863853174478178921351278039374467721727748295034116957056273302707013120028883759003896245062464248798328323214476656606440926406477037144729274357996734912346113302502248557349510042421632838373135290178741273850141162513691032225256381182395256051401031404317659365641461540112257647513861578043043716392413005966583185956847447824947344315019883498361794290013430655654326159841999380670493572013709523611450440458970914400503192302721409775273322783325955441867805798946420218209183464963212841979513370303396113767594404198347621293515840013783464048967584802945982378272549438280824377707110323814049488084901778826462376180255920428638163803040718311044042332674871663461972272072471261325325585343996206707532342670212566731290738037578129464713964274474012689359709917404403790857238665246479196377216250419493205501108289003856179146282049338781536648647167324197146885879481713085541593950392427818427371170527592957145567963309359487298893286592417173938711517759961704266677646397213131153686426661739660882049329339607887813030772595226823237974471456828095685799337982246093504239096677326241377865031822054124721855797540265716982940249479335742304644982475846610649227546303889148332734929920054522153268338987704230861091376288499338735743586377666088249634526593949060768026833257117785888501991540264952657654851022795945620847947024374195674771815661765413070449019640897371778627162599387743433330752085610228265239608997859375062593659186558784371484407588100868312473810720273111572039352485928347306954889327409245578102150651789572315921388505088642947294777345703501815107179087219450315078540616924013808897284343015159215725420597415896939998128880875508974293554541607349668738897022732844715257113610888001125336439384146976352283960590925028866473151499921739880858010056834470848483530819219607627471821924322467999916327063833777784251418124037315824037525325721935280553068515176224154250479939530705476155818751683975560467146486247742970691666305681633825880548637797060700418257069646057465546071795601536769931220914038067281093608520950747540833193927599049932687188973923841004691710657006487454101042794586924564250079196133443393839958667924142441604429783922309468020255170331750193469394608538807129549086023024382907719500027483269427542759361481437546573002707011802035055199492255351473607287365600558108477537509313865293169047238273746419589267972162590009023363880111758644655947729799904002373268453097920762859486944693371733664240538398008094473808466634320199534100464670560179506455109881042952882173641816917835964926730560937437979149727372093089101290658349249221759075900554076851660991021077208614869478618013607163172541139173994654107742726235598474936973056147265790969536142513398549080860260766774353247637830901012341363881869027355739538863694310406093478483551758072271781721312463482087339622092116432498362326475561448518325077561814686670575986557673556916599809781937038618789520924686537822819633866868530428003405311051896490504089985837958525053201869380501198362227006252145348935583641337131659399523584466089708853764438268909309761214868754304090226406409181625579191598918803975179253902770947107734014506930467848458814932706847545134562673979481310735660097179601434869037736139741501036561892367756799405375284757781843326904047432637785829871947379815699467127051109654880846839691644391557410371591975931609545649112803654344840605872636798133871409468313763342805502628463851141041697260014114954617755817854865847948954991570661318967146492026347600887200602549259091345392668192985046819820006357218011528890044944717787421762511602318512184025609286734525868572596248943289500480053011954504616413073709754314255718106465911399694886317811928971919637324631776850847816770677954561487029175412706907577376632518803691010808839176364398351836690100074404819767386880347745118382796843558654797422082761461726612849785321787324259878465006694122152023689230732248353881338055801063728732971083814350366569053569381861966419810120191255692398114841244102161136778658872984346406941455078961570959647935644105838705153944145009860115666727851412941174765599847549384513193822796718348556133153416712188880425688145440146672598633453776577226012211448500172467717365747757121670722061707538519903273204347224025302737010630716347144564709823600960449203154179836618361375003919448077288510975102309518322377902167322608336564676723516347593519879092611573837411418000271867405943387182004091430926193405415774793578195367104232584023741454837752047129815311576622996301390407586772470097082378724617845241732458572492935363422986697870030513332178543795031621724963268696489544465503730853431702856042716497496198171684773479824023698017705982008050447699035409546771614434183646725353117118301980557576668490201211053421169753497296646293210172355403109588820002862037439857759468854410121558566284786081294686401581800411653816338709373722084371702611994539190864193626355303705922448115865136585750445675578747678392629572139503477743695961552227956554617226653823546625953868940769799680621553030719380252711141106823862322875422804939666823543972160369814611731748323804075068513101006420694445417918574560499236032530703505326312626366171127999260277559236355386111414146897964256801531945871979919928883112716336343230838536759951067547864286868741986042066242959502203584000104954267091844463904179498354239065707255370254114087580337859343636850577231896599028490812201094269057254632056728033573155762203563585766402376801507084461302570523526761909511913511477678589553547908378309589789720322591894630889945289041973379574924726455606609326394312705525174704638678659370925037175879404694784703588149616883831830202346272517920395128034687786217895254939901906297462254818913804207503340492159778229299782488485188132296740345020570193637824105797007464622778591130755022222539572598077637503962757611758606661360620620907049341304253585821601283454431664335608192981998879562487359362199309698776734047212173508488363022224284990626012946007175271726556183012235461356530454575578832164985644195624197482524893099408513536917811723232339693563520990465071055316016923692625647613172530816765586502581389555319745713999405416749612849532912013426357372197912100718744015177166032647217190271100754936420574971653530461905547006538585969219880874535884206986300774577160599212647397779232834921789340790726771706433040216481409434299742309955112924752036336638631490419376731480177510869631965879342045501965815182527091365386931134337461689016005945039412644074142566867507953156002478363625904382476042785459355432960688152246399900659269791007722320064352615317217878929736184340058463452581081694172600064806434070791871407962261378380825601202159060860010042403659398503232525359700318843500490539385205597597100522634154057383812155649453398492232243152242066649340976249208873585750741331959529976855236027309620371314039914119311795343539435635059965808709205028685996029288881426227264865789705351697822695703277400255835127235169502231992876817335287462600096145478717623882792113888110713620187057837764446864486553322714083254125813461854591867460415071714937916581122840807910710519587960862427857813890621048208995377269052726131843734833136684254944095768762641460203131193103416210687196907851903723607165933274273583944014494822039677665132190860997937787282830846357216827325760806861855194643888313102601675545897175640191184974592359099429066913446380858824888851923737511304160360282616165164097862040585572751334032666964890447459706488377726231151244228627999888660970759863603303180402324211047341678812857190290716513974247947056790263674271936666826170909138444035854162174121961419041156058130209328759380534404771095121919978494678980848506107838828190229205991512160035346648329617019122456756492756362223897603126730645475920592955932216375140148730446849576835685472171774526899137947782230353418854270499700137633305141764705016480054221464203176940790908406714198213511125940074284269176117380831961303413950595334156925534283168376753552477986527260050977769453299205804250344756241351110572131326956998304287246987925337756609731841579459675200258659288787085084995134007364014964729885237576747440962586498694968153573984579717513408980816228597014000849345274661398765349322879255346106346422372733209828492870182269338735458401629091124082318602887589663206689439227797863517973496091379100519081791381859442829532046945834458463287424026915794675185458283767107932167031392239203627175662206986190567491307540254279762606717966357633240349088545114785130711292814733676134371783425084553033926029832372392200024425960155067176642753302978311907023350487592628184861938782640852419216254117156657779020170778583679475144307374725465700260244037344341382642039195583338173373857393610629882810960063490638985820916750868301005174174824959579573428829200224652903573376514994689592527762564228057146650547834111413194759761862785211564112223909122398087823918436921979161716808428252217712891115842921250681453151068673437204572449412520820024793616689358833624110511250107036838369943605935361574633665839338627247491688410197696362799764423845006601678136832730622027893776405501179317834413316628630882689613442994707357266453250438841412813265087830496080013845569471212880416924988293455402837303686808017554070984577226855547578201577055291544729618902523947296166008951926071216022759883049415557432852041515516002498642021488140541489934037590473740775785283391789897367479903642135471589954695205010968245991705992841023277821963204143892470239484682344799478945754055935071626403325515854624678486648474151068370862260036194919844322948155464449601691219168914225016963888368883560928960952635350213974293736456715583085117672342963065927245573247304292923508908886325153344758374246274957096085306769669153150476776574184888889177166335788872751581829246130742886413428263932738544565685485455009725254389337849000989304039865403888387325518335844406361451312724069666586719109863286571974645860274388801146176727835714847950109726706299438920199155646410417826913607930397614293990720227461806756354830966352257219851012768161692079554753475826353496494649750746762196714156067147649016919912157891979563089600189817183685636443388110084030301737710880039842144650114817251297761944603064972769589212323677445586555887042821519994906353961200753594395055201554111378010681593707450083826823005878630229132333676788877808751614245882660361125859232826374494103720664909677322060484303874620374752236298812313781480544553804134813293174002020124420360618183738581040749455134889116466441812806423105952671616885896946136737297009697201493532188618815497852096896159285470314845544312579530370360939644254476911741515536179535434439527750283092336968539339266950966723796670787438282485407725352459976864072728715475089761189157036244088238774152601206265236037126083622032349829873492176336573850948281175668013155097966620513887445523642709426704915382465853871041842675043908264692734295689516766205100215018669776956154676840020199658335446615868406591892620563079496025577813665159860796875075960143589689664080117605523842078723801615568404464421049570203256025764562890339108146581160410717530117227881436107844694351108047065520500705000086970082139587872738277576887551074819833130166988093240661026186127129990056820517672811765820603413500956291800028722092625524315496539617041721297013245281946613450616788826928771806992523332607325515134259335093429649892454925245414815034253984651948263029629485814298110139135363262100049228191186451423242500433365973329241988164370795306194180768314600929108573258727134837871713308125937117498450341257800279833158494086437931348468652593307563415553465456700098089548026860202725129449277213872281396787421096527385513706490192705150123260161087216547820542701823120934826840745536266120643307209392776769123822828268720991207228342695794909689169635411798663700306693744997357784083076011800298995849140853840713426404184333833599661082773400366530267764071970475615858321151634244879117807853685107995861238019124528068500802901674407461014966328968238311312721275824407670496865694167226225086982500814737708598004727786730782240224641838091817940495254291306057661733635894534433761227004365143758058604202020309512196862975366702901851262539304407297174461507714783745720656429776927911359958986398103536291277978980838590454450349869556388752854482479768917791010718738194163800979230656505357472945330651646481415906329682043438784114286419437716967277577121908478201717285122227712693760218321754571406326636156115721732983470614471659872608151280947740966867143314221910752790640457520071981289299621744424011901997412643063646145302488732455209827491278586383206098165582349913021597267487276095632081936401662762236252275339313047745061945526202616875717779752539789521284548764796691228794964574877350015340723222214325450130154060049902797051183939580508367330127706240142502825952040791845424962778527664853388584066008135333467910833839202947074200000277879133420839947039280018470486867448035977819344680931788115854014996371048902552624891598487870952889119680177509931046542681755958328484403155862753327444026981636384259301872990759822693658128318378631282287568546755350010355992581805060323225386659364912037657634256557053057030455622189506386700342226616846697382291611709517328397829140313855547370095909736854007470847179530294758036038761998859935767724638619404239734710966923952164304573022302220159064405894250943325831757672835365209445871820534926431456964068110822075479957885573510369407325975657534696193161579139331592948728311117915661536843814675257141558443540563031685357876522924013725093335730143605936879023209797509900370284040353666081479345661369008795753791373664181862906143119218477899215902747351251476888824189544913464137424004193132822740441395429260351915276441865237889934627922297877588000074021136583629962444019635884102265418366060704795636546584430753017178169261615614771477309945084746217480549858875356676968670953220314184879338529706377633357948935823727902781885100847437569747086201406538364873358463994512681802736937139707453786248257603920445377536959764342612793174836900339345892205177701884504961470604080564162598038052999356310799642620555257244511701033587988137100843420457490579512549974257563066949994060283497107609560349725231060879109557456606332324205276189117609339852792890088769814255461918586042480931916604687984496681124152426302219046708676868238449418536863264635987759397056347252931977889151862978299118719916952052086277113369903905964647846701661073145547667710093263968727910062071056251566744896582983239538081210330401847129168756404695779590295474140354815024804307431597302347673017152818216622538739198446895531471450611332201275758255985764289466510133035582194716497718023503637135521024340794150440175556059243199309261169438358231065365640520760058496901584727798212497593703551765674617146690727373483682118776979125400186760393894692905559254259613486069556255985459248537176315832944656890224764676910057970660302199754270092940461136838491881397544365802999252565801127567261140350656323049574804683396232235603893252917904314844958856504034615501220517331841523370934953041844889919158641043893385834551336218303186841837521588853291205232178790224844774876758847383446270133727917244957085267815914880210613357541105718859853125056338590313947980441984996306858038433316268519937970577666828872856714427902492204458457582565451287858678177075956825437647315792067791602070126215890713700759605823579916190050358785932738303081602391450091752887216765987835472508069351761260124194433955715917891810645065682099411896086134463175751067395979118990506883401100097197225180701647122432477129687778030928768409484796759631995082512921336573227355238739442022998988715270441217823223992726381890626620418401180255873514368063513576623753753374720755048597962522433588234807153506924525451379981001876118450985553171831608326021210724601016434584573865635895097380445578957586836701595687403026518081256903884337304315293553195390865809538412058260858449371858630871266243353399345771384665453130871394934288370210431739921956883184115585055056570657458236147987091555095340305046209584847894823654022401720974662896917043591611013567005402991848930237777164736826515486871816447720271033785991319712692392139835089974748354877574393876916134830648867630560864611591468549896621780396785242649589513512055618666839616321920359136254071334974651989127382270345010636148363084307278714726169726799186937352234992421123820113078003723489289551925526907586076622197202089125625474042334449511970238496271312256587591998597814870871451765304082493235661417319725140688610969988441398874591986229390392691236698459769968557852760604039987930248833518035100198918606621624171517444683128300535444073803104986937246613295897635396742046571190391264809689849483158287933485586523829329362158531514959422356100824062162711285753446064560373677944421930951351428425120023902498185231968261697613390411131439721019050994066526664054812953764056271043722047328775793289970730374267347581101794658009339499750390080280869027971823991750228796050569759479565562276039207990077680193421021524958014610415613052009492784533182568780429955422436395315937193318083423175951603547448690319867384823996993907715031139022138464437680616389287324454018921279636351291181467738637755559341640624727559657463570115235384830815976263617797990324210429230395622588619278583826079806610967531081122438991095469264789859710540141618337487851868732539951277451141428282363000203274405159721208743788043867120495718574299551070478797550369264222793803825415752727768209031332870876180948969366276771488634702319439041425819330811012306596611890160338125310422011114318744433323952600964783631527451467655056263685583273104714682731701064302061341360812980291296722826626322293767081434458186550447091661674753880344817897880120892328799138159335114067331648186448003491245910625066177361156990507689816992524477211601370386699086331182795444859967143474517227364139061674057010675536429473368813393894473933775985648388530199125161611529908673415520211075406300126345231175846171199842038090045799593633646347572007952279407469686156713374268600070260525551512152181818140504652932047472337591006618318019322937953290959474381032481583240563347149648306086324413145465334615177519507726950165613803172508896273772051105153684075096889529599543216393331168823382410271063041330243307302435028897212925557252452523889528181497676563491175160858629835617304750634127736951902342806072723690469312766868380860070715149076458630310844134230857893557203592326126528318182959908470841828912185487206827876688574530386817168226783504921238360968391394532417756883854980185967661559383454932336445142155037853283530008459660119823697110884478654240736716891411734960049306177302595636986443601772713699764690857057724808812052218703673007802365580285330120065956352368315995496210044662683301674976380280972817668497987668861323356384883162871694384698985163558657902093169992253912597784516424989434119784613973345252363415059904589902217695944539907219924372383460118766324669127686539895484071742892684822915250217885162318869673540276767490614005866708744463436102627336328340910869923358221768636455236600756387328310886010464666544434734740401297866763788143745483693092275406126585910203188817320639592566738641657025342611759517818978126993430038433002420144174517129912152826678150414517610414085687332397688437733566035753730018303901686248167267718213751663413809626144197718331933911049476639526933232390830540279144795344377253997145077711280552880195081152637446210502217814550795359769070503771718721291805357080344672869381251043896423719250846319401359222172225618601247948821072173840494533981545123805327364688581171887215281790456839516182761651643739732093709245628384750195268349071410827639630809111033325304581974416104673925232080764340205567308188380910226267788957354182650115194211128794074023441903158214445125548635881633940647954965286488624295168035489238388778827721272766594782272039530752041398687267720923835073812145386884968718549628820164843877381800290417028445807637140376005090767813997602068741792477668263975682078509241822226692125990865995578162553970805061549266323136142499457675504503773358551227325933720263177258911667139704383342719476947914497122417224494652054170226155307551170733083757725567560976014405080741199957473310974385729762088471699362423674235751642522590513146953334195707960532308522895678263637786025092789756955709437157013453671566782638403695569729958679686148891635329252658499771403695587377685474483892191166373977093364169579765614471242913243127254872948977150376371582911383067775862222632002842626714097817113479788709160973876819571434582298195452708753003017061268125869562239677011584325519383851318647287155041620269705993135766910078086468572638060372962580453156865127412709929850695492426566733245042275506056508503124728794496547172422588898583049436453815004983173476749105894551416925282195876040776751407281112403991903109933539861745818575787620991713819401441293116264361208733171954605625716906460160960562308515988754822241350290857049765215059654197781378843504575667986564865853876046263292383251673924976563984917409965129335561089127773917688927433623355830177568885846777818523536053448942453597858231266108183752901245220983309423920712805278992809204517417208398287418518339470662251342370951617192199980680414244728191985860425958677199857204884424194354621775715580037772372278714387651542343264990028178981053974594292778904202742508179045519256652177633173687878706604856501029207905331064255964503708567809736584763840137706332763067889872071751621046363149270851472273515314789035976638985506653498100186050185109724001248369932698676615731939722754432850034647628806918612981614180577753807308536347425114267773136418073259452859275861252787338643840410463432520390354010817862009382775433443437128938270012453174813441346523175321657805337341326087087441727840253584411314625669042903552715771767380678347574986510489155471882312679053076705759504818785563130282408094702035300860144244025814025545567563491508599455679351300433798025658075655293274567499670316449508207893830859057125778990091633059872553564748090749420134424821459656987769217224057948928816545804905994449315904567008539570473943627793124448686633924166085049444108812516042338377326459711205900076453796319960046692805500955034243458692886607422510821829162160410337606102651395341051555114379126276696991879200308230892210339227473424710452444278146551106740834764418259107211491055031547682743281187221916181570842723274170275524225415075169691464512416367967042554445243125816333560675158584155107849676392874124482831618414262235754281615652260971522472205332401215642961068642474372448820628408700357715334343523158886521448131712939826791542656098593238078969438589536155214581484186638907690958374934581522130255442932666445915208583821234582608464072438989625437398203392077921331821528912972101954373968011253208225210650617721252857994128601327946298717082463996313572473923152436987220486406219970373454256460996187608349008648478609770640589327167926323516019640294254836286236566599782067826014616441893435297923923450016302822465423873588943250921877561639046467603673992205603531338164555323767083357775564729400765956726856602337451611900935700664313272579936074034516260260748147354411958701667940055839296489458391530265190551619640639104613476820668847791712023869136451462643250958866593889267474954617945314324098900241914484306616132518761670946729837067277387508718401113812190651542292987378358268957178435230510544106314024305433394192596273958840780571118632397243222472162740116307108189747196048300390941652361603567050919659228569787020635283507252271783398629523549323003358763993314228763192289200834221203560202796360544962469059575348657733992178198379778097821629196025448218814462756310447091040929520852947580929144002301394084557793137329999546248082377480009104552628599164237067780800097708589549219794928601907099728100060931685669844335143712571940234250784778631134100123442034832877435964073904153618586482081183963131245798064207067672928379552416885173175967142873311380277963228479837721364607334944127798639381211344908934207563967273483406843084212083567374108311318925282207106235425630642618235859443497850642853845908207722399455188180508708852692413748244886793093904918267215443277466596429284568575352735782641372009458791664934010168065439188344584924790562924910206259969351202968753224147237131261830888423296625545197976128472022693874984740890811383280868596156072393547429198362820303458278300260974445116792074098308232921079948742091483272156777261529427797952833352164443525691800092503019282401964963739362570854300141232794299050889261983413961965060912740318813480871733049113280622981888780236911491178783820818440057713661053968742927490811848965058292155043437648235561955012100798693325220748719156506215669573614064955582699072670494270849557049400079711806943562095484781543976894108062551905416084139397509359569819493484553706903119266849634097506686887865314959195210950908022564081034698257065923945805696521909075783787138010697530632256941290330886413769422484274601010940150002298264736106094908688895345824781130278349627542903598597549720101693633915496500069511754108417873680975045482831799692125395939376681165160681687825863815501042111613334149966986443944748813195378719997145101561343558358699817828918706001082328362861296014336883282741169245713061660810631743266721015919431140339830791365760167825945478123459210420440167247657258341399813135295005340973685834444929952341339495705057451773279446318842344575791072832578899468394970706451261457213755425690363772598850838800090766117346353017232472929393426606368151658918971693713944069304163966509269528464542728134940177164898000095237769158931851726221475358955640871409184937668426749107394391742033572886147963266944707743263399705607408520549401380419874448117019259211479616166902196495226226918730583408844418088088058062484097080295923451358735140696978634503335138263474651875882194908146700263420942988806849482620577038714758409145771047661903430945007824759052543871001092697971986264961615692596213640078892456279076777230316901117670386679168632873993546112620810795932273515712670255374926170761765296453063722388668319772752884123720178792148474742275075552006234969042775424102113350068052465157093651572489260400184627623516093997732966223436192511124501621966807334271853252854224863034640399342254090685073153359285522856797711883598073025321415902120747462880065124147834992460236512077313321855197715059519507720885066826739084785489270064200148477983668504075007734389611108003423249255664456784696087804149240577899786278394128584497750194452682728614671748350104749669937148478083290715292021833701325880798207356522678640944387456643480445766854623336238052817326164413473070549795971965082841566883111118933028695942498878327783498551981911836222522327261567090237843817552637072564941330132332139266816299803707723692553924929163788421453797333547098542355203593057598466345852512412767827368582809389725908537513009409541834546512251775358663351001728764864618585403752385049941207786027839716276698078768669979333861413608198777880825566505449156958347231451537623991745292337920714457807930293853097156660505810119356954088540842339487139959504650764240014986224435046675517195327572904074566568748369485488092443055114342645414615375203922593438363714358432524815765176105567265547789605483734913514584579424943458259632822096101190543639668256815667629041963513802316930452206651350854605897446527853385391493323151341497962196362353118646206632386401806285971646954571838859997103385749833954721261495861490275297024333348575418662526214850616281774793281089320638562748882455077965118056105803382493994783260472023907371867540959458996574560399627630391127032228687068478642172896894117190909394327207003575605971594706617017010411362295380106308206785070153857535929917638045151639572912588482987671475380429386348376279011037960244837287187453635423177676146613941366491375828773969105887548020119785712993720286480843083448931921025125123029515785732042428430151401627393774402522480477454905932582981885536549952736570229184177512292159142129461437959919398519725962924736033767533303571776618705868429015556471684438524241582916663119016143484580854340285573930539801703164853210424502845327871158859445723078351706282737356032635629622420454779649480568781246794356768457798393292576044639187142804103329959542383127306395488593395215933346066570827792064603463882855548103141637846531298216390485198102385995598257516615059715482214013991647594578990337905602011603872291842080180394315283938142875731571899249802762581762794133218003386115901356574296511492256200921878104275585994521990564477672471582904408302352654164879923263710364443794198255772141311707803540146805277565975106803473395833305836508696349762282708654525902571445619631498883497507371337902897863870371722510022580784590249745116349572859562995891791280673663238980199853935180383158724188059744925099964758170652240591574881268424701988679493820414730095539868088815897152741097889989669616436821776240622776798395713953731661622097735330278541366674203479056174156365372639048194657737834507050111545581013052519180143613083009228818312258874096646962597747989190494222038984487575890581095973043108911146903793031275820972101501825354202523702473862496480365576613758198486894228381789851536873281698383392721722548986029713932446395667798641185612351051215984715108410792190877130388948981157167432947782764235115905702856526102553573589551855407508348672259955922602831979133680967216395872945003211516020217995132498081735408852440909716073945727063857995855049302055886563969266036098580361510296369043742057149788343573765318803183914082230400956473055080154196807601056652907646742656844625619559990332341972444996402088591548913411332267991661990732405105031663591229706856390071279920982218850688635096834916311702077176999300386538878379952119851655822905895045772104046974141293873297859382504606059631089309229351408681853265041808508728538698841185201811465989989058480421701494805407071779941810524179686084941728682464780685403227174188040321605940988495195700953554890669805992468718196295508010218628222611215576858690935379481612947458860917250750745229207148017232770038555828539839806907761702516842328045576028240456998526375715651800058742619678454349807001798014093902650662501509655332945104245328136753362068539649863151031155605309635113113909272887556890949175735979466420116208893078508031139179305461025441522577491092937609563604408573303012970694943674567860932542092050453445540456076152630724946439497736038714986620494855960674463721045858620555408919826323267164224367642095851575932083933988399745037088109523249091883126024000711255833023772088597336797593612346818855597301055404800392454607267846596240534974164533134278378119547205655629433288117860692601508236377756967232652276296675558575393097008574174104431767950108911916863518390006307007977298089212274587191743423096608366100163997080242582129441026755802072346235031831386104665698293202637074776919419690477721641917913182721292772226108493465384484391657449904893598903026369196871426835111912309606518080916163558128209741355222942073445266222367505412478793037354788318350912331737324188142557112755227374962836624985914982324602412728162014723927307169267072479891289271234439533285735947705661034606072473328959740435314421589771973543572519873705100727526172201386813048983743447181167692287959686517246074024415766991676078803706217909470551272419052235770937349823815647681487966008685782093213450650882003171203573832413201522994410798051669421788436114254982774554301779656767896037590737633848069206161489647928017262660807622522281435880564185109370878553002135861064961598177591186964669171436448423368201797380992815585545291200916538406831044012420115877385989542013830244753252611302044686886552178423557647018502079857761526287899229977435151966163521992431727623873270362971078760834854190056008788500391219393962050819503741824582920853297743851784348157882408801809876643575685202215994945065214045726765708639125616498812315347238578951354837895717599777147556128172705320965854367169667703101753534537090909213570053066645515591710465832178923039098246365920475092652727257082505133105561604823533167619356889917377149454518981115507669112972810993509069816566559388360584097830149373833174657194685964830166990413470597832640231855363100842628344440596735346403917604203141079919553818189172266049550414835888353682924671818944796945488079010937949195674255011100456011512822458447611259789708387043752430346601359549565037795348320813366566676574229640585715634609282786720323308229626533685382679865861503863683028036411585328535754664283511969006949152798147487932475024344864371824757491108882011965775655034921527719307306950376291586013452166474918598936031122161361003030544710211102488065429983876780785924575380856664744909570415813743724027419401643961308826773871940109523414091233683069609240761914961690951992884972618032251974519627981218589017751004477182718319767895735972525123387478298890051744509994302628745103452736114641391855111679499418542171604456206972516936770379272634513539701069647087228842075840408948534934571115696988170816803504500429462101410709281983875772441891414550901778652254665312816448386189580862002324139194314459582582511263597473011648993657978031006372135165555373197944262944718423485505196451011709007309147475748191083764256388972010263754827092680702453324717716840139197158714735217147159037140667513157288730032713790635658895922232453490044472553661957039311058651113177995286644774926002385913757080238619273020741796523564113737630924687124232799152859078721123193278622273725453034968257064959421746173757481973320176840769405031573560869573525377188679902648113525559546452873297274114695721836662772020229824419116388754366764209182376563163723741937940362997053630288048136179323056491353879460359317811684225749111500822727636170208262927240797084775615865334480974175419327860557663503186592944916504210395198016557057665613812804212411059917972067209483222145714422686095242622732171809871088922630997263398784602995224299317808170259984894349222550850526661645806614007888130866101352601697678123473176108167864011945333973930706833113172344553071790941069403844933942026827257960262008345943479256968274813212132705434529337029620717643619823724606171621427195188038401151090938424914927963356908360780930451798386860494477470424676161909888738434479136243215614651497277987360933442342216686650278512183456549830291389851371757330150764322796258965761794936229218477559672027390971561859992614544773347035696695129393924780381465955339937606767171340333670334938722009981684126849136921312031202970738082506371573988529161769271768470240086480836641776992141096095316954732200829408515217910133523562407229734654106802675656945927176126346426215078328747788551028547378270314048057114099931744923665781655761449637765964365574627187670550089135100357438830881810702879191401081638947629544164617299708044031080980410199179094899697549209165945567971160400597017252759061492954441183577989460853715698441071186710286215838176501678249048530407679280803949291836203228467768215335552638118539680056877585865214177352303107962624018446476280594077425440606661617105572573720790991844401917567884106150390498969393093287068995346729288591682162090718634254486542653296005414005837069269493655479925881907058258467440472408465264860654120190435924918169366693493565155402681220458691328479674342490630203860729520001672395348874901057295538629283491689535153482070190580521757943936097785958945696940566292284091012427747335874160504551741689489932071240246858323294457583026326463894534678678206141311140979840086659925336264089272676406650297329349656532256838865611747212712063817435473465533220724883445269378797161914522762216047876547287476490092499144937344348898824240290425875703400279623711429399729091568927350363163650787128525058506468029292337766145365433943148452731242961630509508662718820968581758200102103467953969222134632081396780629575077659955147535377832919726231060108099568288258043713802924906315265932317214711507796730321655661536388119049436856113725533909026404714371826007924732962894323237238306989646887471458682038403657041145546914429956637963467654358547451740512962829219722292071965406298075822688004043458912377303485231704043452973457822052752192248791781567116959486510984585743948818218816336954329310035874038186439600876702817612417555174312962587361930265030547522586268251952884345057068947303756618264199833329714573468542601212536425103397447523406333540058890346807728143944012619125176565352350680432608479598603377673843299282668386528909801037416276629046700375166026811868829708369240885100388608833573914177170356435355852823847381140467324743981115463335157015145524245526491378132978627918717851636498920187130033505475045821124791078166240436532060314630851245117901278693407562753246561127653659594663123435581118285460852678834060436615835541137943754137591176663612087406009893533658847887042406927274408110576617293179826783628472320888631282583739711454807648651459805917158950411043468905443439512107916120965094204620813250691028253037417792611436669900697273473637867184307793987962553717507522716331720999453371562707769776678215264491301378994574571606366789453932548075900026028860151261465187805306266111961705102199507378550086408744874303730161075373310783151023588005102601208621107059178996727726575167443882198152803197408776726347400451105165302401801809986739396786781472083434678262025021934168831774275473172327186545719511548699231609024052548435463791166379846019860573699278284372763557981815233685876487834995533479279679168743413587570018691024821138242185176586187002867608107528543866187276185020433652756010054431438228367860374805169185241455900410515452912076666993562375721102861500017521745041867579926606250006568504643334827570818769159492927542389423532849268018165951650946175548444370936505667898584559576051656776962238671363833790290757268690237413153153795568267530849040071221810290978108259244076236222287881330589810073342696696273884095566995735628869074996131407157715074574309021203718642481773116793598126108559053386678608540364783994359501051974235781333177520193390990550280580101732615839775419701029997714789255936339411438497117238181920865365219220930948144124253485489116284219716625928196738384258111673111213335176295552373982935882342792298380848558740102757160161468599981685042087371787861482431882471435471324123782375925574087371815921515061294989300136824856248984410039077720654884361077949430371623023057018954611518164743018922903274567593379209702612444195064656308764753838520860047491958286829517934533576178852153568554848163909329980823757912657913395645048286981002576098451215359337756239624960136394410657243317577032108201084782319126785252912942676962563846308020333253244226171024414412510585908827220660655270005631879321312632379624318234792212157499227421122490898707646023272287180772322533692795275900597332089351215028630281182250990589887423042862693268639852780668497996178771234009547187033350475248635348066843954717834462319843920878272729534066410325283153683867368160585933666658070847490858632782118549373064568992182694852947631979371163248324157261371348064242499690404272387982498321051347886861020207124916502056518577540989073084294780760934754649624550203345783744568061167054322654810544877325300412303446910365283315640426412777690263374475808813524177575951236534987272817786046900535684018499830462615020271448509468589912275833080797582143212325298290525750462842459880230302094259478102981809742327804573097355534281415331332399711821720805068895107469775950905343181124134933899436461494363399578020019288647189667473627275324182755444750735915191860816662477620537741779856647191766045148601090261587640436204750265857970209001644935650121517451727578859307600396050454153276490443377525506230967171103945427255432685644758816472490887292299067404208534725089132129062014311765735610245292204519882721008501646125788653231518195399795678170282914357067797829974473533236214740480384849417961411602830593789124718798566367303983395123171582404246713368714043703428990543305051064844314068417140110432221860016759564114408919286298467208852273553231766471391250547194798527033703824138018158651160511332298088279988305740062755290032700747876813049727939001323258714734917247009983512457821219428081128143154640453093043883722153853504316060439840657996793619519929841699344239464475948544745861134463214671086788496620382785701814839742179880410935284912889362267657503085901816212588264831462501504377394541384574370383493122998754923457058623377393321947310379054624840518199796128248349608911929184610436399059203941815183286516668875101248877346537487992558286531806103810849969879167860218828883487030626687957027168513175574366118568568951954583806643404959605772154457228628085326231031986351140642018844270020453928145790889409308175983237019724362155237536627955828034409184941389539017511137903784376047312994651224996047042470599546661759159766822683393003629739238408974127060352503286812735825417886192197855372569696945006156939385331187038901474062523980202885245808962411363003325467934613835613607036355940026829211251117979094444433329618691196108944510520957998695034998389042607107312664087778941570933578133187932825028794807018177991204846215686793108995518100005696588336243553722057702365020981052750608918107157295514789771277608876002177448302046687633548443269009355150280850396578139394960383730405335699251634867247930462722774081121466642073804119980947498194100290409827764765295696355230334732164482793318013469788936849388046440614536465041805244161517149341649511971224895712725668871351897753909071277272967858726693812094726199107096346243295105666451844198433708351227858965068515481593051388745101204176706287007577004193912477448865434254752650165509972777689288229760094644435675699874454655599125193719796029706791572679053279234459821015148040184091757835884565059540229708949195457723206745935041452516983903106716747256925529236940128941116700071530031142154259830610639425834981297475042176333767486468891015061132879560816962694000614624304282292419759289081081009525832280178637885145855100274149605584062578296152194914954946521752037746640425284710989280717486858012697881294590088650429483933251800134192500066786612036783875305477415755017685831481638521346871594704233258192851896806593806502614834552496111292373202872065486164424536005149271198115052411102943637690272727007000452129831737163148184218351877930161616203117319337293410940342807976285271737852807872756822633030695860102169666793389987235085999351509945096411123813339621478910754509322641389826748723095459347661228750042364554491016677483415788638341313041275548326416097316256017487604945118799562955037146676598096031056525059091138177613169331453414344755986254626749992042650230141348432542140236281262702145004178517445193936889966465378258919030406488101412304168611166002261183269407936067448115976002757185066478877398713182560386738430857366012931665978456038312211284602767459082532653764346725720549080368278481839147799285856681507408350525687043954381988682238963733812480587704131610111000366622147296114404954120486490058655549763507206459367498632050540144941825389806828359960718403457619134488439759499868507036152232059940898610796857658687995840547785327869120667977222289012840874306156976853255899856792834178004169534139264188906023679564086458138674051268433906612190787640208016244521021131467024575544023963790776432736028994031302588216027088296815318470566554627556516155772299318529497374717936114777430213461981270823520277716129931336273070672172858574183240758425932566257467078663829809920743785630749793664215256879489766951950271600514985281304111322550993349406943478336970009258596665425628449122795528792223200653035367871016947736050318477206838935742585787637240784035118673010437009667329757514242189491133236007320300183661445866777996153337082463157562389406506659653216046145444325981481261291927947475925743434586536479627121497002959411814648681639137995534356462409651344406166352045967756937945151188664557957294843670163231180511465096802253215784355839217222773335666430213549313849613442726840728532176235469066875058370101459944350769064309899229207526694156772533725036241602389167133725684712988013595931774872736084105584137871473770615721655193411065646385717492592369077392172038157372576406938928453316504116805182903355428568845378609226877579336976893500282955943057657301519705631741895400950156245829933280142460834970733395104395620358570183588462535848004068019549193375753064963548426043685105106139008384936639338852341772337626032910328920946864065671777116507157475933791159982286040922102553760812250239700347616039763231086024240124440125446878212471316154378427381858449268865948689946559912100671224761300841688417087757640581828006939872805831312679671190135173748987999404325059369947183208357885818156999696248602079142584112967479229402556096993536468822367992916085677959741634586017835438874816724611829944980522597952490479226878533383034026125239345116189036486916947379656444327975848239778381176477070830498619777566480367629698291856017262280065585874501190334136064570664437402088421872081884840674163991064297610999219542260232911741066657633485154822870561259903173776980273001896829358777629888194608462166559519708380207899438518588723685697781106478024633641211929331124856655137592624979414181985282498598974546571405513729638105996159437443341013028268330563730559208574495270930980180314297453442103797648320522882457882167071077495432174520915288902490799090658231266104402461152688711874342896770182113625846974043338285036246329216985517403040936588860648394379612415579338521122416738661957631700659077208774054395788230357783812496557340405064889484921668981292024757897734571453507655480840843932930566786815951725993977934180223247306461521992670285799858835387386738090375767105332120470523339870452994138462894726615176552824016960265501710186526210081942068074524828882949336202546915285298102234927746833672036268033266330499402634933936458119990209453606247768756800149835246980340840385824024747034669384212229987383030469084726728895968285338610120378057037686109194657956811743648064080960511195401794824347001763846004989890839471550731233859179944314148946103948875299035259047358737451738218042146903699812392188344272578808211247142289035593363278574226380619321142666121436768899992510561797866864604847954610524719932880588458475389606557530103266913920439060941453352537696657207807364680892326483577446638585351325507155616232949289021477979597718293554643051380761350440220863858484386637421795946431410696666679144787348666473264965905409356452565439291731218189022572861974010806552893436183628500033141712717377970050871178403917520841419077421577587196248246001629444658008869273783736277064600093164176323160846128762791811515300246244836643133518354035898907153133896226776430565709992517076867948044227470989314886098639455319312805790436830873594063418248374504162802020639172991962905846647089677105450729569935626658149241330013942410437730983489068820018968165392980562955337594696661901062570925040218325361933220897760590281096869693586413827440022132838150958239591196063581187293642044058129524657540046234455505048757469783338062515789297956996622208682698227662686455008623607940721304134878604618259396417248652969818778572316557507019499359762858827441859630926026940749372421077747525036302198786548017218949342213553209113312800284428022716423405693413723460758456437423640835215098237643201879041763558408195766180663629588148784534212636808035906921206258312690599740539255461038382731207994737734551798071965954971894454995837133893257442540488294488853067621537076251592935903729861256821143928498776309266734804739802852878104433122696461636653156415317635047233157208469190177236964857104910143025147889641100258225094785319114229206196471966751960496764997223699311076283916536732900247734825945023640812764402360837112661095390119826857895221298216822535108851970353202958556516372213502447791188767978724589013305791389344691655484649917016299178709552536505780935223666935345897850844026892540057828134483143051979457605189399302331553304358841039257784750205917299059157327612435737561874462168164160520735407010580401132763587144871517959229290137809427145351415174153395723782129827621102503354133328775556279220011613170239796493660059505304404885918531231051722513399253777193152845558366966951595015829414132671657685456650408334817744227688662646600464378361303471123556925012177049042598184698346579376423244989012891661286878272814428181299191740705292276388423051585753297190611323601819517098678825819187409839895667370461499138212226539258007909553925811240500983850269878380020055848879772903592251136920808161093035592685536348885941107421312150349528872548342434074355894835637593138544490223900134326685471599611974402686286742416926813018033497280483422511875446387897536401565128163031171726035547332200693580405255059743806380371347745716164744394806646306502296696781136638297051430210291777549502255159681542384455459892166325782460226885409212670955881381248044162319895857573911654027715009526064622855646136152731612873796009910379179074987779245312025407554724507907373861211329390440163721821997306466136378545067637573617409550262600537904348118394853860782870640135487714791608644532765748508824368177913291497000512701138608282963747003172129710554682460865217889294467318206629522315718421604961949717293508460986914867431084406837028986832920042928735103536090190325215302953545759462134332529501648657290695550405181408341636437224908927351701725312181343200644318778062403744835973376555695789342491365501122801741801561061075055190826284547698638234303428247328066102366118149757342708563888755379177535925137061363974545756242140012442916090942993067368202431501701481163354950356382984342965524282723492734679634811887412329985221500971633673375266408102552943710738412275944452833136931099517557105197617797493004295173968185055748953183393445548687908268869065373054777131710404013075084457679767391057995766742458072501937255473390327269743049085655203644816712714853713923970381500123697337672867729009833296084928293682238636958187835254861937739112477200022714129909944390770092371471121647268878020702686993363233694001446020353052846236730860995986381740523765497345867729757410507494161473557616785695114529028947058066080121067522708605649530335190936764063718004912914124950027319196273217592862539670592302527838453801343916958745125234905224940751501589286642966012875221643626648516950102477278303138109935670731440189678860648777922570915561686119378820179834981519070010290925482413813866816737036669466133971930538070712913241463772455525141045485505464008815645382771451472749659146584528880670732063458856389020875197097222436515919519087624091318940034473569448814101908976371439852334441250606947128221705070924438959496708113689537300583168575497094658995648935846919378650856250465730570878109933470589704892352577959105646537835220974343857978805623528089662215475041052986740990509590667245619080553384825117350065278681300275921617336922690131148291433526232051215543553629226025970138528658321081047659510590529156174966685382309507154594934978287013043054317016550869895576469846699715133871216192857681984967834773021016672345833047477740210778389406835797115213210470380449759958470158832970246244474409565462393250013612182182209930056126444429689950505733801796598038373567512150853107437554926759648840637293526220214303057539684134799279257234244976152232447891665947785241017763257804366307733633595256604561739749172555765070937292272076894603993382366671127477565778794628808493953060826708381147629215776760878855825060185599766647879198802023135771433647532354652138822635405399491098056284047226836377814740639900168642411697692120971463908145379696013108134364605022953764047171118066934703910627222691602033946273020641634937219087206071004857729828159467562818566683164710785492440241887869354521516120758376551374715905097512709872210119561614221991114976663151017401191088657405014141175780872128299301387629277600055753104491359786924062970006521426828305688578486783028778771088963121038123445169034056610250639685835633296551853862681567575264915911885481955213132057210092021537982982216037849703279470612160185299015198840230880846261565022185777253478388499403729716906410017445149065514045232797022118541438898322735677700470211894736372313075684455906703425601285629636080021598686326458122122184287070580200816677649735397001785922666164251516661035477509893484047199161566137456318671041613757579566412740434692367772544295325007126369843678657428428915086732596754753252847219808445381268717682499291481394792785559769956973881229919564968723401696724840148579513592934276056518007492763392182455348695880120671627010911218926466767484688537198620950205510360006940810542236077538968769880029132088324826941633307399319959733945985185948875283899839926321830209111701706749989045379135309124429846828716214015487287465865062231399376186332520545017510826149105925544062885342335783134675243792039261006292947237674600432092941130411049192371257524977250770177100149481767314287910239920457665596558490437306802141050630574242257366631433717874114058182352103620052821558781828453859098814929234886734263293906628578165112873709588763511719250140362210933628138844305722081726081091927418666934646455472081213762113303671212434788473834913448639000520016408273776222371544160803013540197850442620433485127300328741791325207076468773532323875422069139459529534362622101046222353744955229326489395845826498076167992886148563068950810466610659815452762489717112900287488268929649722835813021193266286983687240106502138628531539475836338891967210537579977839644709026617000906445817708723536504036911369116843382566323089156795246026630918803564566234408339151249731676955016933615683002605745061874380336090885768108551751411761500548850583942946063625106262450297737292430216446046994228948902159666425361593661999097058933559524526904746294423629142975776280067435433887892218746239881502283584323738130662779974016743996597324293017397216831756739809972770226441200182894956863705506826956620928152124851041011067147405990356553067262089252812223335266558795266404486929859814072817963040934188056700921284193434562440496147012030381050837611417295138002775362764574204585364884065854730064227452264707415707710307344175415727439065873596083228651852532962596821220232695127958920088215231270265106213156894369406296773668179382475741315918439994685722044559444514010812571159013499729529811466069422386050900931940990438382868573399986554372588786936890034444910572235156077393734128842857180634871253782663109154012470146732622580087072581523615223889300485397399116357450871520531878137908565925783701678284843942358736568708646065104397814049709618764826064773746062801054064292620342608124328218791377255597799372526379145269619836176663377732545267958723601889831281469589411625438713556624130295081383129225591139298883864444826044695343860479145923214075863972289160495902048055415687958793937179888159336974032244318603712137313848108713279383990047075114512908598381798357742311177914499338904281192213485562112482459420459843043989393399369936924336394375107681922791083855496650914241482025793996207623379032379256132468643870404567853683600304832619698865174611032983052303895317492795088052073982391580898960954373528547988008767610152675505405191462642574977263131246789121606246552936354871003641402135983443733922491270274535201197745760555933257998026367101431824160631456407030371416414020393207409433644737432103833570015629418373796055795027907399702326844248211771612466800735522509935611752981595515157626807576161932372335939248225609374431536583092785916280021969129546280703827763472579684555893428803407706940166283422048114922189614012135426713084990878384410776497801487774109058653854708474218215156015341280438855096679837078904488400979499728889161693259899307516765610847536308146110479142302769012042024361565965373644744047908670340995421666327584113094847684073423224995906350622373178953706712286545923518986671768494553870619808091446984669452172788426123690031784013881716158925388604047512874752196915459312927968233652045708489882778818171633703323585450745653238183455163781547602458142850261133108798099170599645120091942771730069238946534172497267664271735824466696681722150982109271458014394383710877691000686540564631029373497119264677529571187798127579452266580969271739646732310663542937614684731844627212192083050743393004909298871291772759463933359344196430348754597005990213691448050510115464115451642852071398383610631751461157205058595988195810781040941440351921690475097136470217403011352742148137734904241637777116516457582337812030384842687220920524449512685915183587857043318716365043235391234122308961427788211198517775040840836687491522958244213974492377785400550280689492597723919257807679907037614518719864388339954902550719343355695295188744149996632263593320760973061086963950748718877472443323116939994259907757307146140743595158368385568111935841137150813140048765529797156793513315914117216787981271221874899642546908496295067403934057780132351530773017689032356598335934460250552138829304036462038390217005967125459144642980521839651348909216184793443101696465658034201608016611515142212052274820974068442779379757249532196720276406304723765804268476012411255260921238595769182419056846136396677624163078259914426374378069926426462835688931954212374877822077199199279980230040224316593421090478530412523514715317254270447537966640415156480418746733589825704605089495766635734724908792445101175924170888809299460594552143859974407575647670605628271775081351715815064998383526241860520973209859317907949562848524124559547876309965233912245524138032601214814681257964595598920281151554899554972461210648518730405445026323596255268072594346219735538955985493205811992025191948539801949145074944444862635524222740201541346912925969112538040767367607252200148457217041455049525839982924493335911301072158817639350313936762865311229247337848082328526804311834814606114995137304051560886746812414006223632173157149330929739346552438802305713014028221036229341175654544818261173291811206224241442652677328590540781740198045458012816776918014484434404430659817124318482065307225220948956296652840835326731402633408911601561900186572707050701736624761684809494206357047660752429766728075820146394991428277741939707147084139820598321369090205135702941600712284004624844124569486611859008986712666618220407021510897874890787726317778025693103354299960956511028692916322845760492363121094738729844740127188328728619552118919595086818831481334605432265664142945961633971927153630806931274020480901861247148391342712586843939449342922404157489166338552002530153643995725475543793344264840421943420023569120639645966971490992258075383999628881386129428481947309612480582193949072511484241596323012694316186136278548041892408657674220205752839028994477433275520568788451623569361270073850004768561813766477718504711367015166816413016136854658092575191694812392600545254410438426550956395354357311592388894061977243802011858731910874518568736832494903270525627069915684989221154029482676967791722759350915123643230976152371670168694857501200002639892816336263680963445334166634117129556079806220666397835485827464329416253241306020448382534323471367640598926844124463359304326036235296205314108475815321005903453083788568164114420782040584600472567347721927950442117431399296348744171356927923487055651234091088066172433753407324777179327908471016950575256157306240284725022395303694628736847841902776033768997069863909068661927701185727048867304376715969763507992065859224595657565250687596175703895091130988966571224772181337313445565978334527976299006390466031290781376114634136532073520574124139122020188744520940193223759931066592932977544753550736272843891247807481937376243109897377583581517258522977634133684353166407726455264559382930990330378808342258338377626166313161391967900332734543726837698823017924780307162796789310180456738538979976030379922937323537713998849239967928105996913120121785866717182724627279574699864250053075459742428192905299624504509688489841901368360539199858277249122488830727331388823340708998322371128645001658681353839183941640259101165097247458516615884274171800867601082348758342807612498846599921202772270075233577869650337267359427685059754418744013393664851546527127035011238064249157114664476629246636943625609323522807489159761413296830763575887573142031067159725763219497411626569437163301212941680753586118280234778660937463360600313545905187800032168349423552662378250828945954656583346434213637802408087134304810278194380923933151920973801565127462056744731082948065079326262080909525059038503014239249834119332649378978609695957365804200674174366200242064181859877721676049525244469475651790679378173404422146950828557520073721075363788020352058071240094368119519150083518654219093783250689631013197014990577753246052496164825376942995307025541983123653075312933410384572567632766846169445714049449284821805970304292668159469551665704440454655635652592930743005478688502046039514795020532360590622853091521971701045714392101307112532776470068939226007840104082873349893512351810149722720464962232353766413081615665695830692814569263460508547875714634989222843630097490014135966266858921007861051176510421882189193253122626418013557399783475470281412840379781419341165605872613435560626072669676160066789091460145094211158695300229520746447024693652245618295064024390611652757240711536001210998368086789520274708039767727422387568535563129967098132744538019013229191055864575030255710055006069610563559742845689880813701903934010737640657265599435821931274126679740675471054362778025941408936036991404632663139327831007355212575643585706067866522382403357713287025614285610386586964484471351509135055852661851344333539521167437936565429611853105401271218005453667303873150787380430190649049457521205474222799048942233085067352701236561294014071623056840842803115454910971444246251411726324255566769951327559870532443419026718745271032471227340238654951255315808746186185823878297155295602755548783460592431517612348779759103402967487203294426781373685860698371552392167951754271708750404387824323498668880880150387057985931240270156055918920139380227085578556230983919395991291155630020007919057266176062789908142438842056757776295263171562748084533392727630622672957460641228899359623102672053225858871948817323171946400425787302581912134513631235760867751412367002349438954289209468525635641864520068103405284539112273102999681572041822234772611560157900709025626860288666011007996698671511989843557335636598827630230369122259431190988371793304813415002571595617003885236374571982702319961108242499524688222227430561764065007904607360234830074763754506403894388029173312966559695537030874571195917442063451669981055836068167970145297714815844197700815262021496951836697375045442191991649116615977122868639773286031366856106213352823874679999963681651639239268355806201195994384331937366054059490284335499912686680580788820350647728327035268928344044721449492721324253987508367730271864389431445802796963100223265870856515622949676536877324163984455268142261609558618959401728471832357696849557974090702568213078694150963299923982463544040563254590952913908468506446838573771350484843684431453462831609132486168031526579427736946227840805462941406153759511354481297472715770500764706427239698498466316083646028635579134598414449968043544239082175080210887655827735848514357060472732666200849974738615045296471680528999678031594326635405653979069920044093455284437767380916185618748430297868015932260433419336290953226207640661448299894832240828334413367251840717059282984766127196500683744988288045455550852089127551483124591976851717898541252863025421529742941407623773001401231003675934343399717830387297466434495810928253373197977241855230324327552315541535195232186869213953625847422665518467733783640037956233818823442062858335942506879833387377838944440335969394485029738828692670706324796498390458467993293316475461187165053874579222761618574779769195683862228760916374465175277449947941044443832204866653443228055426861645161229519005375751631338999531493915956425387245913534145781363755315161691477067076294782938374389471416283009928694620413572054905646426075234404194531364109491956024954008323567026633369219504174511004427665807508572473777267754734978685778226471589988964947199032107833329681100842353316332018914286008263036766795115361248862680106527074872335428394851111371627601154763519173805912356576647090568112895141636186136061696240700400299900638183734297387693569996085341941324778981143131649071360793189298041836203147837797660535299828782093448762023691437212164366359118080722942237173750034410001554395945378658324696168991771608004897079198761206457713868285551736902790886856309554328369002670664735430228530968748314071620629474315316642462689329651007739563803789626795572032743759092264409515970465104790354619042826686269266530342611078216771411160495037539184205208888815715181194486204647508645809654334591947979573030371363360634367138406670546901915662979389498338177810508285770309531456773592665636847203440753516470531088925998339586857503976346611164235703544626358013689304586439959931380521787208950397813594021943010944082080273148547139892775830174860821683810006375083548267156805295259682111226891710868608982258120997096699886342746215619903915394698396643915123659361061648510849768535702705380346669927848856465737522871513679856032006195935881603982064075693995456566798476371025229358459992478045499027326247432610609723883276581561796826589545108966191935352428403093189684322516652931310226882555190893149559107787276007676517012253057352639079176987953017852363530338876034868280353879025685874974830473899760487946352127749459186276711943621726095519583724776529161845015882536689202287702355589328386288551881276695316977594829891471968396181632744085987671239514353779559751987501930284167179326185665114973288525588775917808011922460267590560212487962822496853980010108922923326405721302729361194468083616513341803425350745670910018092136754652378143394532622802723469223477910668363766800033097618305111901828658745988975643597275919876095090923912154209341928550947547420088495812148541924059427321219152602798643700871059884611776195644656824388579815338462405750149551356015457906001570716703781583035211266469158635353027652766202873874002538880813426637750584926738835728066874526302633521880683515264746230479677270065327495234839503779006447847126043557163680829594253249013727307049183617960240452964797880500024842168714664606243431665178257481039792946045807517303862624799236179660931360366387836454770129432592097132534236567018582244218865583827653044480379580214439844274648156090910246634608943922111355762796996846333019699538034632581061893979605397609807329473624204923785671567319514767266959342840585250750379551410427813378669563602020453984406302493883263973219539922412135051750809619125912854473534531706785994574497206904258560521133475756277878312914952746629770730559320527807018758827986031736411503463039370960451845956966458135395911865304166052328500572915162152263322164621257985441427385812556391048918243221150249371503604832307408339707251715244693624432879212053182340893558132435177993152160951613326733737167730814734410263618147468354690862646192884738247187335440666322944454727473518360009332354962019446265140926944666063951435350762842725609983724718671412984599520434767918737535446590340752378809535723408141329021327734709650865581606850521428496105495356475264602091514369516052844644910831965406255621358937379884764981514204395451686583095285655862115558695835772529116871542013495784380815440802841360517289198559091944083985399001886666723875013396443737117384692033313442002143389388269574048249751868036910940143218320078634958794791355392031319217272417130207104691966942684989227157504130082272210246924572602125122713719897115005584906583745812631065980844677485770448008134262640581105712024072875858394871961263949994650231963392020749192997992926364437246008125299666749645786608661125439150367141973444823452344299538504115295024233142951842297014595647630558169338317378623939821019656778624529905235186894030802031187792562703827789441304447947143738311475515711707413910842647646250566131220485895474407985162429048246550825633423916150208555585569006802514501533460560686623206907835867978040247518869520323827123811331230147879561964849021954873662013885673120342817947296487519489390568253365269591934393585715998753578429864664840410630364425142941406775681968036289266453034386639887822479433897005157403529420559435819246897240457279589467502571477446934815777462667125661867525042030017075395420923828299125856044777046514291749277615799939159804638028443759869477254382697475896986744270755099584546591877905939170383344045971633591626712088993288438029818554070806765167938740296905268381304956852589714867659621357552285898681291206349899111984051600950888392837469540508922114564146007454401737517280881171231515890094219155526490982626210900028069103657591239523739075518248904694312839044460005673173833004869032590349022040180478043300973875332786012834077413889575120159232080332973133991070530390264099606135054293570229460687744315415612029014239252723693592169127215695506367393448432896935988239791699903570484712127098569994220724476664616340806775258243108598466671563257202037704347352381829987582377099315376051355173378371172728289774846805271108192032973827267576608774156885511411176066780208021975080928590727451263378481539166433538956352309792673719137320692016471816160043380085534741821799821551978791627185967937010742238532442782288460077915761002525191759414272548915849851430943484657331847671615661153886934685329494346380887047478745127782478260125266199146698320664811575731204217475328360590145539132410814653959416705306799330412231843252795954380516508207111351409838343230640261049824627391705973937354012173738437408053132136654224325563919633743121362875759255332917036742205803540225521951546182360199567319438198665776111825314493112366640898422234116667974893560569345011230433313565423534957925410985430552460358412957480728892606769553424220115334199602079836478227762176267426208746270656961726168154398529934542015187946449124286267262975721562679622089604360925627613041619060186769454867425778976643715144994962959570447850170086876189100601016957680570164369160111412796382362263796853056656990931887947822769775395949858234915180106195122675094371200947037485020412093120198073473048270419550140792901762431732592914977068063606312595995767174686561219420618788045927258126272480641192981076681295814149314487191514562078117053051734408111469935286491643908486936000295524566011157653519606175558888968276400761581972545931650352134513579681392434034049167306015660314403229638672592525526738190226841068587415194583232754803535538768648703447935388846871652757038213728942585473875132292611821940327719516530629735772175757338975742832226926367416920090153417708728133669261020412002870964911974432288315962584667761973960626822848769641477334606315355985624483288658495143251874789461628406790108753902068341657637288568976409227222095162103424442507792960127326850652780066736450847739796130592081165510541679710349313714885025382243550877115862249236625412712869650753521656707714881484845844548108730343613314658496330813142823287484540119418286409099041713926235263032782765253625567383049611093051323740108782890819777584194173060109910783860319152907476562790804091510730516551218623509103360195175034488806951258189970817845367091296272323875370472878956448089727156225274946021307353468971772947744715483862944415943056157634833049674157532840156455055520962124549687138774076891279417747018760170412950418449513871682016674987936269996958961565699562914888654062945683104513584034605281650319746658137525277145506533351375905894076788229049240982125059727159325217612928673218927096405832028903604297254904992293860469468706501719190473221851036759636309679444620574019271405039345980109253622583518283904581331223277867643615494984637622946692702583686446813658289698035394470621471016637646057155608054781382220432310915812287835075275120925166505343441695502283170350167338719127252730713819760976445179548586216555032077619037870524033402078268324003254815922259888948415127852957699479814305715745146341859517608598633504299051379683141190132602336395467000888734262001690459486416453289635305381397533849583543501663545875581932342934498901008576477236710767817319864870349397637584395081540520804787417154773037353598044257154969994352506354312145429815907307607837741267193675560386316395391516334188978372595507866395498056080854191491932646406660256900610875766005366012592161648965624760613630812668052143138740313895291004597728394544854559317542317385587163176672804432633203503217901663283999325015890520949763635755344144883838424920192803989704753877747296059076522826516767840607315716599673596205492783361144893663413417817771491075661757053020912272834498723633043258264388084825911392593213450115585543147338689829661063269325569120858966232356362462015444597316501724589877283261111408112562763119083871633708818043244080231179998084525322324012331243048457261168136100932091542741080225702746285168471566159029988822898433450827560423287140075354321617809589120715498539624484183670090702316595800333576229045507513283040890679071873365923205549397240149818427797500231375626078498133603878744398300413148958861912596720343256019532570878977229034505315353336783031557583612954049814815235708306786892180402466073910833848411270092163848704412991793966591585318456938314073622328393880552305461960439315144929719222132975593140059247347972546545322878523799827627285642390174406777747429354606637108594276246710679260149997605306721826233274393627347195174747788572811625550722212698523962447330031858509659674307984938249534298299175194129789783412902887029034247404543380661924732201112133302247445549139711740310861593588381900088036003360677721334431796308714439712891402181631327077179490350429541047894367545217386792978447288725702226717090934036765133127597502417590233517100558570909384157640632678238763389438300261373382516611452707156805854023080074166655098482940066146031111795507221982507305670675068967357993263061528454925780103467110888641942714881454049108537892286621025492489071251359665830767537398659566595198295891089749016410364934115364689075360090977366032974957053881788125862738384179292161553026852166690574557930440685732375940951672899727511809856563981699676665638352303716141866922785172567937643296696919814954793923514139506591821836360939211339406405375028364560028265880591139576194583050138036926439576011072510757145612701386867163592906796300275274254696038233077344690775484706248526002340839644562248463919997712983781199460037890360028648370479363937469755193573873891226240974758293930935197279826108418987316895108110012656093676597600083405819269237060545951454089084770182932392552071902428375605315415495660886183131152264283645043747197794764218041507239682984647556662072895199605313659018715937194416454957199289068261291414578190804785814354120403681544534686218399836692759571110023559976230949351835307083513677079577851329070799702224963678071846211280073184694636687213755899664118172575816307925625262537676781367540546301650398236753507640878309737175528282749878340199897201699099459453079577936538639244633520570656874805799171599981567275235149982006645512996118373075321170458670143105380159653182039319490244139368442805809776075226006687487605247598523401041705260011218894698176385877618386958470376818564366462666582072848639866627280397322381036133316219585792384003730163226695436827151069864317364082152271808434522959273398038182821522816417153462983010688458128334268240664136384096721154708464050891943672416215107749340028659964802338753878930251424334894789210512820877311381307654920840573818508641827520886955503803911715430742572931578984157437618996703049500386420845373285734997825031521889096873907389946385642295240862286279103046695427276352549669891945307432630790266041944591428258366281276035357021289635108986919224269250133911584366356402559407549177689871130821472986508764586841271510159753513671213082950628795915800764815570738768325532209859067138666447505400766189973193473950983759753099205146103044855467305025008966159811557094656439658041504151801507794102832681105402913020879707951935956573965900498097693981512752757366099105560199478207613400773973936594239056343599047163845287133668187188849010259181596437448683647873371018982101408954271812137249369661473083430776843976605631871607335505137845336938986983274483989723650680200793764010840923456646042628586295536580229206033992411179662718754024875383868320442602218499283915193968069099464011324557394263755645721886040592988972849780400836431662342789941316898697638135456892501424368726269854093667491317169672445709769946974275134451475676266829927165046606289901741902067950323553606850675687094607956722934736232273742588827669201447944314197465353485992147092825757496131096396133652536593937665411526666283162190023172547285903520191458463292557414837263820154998652483032380808031828610194789473470856656812972809661461494248913285981648014526101876401319418954286091187478094881297653192166989640379497985868037561332467813087730425798759659072511765039920255236614082867945095165458775998822927389699781700588017177290822283294344377526534076977352383194136239486214708149230662351163678338217862381233365115484587198737336966633576290846895610462749731516975635474710808949113249572282855308743975450139475015780642042777323662714204389450822563833912132957546498571166745909744879942338716462924281024926300666023989643441579440863052522481307519084641152438589309703635196386658285461930111065661473636469632874628730195552274398798986306468785759038951033587452263552477860060712304917589349774020192074852212923559646067400975884842969891487764155717484533726092952195612573701971162440434915655840290011829401300079077692111089604309785924539096442868022706724255432387960606594754173062333013042846227032465734622732482276895985740855715732709683009229434535112070463089982207521862980018994900549269598157567839053839096013899213496670382004158910660704911411814466660340461222182447549727510941492109988760104253892000944387850053351912708481413748824676843560370926381336076342815012415903036372897627710827829358693652500491015433570137841971882408121959727805082526215973132770301753268149725014488325957277264141819288860526723154461831647619254720846567318021524221533795638326028830507618016372702368430317898407770173935149198254515713346950428371546577522499305242042034140921522258009041295842000830568233924532385370842658870909221593641202340834961916832864603227420870511622374876627487597096013893536074223461989079201188133050847900594657395485871674394346255789633459726846173862004846299651047050375999511834568845538518519870188164993864771551985842315108144449459296341391832541321884747182904733278894988045504463596852851723855831763288184888220020041469312195825103758148698267355883021810537245457992529819823309302315439382761477803574178967366728393177074867986223003677773277698380498671470122848175834270077912761189530775407224406466073615726865059716743016312053347432070430766139376170358517731946346081847963902603948870958935429150110231099736590606712560659744646937796684724752925811401073839017019190932801922454433668106177891564908145320445366282812810326747943514809703287452979149511582035945402007988027677148174370135684534961227694777200751645817041001247165232709410447888761538041999812607177528564974439645135539221256730031279304164066230390719051936266422543618070359676541811561097568782644892862983638200227892055461236232839323979558186547815861777071054809926521216839197244198609636974481261131999290783471345154688460358092814893155986337208758359725453736017984297514031085311825787648621625493324348176229740021808115130444290734218772951340045599974339313879661293546539166482536865981203162342170591835162203557435953771877758583878743746448001557535536981781057108327905064061213658731310448805659234216576885762559914245110460624155998764219867749600150614220145844771482014526045023881986432354233786813376599482404672995390836064090815437826812412487789245662167005371839469357905064201490946677552172285861342347984251176396942261660751111181438532958917039768438991094434400396064435481956669358310024490578765102044579501144244793319264297309134774858980616811775695458765452450016609365881391294167897945544358478724879403273583221042956044669771304681579733949377850482179040721516415841630386347797006378467309832592705364367869741403124538656020061148640514077635876357879227312463842217584011529448349637911755815441788808431618605444297429181716321512490667767976614603829052032659108510241106235565814062256207721403924468105789491893671961838821136388734248856181327076333166548051331817301622148498289200102324874705966154069508415553233632598164454630122269500507812763230362725184568578931186790645371285041556145167914945954326762153497441647927242969108965317115128536320388818744789426314133412933364312343227865582499612667068621701695274902421420465764090128416738927272861642014533342609474128666344741108126394317275825025388656596421123041673075445404733379263442153103082135232693289045260276811614155222829199930658647170005036882253911614501916225929675065858167465200579423254313052340580862827445464787868318099022069603169555124417943258317748965918914621651358137801276018135797759707030837762031821746340245690326817058231724460372116430466410665748053533921451227849353007376173749967131823624693005008500416890523886999280076381790864401076318845193390707578121226829224711460353157049668994224788886199165844425746033182425428114213938569355731200483578640410616674147011269530230820626889974353134407862546577918926620271749180294641720517083122296169927424986964261012516038963307581313229158412979055052794155946259191976013010688296351121985672644974247337173209406970189836847562981070151452191366253617550390454786383935325986467894758330905296827689038897436589881199566257365026966217894546167209362229250370433080944642435937613215776704524420777055523200266338987455963641465491085679052960973554746892969738707283217852662885084539005007662934349444354753044287939703313832025184853951565749777291967176886445317124571766731518316132425569053032055905907970890706260036072618357747518820425680480582664964109817135989058389453973008304133351474090966876729150009478068915780595615533046106948724109471326002620271539421774896625427250264476593141754048229890773748783167874842622546311486943867561625946881425152954670044765270468433593091593259206212079676064940123369820876843186452362875215454004145022180699799117190604051053993124964780763368030658136182728706833597850891023421282245451012941615066873178969012922132333698157847345125624530617281216106006830708170777791059540440800817442990351594739531898734753108118901548491100317596534167547136249012710473768435976899650867847605655344895941745491622350938064743187195619092559794022063567912621597181971148327109701306596603382534636359483123380041685586218064048889936873057980687551560810352592635440847455929079108223970413481642745298827205141250487487741619773749948267807770249740830440528750614569504082592002913644018996579255559415053328255184297197367683743631622537992281969883705912684743591425381263351865552044109010513511535671198455346158103686940218457758019710009949958102250264057639449156551289884686228885357077116053324638135113899578643575406620038175658045804290489205464926334108407517836834679988418132047457290554075050802270487212758154767570129984695635414944303497620425091823852191871729071320260896168854676454824869732223243409365706156847000719625081602329988553630439866199155014178304956289272715302269841182620183418831874390478681740796476773096271284772100086687986431806146859048732728818269212990166529864947510683617257767796614188439249228027844602772574288980125258449313842588401017998912511356176882585126897859737121086346478432583865798516465614280717748107208424177851559493113813492645703042751805174367167621689725404793466420919008297797757534048487451330484157414197481718954349771952096212875782519034448066374265419298562872329519231723224983495058659060107766972334560413918649358122189860087814025034858765404767101384429385705951264752408709735433067106559366207047706029677372966937943740648021991023866559759520982357998361153086529691175938912402138146756987043030227842003849886974532785544115811582781186553051100773756395866143729747223562987695393417329453401092414806982691025671716517002889064817350998318845960504796203911029637344999266458632202790418862849896221190804793924526742898470395343641361319048249218316840892994412119875250446414927390268815763347323251567971991744612802746974456257191333329819413674692875688230236807829013075530409402141958013463245838393292681891774371429355089648066684037945948285977146001706782534873834329977755533044089419202705236779884719412617778556873689321410890552443296241991423594879005287834119209952792526743912845109244896654940835871272090676419164744991618122995426317230865851521747847605950909262576376964580977452208459521016225772354324347449537046005211343664797271938545152160312518178690006166431666301442758126207455247315004245218336467376074480642565989636031475782520439144938481523376243046880532137038446830527299025544707374882348366054886519195269710170188031627789772574015185521553631775143392258574328311754740608814624694681645347056102675835182386924747234322501454318287924660330449016419406858987118886098709868989612639219811058548794609714476277767317213059168158275216388648334807549507177497930932865477351165480423648634615885754339513616480140558978280810330860200480107747685156110371790670164874836258865631307690631964980763473935039487557439514163321478870424970899119026652801660178258268538114592215970817631227680641072710177196388264213153749313789770141092795395616933198258744689937679496380394290875044817941235078675905635780997598303419452754687702907454695142380224627490381609452601951464759935303812812803121397563264563608330367129541549836851466185003272256943308440020530901330214385189307470587679381933335095910151856548259416984202224843792811856253937152521159705878625339706208994684292573856912533973720337828379583573900165613259796115498749833755288546646568854554830999635411781327116863581178877362410898624923670234360598596375729819369645799172242451393297505375798252339470058255582306739870495012135124932384073765289558855977542515609623331832421569907357912333346044110121182354896756774196417915085730359189461539424694049987426427117919705471207556128501825295546725943981142357352864463712194191714060296419293219811775824729273185756400707869411661127970609942734250499273278534819081880673112638482987580777858974195902938615600224255976780168005942464074007282568126895682935971208420390228335544117547503453318098757656544647613610486101227235766759154996292865831799914936461687882329792902477893114286979604327671124368330556694102539167152912540767870893768582535878004852060410605034387481734731261063132357645321827926356717718134900424010691945920363751596759206605944111146600094268259465397803733876644386144934822121749171498241522703157394361900895117801529252304974913919941298999484089053852596556909016627443138656565793804133105745650219367151482600433445385350026847420506627982766314363264850391325407083212404087542840984149481586360014179221793713041553649996958594317865499429440205786285625640436954654719872383422519353418594454538726013021868833841038798655293720689721513115563138777683497530145041967614542075183560020220239330866947544625381496703611341289484103098265144979840613244738354843795466542987011270922155232645151722463526422641175275191727695432500568159367733423357448025279008283404118743973318007037107985845975421021944359500952420779565971438231623408329294971958033647674222665673317344554978086505130461829035436402759375124577843045503349510053116565440263133337356995378793324418180561954109049689743775258007866477012271350222245831990256295550649623184497096892959483909096023974251013883274694576205915231556207998598570244476448381640202270827272041353089439594963225716576701986597098937274487912054851178154811396121835202903287994844878636716116658114774507783051022891177710951903039266774297999015269135839950325834189399149002732543860638727856413713781837932784184679835231317478287921708123192312992597503906093978354768261376345428864645915723043687317544568397897267235612359758527929221835463584735564255400759288873782571183971797295639116933052020279336552315861725764841001560468518800002816285831258996849985670713420604482012530542294337587228008277872456573929397414598001677905015010683334523525628772899386677746735112542437040137123957690708904321679997667339651000232429021668506542401951703140264470156735533318146538303243735748424106099520061321360707795710070363840562254566296906673657214056843851280901295936672675719990958403515827835960845991022094139929448097506711702909720206263701044336501564119487325088162664389654133448039367288813561651243573587994751860040352807625336471325721705713900314068741585428868065360022655746579557733934681154492220540670450249794195282236132649513230969131451651707609621111769734116464815994648235208234740629358918604425671458865052179197989849145811758902047544717095132523740275163732663365088475137577793695939560979503625966497149599203974299472977363385547036766744562203434616923210391613772969690194140730004876995978234946978715597053753681906700512227306626706693760400155384049214975328413187569939563864277054905633014644958497449033713041749970707349602264611634984052380105107409927282130056481087024321164052141962741936569002100298717251343678571480419638341042301354571261438976234133047441656071143299066548178653793290430910426191790832311266434621755803062406644104632392799510151237057377747779201744307355528667704188093717364202297822838100900475580725330546168410199336746257425505374347607637980603147808221665872101953686976966598032835601082822256033820760832748807486135770752242978427876698427499663759742225911017612186956220825730188478059464115606633871270162279620480583960063558207055769899351685329995446890345495095781012373223770609721059257564410803002083595750746103522130026492644779434720086187564762273641784518823673412968731671017853109107224200996750085028941492897656014870809266897406674080113544656577436207500008141130898968736081399824293993334495724007313080303891603862158436282690690538673212600929758088738367668565667043335682505986940676886271836094220723408080331751487486423629197719919176532412211211085550049656665202534759133964220136232251483311723808569362993173875889731574294119752857289006565226139731854090139996722529896910875486875953015987548816480669188198658566850309250420326012447138706761679657451856772447480484059645455557101604822867821161165735980517612907576056424530137394413381033136935350104840394330619824997331185243264525011417296722499073813559392062570992458987653931140564046976054066760297401492165216939042335257795612474519458555016669711824444713037682467869978644455957706259682127728899261226935619316036453458658172010883441207052391580804739190799620528893791713891893563931073160187264989154125387117002001243856388076470987932368787932568024592368649889920922517966862944342251556793812242368402704354100078886879460006116909939163673980366317781452954391688432925535274861712740682782481780410453798099014983337187010588762850966772961671035646000861228724072765179928151904350762968105877502478881863605047747493189844340065670247765968297014216373779424222287363827163966937611355724395987295542483546847114361552910684455943935636094460501329326757690741397028322223848524521052298618634085739582733468941647350026816380245486113569912781288333443860235393526811975631750646228683069243077195445211579580709895401426402854647535573836908717733674741982443621663563279000213342271441771842454230319209239407879870987883829224856395383694712339160556077673979775002679516021292841428987301115957293253200172269177040568515733149569360160704697273117538948514573499067382639465176188414820238947230969898508628928385241658741688654058747803025870957280086695077209817645779905600582061352825385643376653903644385702176129296472676062092873792478939335841907044894017685094586605920024437668716212606092022345281326062424653836275692637570487487601771699760686941237792659945243079220591374834906595370866378395624825029964517781476503893272103273134398405027910853660324469432276897424961936427183687816074666942443477342694154940589560216249310576724651631385266241269775821681025547518252051433459072924376377542183922392683436602712017991175164402198522142544081350321394923868896815862528252972839588402394137803798150607621650071992461052665828703842629535004436612564965643563400460875078177219954346744351371553293555020267353374566690039830148144631385472615563496855207022368822390645317367249909549521662494741996456993494797016082639012357947206554549847376610198864453258625590670925982074406259765691284764327378213434051407593318061281498390828953863072340765157725122859115713893671990098611110843902011213108696205396250422881816328791376366298439752774059162507303881195857361270058037530102783035278014219187001316471950783553881020137366462767500008095471557853328931939208061610100053291041937205643823810612117404103378666731095478416341478346220584405362407361662673295505622519337920794818749867640013763161288674558097166671159755475195768138356037022641075673900079994616027438458738489662252160998489308047633403787089612738243182051220229319332876710571550875359649565436010388961642324635734083948016717992668872633370448437138933814471769026466109194845106695901739823392802599751770658008963856406539778713349225486373038321627260272747828362600589156814670189284401310773672502447311393501735690813162197826795879341012117192728694530812673453565937591600796459350946705365740870094239462493337279783644972509278022454301036803446858708382341213132104663402997359630728163226592279191952123772279138079514335726948536504716257823442801000298597649071514016060114298736690204503379074851375739081650020968976923445838532232383297821173759629911578672684501504474173662462809303343177777306862429876641660730120872621539743316970627705884968410610092030659153241758105825326579346403623417237919786282929352387871061112576668702367937055561581215633359932073152984901834327422890633975821560040681152637728426955869220690159234083270947040722278347000974869587354144889833972898027115762863557146547300122178260759422037708041715585640676052711066529211596786434900654054166143577615283271903804821217760502940684731107919924559613289331023450781852183238014351259721242496874863833569776416207698561469693257939486893370173646441439912684452084687401280954860533842087243839844999189462596814204314458810126917220011249600069140510045286787222505181303588220640017904484830994082586803392610520112410771345044464188202416860297563611407997087115765743020511539283078127027596310622266771423704659091495507564484039556489416278612580893468296624870010188578986661212282380746049803033257568753411428503257944844076672014519877539911003101429359191827970974813328752619336445316671412833248161441225851197145727654568590785555582006828602878769570337774578708170206187948115746943358190535506481602071233903126220540535589443504038716437924568036065805840133915110844775021444627031698046887057540347047759831124645733281427350510799363810967864328358804866837819385440570230592278909345771689731536544748083373886953406579007492621046458784140641307282935066446475528978699839337479884982748227914117413069502067813488367773189018784429362771614189159929115843089625146504794384017457322455292467100097216401416685479799755637844522302072018090252591199412867060112275281686967500287687605845913272971495058983192240579027217522944260199869494322493788972522552369927732409752684954450709219130042455409194888703085416190586305183401541171821609452877244421115062426424808018998754657941522904303317911976033479189762441199680585576262357663233331988184040069494962642803943936212293928356870668907025574120378605340877949580517745575002111771273958953089573801409066788119534830077550425364448401326061272217325824847050701345283781055215209756842451648526727502238273188754467306790991530674948553572462106638269746690913486541268635225327432987714105551476257721806445435990346789814555325976468570941945482814905959610688121115105810789463987302104484131483070381187887796486627778213642896836358958289990834815133869852807160968457083814424352792042569346071409863259878908628027597414804768456435328733165917160852911954944805351321108733973875397836745388835635809707737854952326557826732300690830542520796048947009177561093899759737601949173231895341152222892233111425077101054879498844103994011770643004146364339522429058249549693578527789761913245735285453028457554680271033623671142535033122212832092188215750918175319578567642450076630693578787339780895247412737804712712981571319655273872782774052151320932903967360413457847443277663062626091606987628961900920507361874037711857052370227311748043347706995773599848699456831449486771903100816371975431106265946928679383265299107594280893370704057325469852243607154209245344445859895812563787572579330604620189082958074367538204422932471421902534350574931773861208703167028900535540453857135893430357111236442046814030092674302566961378747799776976147008353068435679963591629271238562529872903412935823184292098754690596550148908605755404775684069269789153573734817116490151646237156407128888003069033090148326528736874520121482079682071555340757881518784841778669672345239419564186658105605702582970585660934046544564307368296075512924950294194327710583945241123216135159087032239433672936819710627673026938992821946911811260694207446163296083535720854560219616820359829359977468644996555052705354219879779220718757367472546850976223783464603452087866290738390249801776265849833728662208785485966351656363413477226593418747548339029065980896190358040633947656462397986391287972888776549871775427130581778492570614891277019720774936629165535227554007149148618769705025816100057790048325202238627360602696962041678281977704452870178667174556262190145649630927852146108964839777944288454546275646958606878058248031131914454438533151844976128490967392919986709603324562831420978344115048553735350025494409062009732450504126148470621908787155731636783542584292494687906615680199105269198765989136983861636697447213934856716221616187271228700035160346358079616094122072522554300823968831191939586388513192965528154035486672985744121635287315748034011091627193573461266741115517852647436906019171655889791397350333030897167427069460601093858661153217440902591631631630071358115331699341991071535664328832874296832675890133951230631271462546587035029699502342952721418943948594606385269966732400070298702300077666818233081856971396907693862130020632207477881965640538111226646653714652376180428879986266891036043520349157932119829755297470406213161404709876024469393111343322606257261369072971849953964106658402991786958962644199125835042527528763294888591496327012747977596061949487716469772354991698807293474870959939926659304873556502063521200623777397048717886579843480120714366777754677043054375646694834293258508029807045032349874975350370363400404312072341042497586604593637032766904171446163516206192283221163401674244866302975651994985604548119053830709122396775759305104164815728178214208844958157658900274042874693851860415390235584659488895291376351497710522003466816724078501600460573539690790700844811667685688259079140571506593852237318273161662234483134957719510999347447563955160541302315370024226610912709231736012966602203141076937509355640109419615434058600848814735826962187749802970987750255625595326712287319802535961825676488512061437547776497800698625934709345745645463082749566417931164105156276050696643168820074159748289490430888586366772715332794819666838568092523107973171387318516297919647819177385231716047009252543439916128304445409335369611493007848722282578548826910160746078571108513388414137773840494290042029388804685456205314363528534678027375982989488452147796771917049758409330340261317810417093312100337009214946930280783481432911650308878672982418949938507508862910517899631048255726783241813166758237183953968642340185498654913870101631626944569631684473446082785886073384079831842694734472819608146641503103090385187082064696931433501579936704908033154033462116340753543340485139440949435117362025082867730649106437971807295446217843415326419641853188800465088136102928117724817737233802736516147495886668564558567471993733785522500197591172028038266827634073840442413599427440431668634766185175918635342485715556844156373799563791947589562880524582684619843945968578378411102650876755969986557010210060431164413680651697567264743777634710669766267874872055170902148593635615976395481504872472619100448866322703604890708889918829681022147522778875369490709463988539074148331777132980108975417510790049371946511731921535336790384149123430445696392052325727881330867566922037441604037033456339641796725925613326966640844475030912230220349843805134849331962066058911051440919501476850759932142041360895274026926234180861680014040133027542356068277093560025207340390044782980347000303416251004939981525615741872419586518261971934563692103717696204031791180786717126960713125915556387736727937867413677996752776437976704576923919386138855469029349424905553371226288174240012968649860293179380591476060504146501864935497042175245323139721002983182871137873272751159041324669752433501514122837510893768690960573257515662674969323687385891197899597248287888923436592760925431229351561043956345694870657332650282171670060547989000430494944669767668168176315674044231294969774400732906284351615530770451342255355259440167261727894350867868481211752680073446908942245661292961421305113696945514734581047364821023148363219768642648724006117700983762207001391109530799781402138194660890930290984099484697030696090235342033048490778871770831090174497028345414463787842364235145989314969348392185311100622168531537845177665745185280079879035111573737441666072091412111926210202460307920634563646269537965805422353872324139761963706790593953674525680696738444527352798828472077394211391962979494338261432640770055042592139649726157412106524652424262195478936661051972025377183815525607663610470224739224280797576289555314567239820397597820630483062999010300761599995646798420216730045661424499861939248021482427675621642844433429266600129892229550331026310277590819305540176335906137473144449543384321348215521483860857343073415096137923223846373569263275030603643347505341306297823032777029268256572695049726911416253384637803547224471321136659611105476292906075825332444358916067329880943385020435323603355813298715754375582047677711476033511875604690326641472003027102196458849305802252417794298214208565750916938450727285984347113367859772716453976347865862155340261792641931688307796588449045651679690224478998694433314304562912716800694300924498733712964944350960897676789492446534381447087031274289160218860734908858822662051227997442022726562588106361285768973135124298213766863130620750196196116323272091115856921576252642930541137440165961202944018223582319860480432026120183087841894963227596515874548336561156813095439641715731771779766430562140546981813608149704683169991797863007479928570595626750455599679918649921468091149918091174248613667932175444796457731951266685924961864207928122381890619603138000115745747061910996519848125126768980029731150482592519396893773056567747927402293435313669017823179094463237305850323838530932311402118157169500525435633402125524697737943249409742599937941221097029805913835402244475686597095528306160836039064062045884212410460739291390041492903254480265832232534805142154543467004216198666907573743632456334675894007862344869221695786791092921196015768860077251387903858015628234849861689518054432889782577453233664255974369038961872696780712684047129012177910774330882534447703024938822453825802155543130800978130066590637607083982101376396960232724515120536240662718548288730414687670314943821109061191524624966221029169194935336092590488571339383893376449661601362028966275933506476553956246585660248997063224548897004972361013557452092106506234009682689005993731962351737165367146347601373041802421208595262422807291629952783264251655987417405196397995778732672368837366795974430671604718617301119758410595336867645576748564663806441694105942601270256995110437912331874744349495737993352286746174847632903565762463904273304576743783276127494107593461848417967718920203896481820837500046127087915640902714633810336768985400229244617632791523345760461989220436464733765120093422190004070186409426936718045105477360850747122722844219848956125135980204247347640827685149605052727575312005099863076872048626196628590941309766252077009183449506943630928323102423554568082255292819513387032646327978776112206080467814864613217400991560633858775012614178562225856696961006991634782571880729021170116930885895110153049025412159727644684744416273312874120353366739675224187897167056868257254874737934687353742617094824345135553571778944984285998865806527845832909631141169869339262284784124249814225212429379884033158280379021384915246489430249554813865308422516385676058822455125364095992462211247251709604708912822445097828688997405311364090255405724523009662514615320798578378752475323402758320605065037950200553820781602332073409405879681811445051777946757505522832006220842298785360424112702856619097888272874572836191411790387140850093133164511354257406293774339655347443241606588444338110234236988193603764421460797882615600719855515941575373513941822368256775101487342863305210619258228230813812016639275499209749168617577230464975171039351995734449495018971670401804721787210047137140324955119794806637765568236721776438730836872720266796730789838368680014877220196457710860042681198491544308368060785252371749902032016409990135283019691608267183515919097651383065837126657390935634037629505450632422342963560066966034862454914191442312632477423278842548563451763825550379120501316840399695551244493726807352900487756917814768741488376252348492042559099551996859500979318731559696734371198328657324072251002612992359294415224629545696846598368280115031031942342112904869827592228175978035238372189333837239133081045114740990236625040633216297951465193404187309019218697575582389080760887370001623515954498432630807553405748043126686470602807093786152216050340184637345339305845287940717498736166167322396184579891411884439247101142895201003152221667187718255748055142922598373513035514628119414089243267792846377808013721832213605739055041317471537739615107994797175681816978228420776477672071391312877381444930517127608714967509976016804434715910449790588299400503741932886415116508894923613537995083162871311065483559506333793465623286353570252130439025714951228355988021979496318359890002346931308773849724467635913686126607332928238131915591917995308425664910194679857999411573499082517845059521391597528584687231421957354834618111770826926380287566246522055008313815334046751498607358543627658462648819024615801293272078183893608244511998930902668007613405836871987822709199776387110103134269692983892691467771685401508398648837539226394753575030208671133343332612039924520213680266618120647219149287497494989634252296799046072860529429451133689393785456754252357948305853398043696992334899021984680924651401436112818949123820065948468590349742615741873456564798322300136453408287811232340751020536373945278646254721695791336097067997516032309478503837299303903181695652598041745175339938291072849902253901727580053591675664475070141907674035075676288309187496791605591410059676802262335222599366490046894356273576415495272743939975696120617686138806569467307850122062506405576646906132797101788633380278485410970184442284090146241125378183219621538314075237466173890973213745194941106582036315963056666984379223263906554339646773518633429371578781924923925464834906443119891067097635988724288505496784625535772876035817489699609775031432837550330959669762213993106963713750114905014555739532713945096825555732722926962773213219165181215492391596897366635813012612082642060737919307317751003705757190325734975373850087735644997504660127263799697371570216461315261365883052254802486228058000163691660676522419721332775756574221021920937247918154585672519030207652065784626430172584407140804381704836701389131521615016159226105711542176239713216390978042409289470639477289412808038686949618140101685121518236246698307320884359339633698646534411865094003378379242463333388422152672390957342662016734503522505400846481983761256407586811990692066364865303383634376846398929644560668013389188525606683366700839737779223134776427592870279880421636575897743398921778128354276705210094879334585581132065572564018431068639537761413858727126056411738131169731162143811012617982917067068794002412851395569299560844543104242308512002776262842473730289565124647916189611882815695167107253197939795489976464852602628770316147921980735403351738981764389925449887168520761042784345196898740471836186020977044959705174791804349165178384391172651799812339393885416615248947318687527739753739108037062522050405561680722051203551788558094709832223752208156441743619406473415765830847387045564578286498211555224788800048849162385609982744165776336298636521111921030446777523780159428214952794102433707229811575840520550338092608403470076676158449974047009458007847392285630548131453869090484474609224294718565840204369875631032419266576924369878369131653302581183676338689957350808905147964567423467634933870025758028780161912813429112384370010503152615728885066784937152880556281886915690918254695452413588920548119960870109619748954873220958285002889893102119239387412388306727155799515143892905485348666078403081217003392646556748189248403824133414908711717037767357770636823671444281057906805406954952959309396304090011356735924467838100342995367831754859736513771963022908084555403994582330514649577871543174194340832504666136752906096819920979653085717456977193452203927300674880143446518983450390245126384431790814996449385285644212231045105546641806425940621677686109569455301177841913150452660094895201066643602667169325961195307722548275056860431673762730367192283180679644290937615924925354907654362673278457190856818708247593189751934837306651096430058309673400108502240171965103951151275638946128369390334677496147662046766228984511184933698589225325492097177071985079985420683325149299927612233854944591275473381246709175127118637390870646013770303920025936521655780039947997919379072544703147455661204099819225273768070854469496831027535916085522828215568669708884656875003654350193493247968244706262688459085089353137444954506297625489105546163170596746279334639590386091366398944520442653082389697067184002463517945257247263829185526427973036083101355976934553910656753619932683217217188938361542403907437069773738455698318989485079469889046079953942358079185762652121221261414713084984760144282843818704601592089462411982319618001347776771150420853394136611453652670899739904719194024149130386496707567684741706455219985754162638444912151505073512462620796355906113921576574876680093837627696991621676862880246775444247956621910764029033887404413476584192144621598636985734307572461229524569557194297761708005399126422332823579763993875427545102472351528455307186715974720217931541589925409650219915565041067639013515444486257151360995388676836142316176797533212914046123890820059002331208778434941403409027222718467127104653319284598606307502029524130817290865017774742784519777723102892361385269151284665577137602187156884151104178404325431181329823832929047414011307591127464020389176550603013551161627288470859651514031156600173323470505328692761600471568599699582091659973465730552774097548528260335061758794444691295085732593580047343333265165035484784796183686923578405715918065433472790532466937513138756453166714493730313926459784192302252375417794984499639447978118560444548892047513195481952665019762720458858460555597604169574706992730995940122946851185458595228384170983807465548745532095842356814721380231203895813981364398987622578479572643136754364888136833511322279200504122587263108007311977046447179992776641309682031702363592939201467701972914480807568083190447279625728814951349857100955989437623187984769877821382081159483429224188172561051542606538223408702567244623302945309745210343151250492325489189417053279673677879818730381868935937859159146468680833904535250788118216605637217228304065556296549605352288033427937034033065503145358911701487422379261724132197201360997869647611742484034004505735139855942196297328689628055766245629165427162611467236532043673920502223889607019623550425397955051573015104414900324665229610177068816654575771080806885400205097248244767384525020718693604280059239096340086101299946808199884046796180434935042912484533100634997877604774268629193262471821239700801497641517534026505764653668386352671453613295354221198530982645100533757903423207769198006599502822695617346300344214478988531203522914046243876726939632110670061807842962827648750261282698833291470176349270825359155571561904115892606649489141756093075825463124878214638240862381208614639362362002581921675875026596178729898702351479391355199716483410393697189079382545407977556540116334536752118886062637107752013971737586053503705367387239948781455343571281396081404704385142598869515018886611190988045530070938680882067391666762638362773024831428397829146879659382419344708171821961419623992412660923310031230721060629904581557356374658515157292025077639298039918351701730922189090608630150928304026920175151562157216080187104451866270059683188537731038121620978404947332798548965631544751400286093798614555150176364661992465115804490983841154677205376583027687797796858960448845058310516965979562770974237253039815402657730418514584367168925940346222027939536437609323077913889111347415551082790690145292162876032207927898485879425966472402856044348802292517165984411000469773547638559893104623089096601249821044990479477910557483890051925625775547118621015738441357616098976226379675230098928275625348268964473265649460314125377799500883569230439729320273768132144891077942944477824183185690325902080977368330492838334061502833092720155780295165033275550744200075419028405298268617162949069313102641049693059936417298562924731699567482325402435681189639549589816453179620747865539527545647472479260328136297668703644339266414430775068225893121137435097142838499670574996499280216106853918991901482336861221688897259635312152091701768973613879948686467662861100752478622326462722943411575349812652417864366509474586003814906262016185368947723096107850651541361519448631029731920300553146352044589018973806070437066468933493210314124680821317950431932149876522083155793304010859228772220594809296172965680596359290136889196528598990694539457236644374881329750330848789087049273534485375692067807249704804268571468606007931586843724833366257552548206908812311440379847547835322757994658181124722216803421064136251639466157471645502545600731947586978557852123494325142734549259617178009433154523128370082502862983808769134767730957510112402775458784314220808412511384865779749437837898582930472402220098732987440356630588588605813455913627397896404596629506658006402323636008277622932201000705154541412596185419531454996895687727014279216105852696458446542436739226731339818769865750103708769623927468167724932213002113746739329871818056866494559101955321315740222243235414626966636037079472938629383857318196631974633225898501007784650514869310003586777462307329965695494803526127051504120124830328849103901544285241931941274354732584520673830212270718377574189857333589887734139257394614268001287051288323399745152892613527114130858566252571024691829171483904180180061208679571470408848322712678848260899715065545843728365989722497621310028936261250426251712202968970535229517533151159805313133095444412328867061799867927490905679977143405176097799395783405894944077823772109050749421673584502312568123423954952423032032709759409441199305717831155222131551384798759466955780202757998554580283161280680426793221742098451897404157525845132557207598372375206202887448185803035618240581424168465534956511229818933465285447771311249194027006727455502869125488588247486470118024070852354918992206537374226515217967243627072899579426725740699148134972139811091567168857133064237642685128303828660931164652623134289043149847059520193797787883296406955675527410847115486968201423413240909479270293356323605229279805317412095560344035740032349600857866220202880329043231614526374467614367292594258182281616370119535508072539513827150737228786111398116430491931479078908986560168613727213457091415319989669115085373093475004609189681763479995845410222732887379568090513953157600930172806871111152855285549650023192146349778905403304714614155921620584156089741960287027220010442362420894003172615447868526859095737320433660082996840771442460194149564522639796654563656647528007286767752936615069396292124729282506555675223355738543928352840847492427689154883884322326885844404958738187016527667944310401644875386870126216987165293979989469278300281593890201818540808894882137287486160904821744539948498791509721877008414391925228511122225645031585083628384885158321093563483820241774818609094264730706777133267810879844063055595916317798497666544824850556258163863076093760172271706508607792674882906862402514547227153907360339923880258061192230190817623006717152665524305189391125648817533906406807146444211047888247325884724805233467326570432951385101784769706655786746698613418072804297144079486948988798337916163793692715564041567409920382337419456703899133747742280087233138408831373499303373437870836624621171955158876168716837776220187570402769858394131404935218772074637249261219270180420532876407061724199476896802324854609881171259511928220245865166883566370083400580829487107405766778669218270560381392092250521111238707600412362857626209679274691776133530086918747905679846258177286614387165106380432958791093106589480522334793138422656964257751048511183444485236274252503682520364151290510839674740629846370581188122303549867111192136933342990115702129624132131308336784941319662672418943634197097343827566559017545940167963996016063273273727820076381464018365379513079608844835889361776939453163711255808546229886952364810163211853217641868777655053953378880043318778270608977334149478757285478719163696113230635153342267340909866674211890275091849595124187194936639541912339721192668882193437871091264289149061538748491762961341694725582434975024078889675760756583274935089074660294175997509384453918559648109829571811661043125382828187601155043844473172968698436964044470242524614187808510092682556549675667125703349352947484994217700263303662908708996748941214284387045459256544794077692574341233701320605695546120336232749417781782960037377960438491665406633210427013229030519516471909138098326047241646431440559781572918858245373696488444398599431601166306731956854088207039808934919970872421945621640863115944446324444958195019034484903378434815269803788243848655224927057131578598569947841453227019998148334174461752228123353471343095066152043011411554591570135338423094406966939679902336282810920642510405419329958412457882793243520919660389883573807678608319950093387311708353082499842386610759665614817313525028563096278665959778924919158250151161849233464490951822325227967115833237303501525773337248867926455008730740426027549210064100636751703656164036469626684899801503903008694805307274341542621053650428406096088408329946326458240923440471524897006565864108929597662729744108267632863750635511382606207356766550311023885706664903442279627227016866741746549343695023063783102637056748229349471535644750305702051230296895654876439590052338140669834923027950275839233337722466997243536803802671492883599363997047558200035427783958679025882417061416473003165921940230452231147894003674307177045893651430798382288016938241056213865047256110273418501533262191421937047521936320964994869121497710158182300156917788807909897403981918440986013828735968536096052514653846237969681383567233478416682253481982499926308216050011611743995222793142736027789925408970059845139898850354956190687654800839057131856106453669267362806467017967533815744194240139415280643928328818277865643118361913772009736169150131401831582453349091288592673008143152200060755237411168840531661140526474991374683872629987362896581941260033707992880533077967588465736978274221788928015436297293938031823958543133074458971629130551510300074668189718363082193540971522933160792883747756353602388931334993948155950706675104794719484727928978471336842582119290707467008526904054207297908915219681197170351972456605680740882180923472490794030948135168248324438176532592623361601078694052385917793781260047530918645251352160955448557808146532625241339504046163264570107908544086722202065383667995641563162813600161823736021680260653549115098860964978155003122014036383287232698118033018968192867271312920859481976795626438413473544015751058844435605766589314959582790562264185897094527474998615151021228129280350497701495197563865447290476508227474690561966562646012355281542889372579306819120828266514023254533061210417707975269316022161007863531281099341447450055434076845491426740134877318825245710498279626286865607820793336065851615725075210375236301589892601104609617429307811370436489654435642162607981406769294810781603561987896308259188950904959391909040380296951858573607378097241285741007725284329956384476978264884689663552159914709941404269020598414068244545000603880667958672415565361933543242134678988290827485946288639672151753555868237315218905332414181724097420287184234649279269797304288268229272932075677530500024388317707226739917466875551380658269657404318943366430224314264273321421575783522222022855386012485568360360609949030194075615399487788250019036395349736763641396797392086816421373097909240349651454846195542592754274670627865659501458968613784813205787074348430788799674282038023508857478636873581295067290008767257007837233414314534920100289401024285355059934643369467452371668557082440273908598104847741825857534517337380849239843907471089444274589138050675221464889099960195705784701034601940933288109668812931816653099603530652582921788532350080289823922004838539291156476270378890896750334202710833661647229908707279743003908619016956579816072724115136205411924384768598785973145083913038007424579188967104065536330163228539901570146288261834333230970505716903905000620503841299050433346608545370712054922920630257658948554813716129430908015859074710953535029248600441192825140705585980793592354871139695208143260284755204786054706197468916061679013480633235346806386088128321861267232863834862913564509686153958948600454509513208539825356829360804490685926577939460819174169535421348573951193861924196031071326848806143265891040142093347918734416272003383154375116466748220504967670557946064306979284585653148794063228599820117716083582054368599170355807617563963806795918946782337745968656940828673954692756683897418391251246056284470988305773871651136312521751085285148838405993250680054768557858169278963562950113113454915432566536865984592842936644202492141960254528248392341148643839875025523279321788321141560632692609878070031271136939343582687837812600215265840390477815732325088130741783813957482383627944180650239760231197686822051979765563720278577361862888934898199457313862732524087007703033945316695397198690832811120722307242482060643594509604210170368011125194597616649561853615414327409020143109636872715067889814560429107364368588479905175562148847327404691992660865514145022883555633428934488397163259650871325745699627161648050237821380866910855476053984071457593671087005397946850836680802073516983816078212362766273655833671354049801380741248014214144507556463224015169645340878423842779403937858526256169935564397384235660408854685816816607146798881906945372790834001771556181071163425386921069842063637032352228608604272318466399728764352160110939291267384054248063444425270419166247455689277344691234301830399805127658681286601180569185946535679726616759763939149110371128848799564183320336514240711483174632211064655000960144756292456395146102187932305249200582108877826044109907923547074634704804619475803221759285961046938671114567441946584020835979641770991032690791581691658665226750221456331446386170301055369717360018397487054872053428283533689961573293004801074099049027563573406394386107801847238962334120759813310019590324837479368006657451875495103189860574232169024173478413205825530978693072872250114895927448965050653157407285195609405141355901763276532732834541720900407511344224400254474522956706039272836844577574472319249938351012631137905370329455554875556606538992108117690285730437511263026667136476067765042957369466584326984007323516808056129515954424460294855123338925817729242003159910681894150285874308318125696318942872247882999201413038121240523255141175471829885812743506878273188942393060574490764176472370326773121924073092061090824765980908129887860334917767344474333332573120902400309518112715815142648000775031631195336622120185724707193812980058333305638980762778387066674119123292122484202061995441003521055057509334643837449917314137945162532344189128301723871983825048925734311639011034879083486352043742996278299155117623971052483154337458497330079595316886613083100936047061785071921152902121685015552117430542562911077345348916894649523058690698600205561777655010468599588258823086592246970388804169857488450554290695344800075682301798359952279486928897449734224519723008076403385043945099507457609405363670253781633983656322456186148357751243662345630872406168630597068042756142484646236728876849666416522845204829367865749071590077218747395770121227810017184391034455377631512528496093840118965288556792731689340370029909344918330638656291998326312621124376601842023900779440839221192465125462718358780006048317171169074587998497320512829151948855821343750024356997452009106663002740059134224168645415869126977647574326684104309092924842839491635622946482719594333682787116882909481192030021379536808382060073310605304809709946194637924505548119485561282423697221069134827444497046860380806310010915611523901690591145392359651959993432039590967840592070075381262852806740892619777755120805230373966175376392501983162729016473105363704980844789703387314178657779844353371930209082491005161478884565570911620071522886655740761455261906888274259140750089691614797520223142603840963298003190849183290745293008517809628600385911695349118749555383869619504381331638717449364775117528938752615049477198101749840916934047955693157304294152239230732273627969597897330629990869185258273788621625607126554739487636644620850367484271001849833034284034630803946077306025546250290941706963856644093501627845266370585958147556021553431120194586726394126032494450126464416457957819604980242144323622791714289195536067465677495029169714903688984524181460029334105529589467870883965603327176461022798198429957515310262186873317540988875528520838976759848676396948392788767123726259934600416795062771726668763244944090414551083294120160413656686275614598733636248815575599868015020954327493955765993159889807787482271129931897745018384255798553865299051457449584833599914162577245814474675346865809205431589841417145371710021143362475132740157136733748334706641847554139848874568991351681723067955968522796708404778557187811892896080219838051604222114156800756694171817470348323184457980051877701668898656319801114458411734064963697329960416572412395497883573287405723337981484564285949702442717062894113239649724540579773175482183527980054272809469573970057382147763169944514946845772311870323104893680692299567991595508417085915202204899877316853803190270868883438426247146631293912688028134329585131302811602897457345559727352152701185569969610876749538031348507606912637845081006467388811460766444682167038493900078719077726348732439863266717756250445120821608268067705346397489163551379905973518289622611932252817358540890514149880261201277028033575056940044456525034608344515377369307571262798693821304260623936652260031936500076379323337962589731699178287555812469666975022640142158449354242820348328971917123508444419458456336480352725831904312915499730611833431514366991547567421198242886226315853483032313780027456846008637148969295743348354955583810501639165958754810030440650930556553673872120080645212623786732472557104225828276766967673457410549116633449158734281673111765092215191601401140610590360364497842454383415160387921978893815570953991660239927295175172104294601347160070202580811294245959437348570719664280436514329023245712033902035818168671044123159660661832844782426286768492284228113493491503873258672820630208608876245190934472929587065406173003491985722748531537911955513390560880238556785789319658169882809187655636162947265637304750927588982969509200051383597455437562846651164826611962379941254214185763360309184169763614929837721653438768725755468836604317361043858839022676173287040907982675908451600240564076966559647839002521520046651124484112961629774226004032611634200703987279038217241423057032215749984893052747022644146397446902373632342516293208297412440596016599420788474387655024038332344687465910564347835474553922703277586292164060580673550543124270612809092377877649859853625861425319174276945095185000683629526414695147721731463628095922584304005389003485993141859734696253090336627350992747062795017118620070738434921656878237234285721415120704959995309626487771280015144986136993028031065539950764794170275502357884972856325799451210523046836230335110994982071029811792694054905521322675157484617067464010954970842089292258396258621212995151796561136357220375964675086090406362514679188912033009280670989225999002269815965916849338921496689423670707437256201587133737554618968519810469658362852567464098447958243827846325769926516535727459656542903932295032190909591975981387630300618952326496487896932762737420128814079332722129577192404729693270998960116899142782431144497604057613959039235911729520327197325287271985844315611290543615967981170442631133390835036064256121760032408305240896956878030016067163321199154044700457074079675558559666538410083190773234400039924764852029681139993804916397183277462406215637272636519478230724518230576945770957445126738898706261322174496331505144107703821416873767802197708296744009760201297789093560213127345813491987152332634091540969680228910599437087961219877307997696985995982284322510983945440857931552656966851503425818823923286077802411726127650021923587803777505672185466003649123679740193976982873237119131503578024835077122965088534802515129384715948816495901442127330137940916621538770793033296113830729297791044946235569056819888329880765990264258787336165472534477208273383238290808683167818789952077785053034756681949920610149174649022205220604634971930389912061838643538785536461153987588947847629747968476617871867029333329169582331840250451631447216144330217597528927331098156732111245478795775379853200050568823489632189216858340926341407536660661415884873918830540407558641124820725346628599925047301861854782121289581856395953498301453928706029344065136310815187356780935230608849819955397243458740438225514455323800797072908848891192102354961366784566868030500390136239510383649020970512768982504934271204944594914421734750706879433094012988060552529725599618958183804049700041977161307994564429909055065242594697053627389043852400473259735915789344018875307257024159024519356188677792333190228395706101283326146706365875828817520943371025967589417908473330219778956015185270583612309184973379686785664165323922014960183729485319637448637956762511155231760218905515175236725106070514971255390269006035314106442425476001956874463333153255976629191573278072660627517501327309721268613484695478245742743718589478722847166290922373959494386668677265082721503723279625857156138873818684970045555337616233385727622732055990930713210520716258786040472591314016662358610169213994944697151436358460746921893330416348706026905428479314789503674540616793858022259577191661462686407916846311969612566200166581158015859443065742708678162939992614523420244797416687040129598056527593487035294018200322373309638842000341537658730722009863409570808696663385025102114855271413429937329401331155120493563506689639187369513756001203996535605095245361912892804740724352997423729446277088155554618003668727943740810307317144803730867264826122921950418424763775473216257055817069955408075566119030511745636646246718575086783983990987941848564231783096140770923609198072390671019721860738400020579837034728233715445598939897284083712060136220147086575636258272957620681392445073115541557975548935713649137155298445496749350208973794615083517598200938373726384920797737623886081646305836127308431246221875387013192813339931676713341784572880268604800729222060011592293680415210316408586818928585209613211786188480861749727964436480412984891022600887772951552366621229450946266107035520894903217552568863444645477566698099458679087350591222783141820420077875040521564969744678380732111335889965217797085035167136030010630180878216374488583133502394645928305631405921895597290175019805205358125163221478264381170827607512115730937654850653054666142041242699249097697859563657544157371801165402661249670154474053775576247942758157577689907489243411535676305347756216010112097469982538176913933326532050602805421062505641200185537811149311472364409338967555730522465087854218354833822724714494771158618851920357569016635522760336521719792755161886797848946784647983965407043458485072855553911367903622788279688871560413296664916092195805535842600184155933776229210030105451911724823471979710333905760790357666880539172474732461103906863052997788438815309930203221253933542125870281786302859494027660586592335180477071472295814336984533795096225728413375693319226663125076885533630714801403357975639074189417952228409923406013571429662171402056540112621298291197821567988959511377371034232901352048742371846675682164882229221630659534161969603463872249510775051050739440380906499579351407883551461127335341864043746990449145261017378968401111711412720497138151315703668719737863643184191038280531598649536721857756124453617728293545479319816123908896810279639129571220881506872345880974177624882959002769192011180160549938971492903062353816941028284377779509997350822781742223976521475733672635948825404715653193630846481022273253104195852854233911920852363292569366880720517294099488500440610649621373179440554588691602406150394276049422676554266643064650856082254341481475852138366489751561085556643697064497460507884448508224389974585915143558317994811148570964069508203652388957255436313451668055361792496250341638042402903878009498314560332780623006297911083565983072949695236075853063699019108407413052944619899944847603933044772272748956353558600011544109238996873256405978822519801611186288612631287043528561346212175942429476240225722558527121068542703457151458686655839375422821163151482080354870885948014604124187396427128131314172531991953169526337259337181498377505500464470437115841392114438857034322817717924831253899966563620037674008408207642067653175676632316768577151266558156319098829225674571298647791112221650970746083263426781728705008546234847225480060269760019571245729194420132014387622651862244021884881410918414133279540060164218130524652442973489250541670706476138406600813326737037908144619934128759278660434404121486984087235497969121793749898922849285295993332978231360404400262740191104709389545544136381853564170019482127317645042224042888470832475372745177843559701376430768233556511844997517382429664305028842077153457876158739256045749091763523370432520501395294638289868616846528024263309355521180819295292743184421566653938711745353617274444719441742912431018305731708238839054773958068368989168763580350393454376054770927094748270666566426061070634728118383759764070203596859409299511755301409808983939027373220010850543784274707262353238635360547497323626357722458738860038143936827920962051229575930757930057891799393360549978275372329122928348272559135747123402666003062985432282404338712490289899936040351989435062340561131666288037415906531545393029801370511473043170947915260049770465604023517435196965781967583116071489915390829723320493424352059256542349655191689896345173458194979579719549279007338561168585504458408723629312285740068255221423070220017530901400433149948223348255765754475357238142624211796446290338291708157646778697428207200954354153915334497406723037921570598524508507048679908680813877047965078469278742468396517673426406457522073963874702214035744462423088091851900530390466819435381683080399434816280983227058975381240433887687175769660300159054212335196669225825173257951567708405149918195242805106259899899569401972264753832390560801182131603948261014377055854066987175261449351973097252549961567377484219848763138988542101352315193221109971891826454740335576919455868440219287159808497000916309843323984342913404125833702968119564270456147161134323315292621687901736862728417820119502203013565520711328089411662179385046242182107725964188454863963779194966226746934508134309373447119679860417378932167847858109437693926206967363793317687466524448457740195743106142665202646505123098487333872362251944593141981400597731484091721897271363928479987127242970249463516649460046331505072541981508961806098103577958617423024595961105317219777081668639255540391473625065100764416887999367541799835402334465904626093562735706389177487151909229974985879271662799596128871368455044961633625415791519171551195030255422349005353010719093668800381553385099356671577749736382752945334226682843219249238813985446961312741505887958661333598432452556768789918693144409987890750770084040978254452486179163967982747354821029821920915235803587477082081885859755670891847975980130429224677949135574917728114143447971753334615718466025218944481222286381279669315096877829213965064622197716982551848808012741894879896108424077216025251370313295101942422174150206819699277869966678684469092733497074585402140909927111029800094287543527678327725094020816041981729241647717138802030489120733851241893312253609185626989401056053406973159314625712062292170735554725462965650833825725764800459816511824764038812184346500732771986047952556785714051828114406182606467227007295706869884567064573997653730190001237333167617211984876146269470720952798988598517156194521521749629960126927478028723245422458678941433867662906098640371539415807665638829512913857930351021160128109858268467521209303005926800310533506144714225765304323231905336316657948634775254468811650300685215909827396744269541898601453465613093874263403411762732904109488339373406600746964963747608136952650568727677814466898212486348488249690546766869163435907985227559736386348773061679181439146563132764612001356816753417500050891213873108346603406548623377962015094503520783760058879120856995927627623209193817379798255741887038602890058987031956420036313390239591645857164839820253189425335178390508721396116800522072857819872580342152920616436226954654031609222640840527399666955296193807821559180401829749253548940859774514843938410961327735049442156322667548609917770381140017781023375713073476870317511613942022174104063185676009435635114613064977302324396093273477711198432469799272595070835311397029213447785256753089011180519455195301146388449078489972350584663733094332408492200143971541255435537961182078534564827347153712548852302371015852174759155796830930273501216554905679122007802819672411394671194714919758644427530609815398419427765523077188280816208269057135737595206792207085087352313917503881676011457425962314896603606074523297227289404880992673528992671047299437711769247359714207576491866608048259287532695188211591722305944493378419263399678339943395930946465003681832177742899875346594966846351540635926518090850692453374223364503552336416741313130422415543712891389305578144088746052096681759006106751313859584125582576505493391863062791497776981895460615678540920510663561376102428069210090734078412243667282777292195494716951654119795658256271718188412122682892438276687054416055307267914499406476960992639232110388420879774866774611121659195637998097479527709340220613852413724351063422404677187729019643929667622015667096178439583917824865847661252182247978214604508174157901877444039201916649753043135481484036073280387018990068378037729720342412838349938560996344687501273315595097946534671043495877445591917061442692886026720066759820246944379488740116225080274759757022601069284978714651729250906578984516256346378796294120193919279757476226236500835219976121834739596564891666213479224508985692311336256547711637904506545500533181981630590343647695359341908720826261243318179068032219064087444258751642479612077551548845583118649069903634291786432342353694519832613861969480354432009111739882620504893215589996165163657755221637952887945867826006918277815413098086314070332310651988269405195426986841649154436659229450123821489388138406143471729797539344521281583162581854823838844499206750086921005033927135844663628537252119938402581778928423477991604347311540726628330250966865083179425273506088960597305474583450013155105792341861195091113233922027699324016055428544155236780818029562082765938897150021830588616870755277603746710160107007333929253928476910526773688042474908142135920209906456738283973786395313875369178194800316344763478582567353722414879599550793022640296009386942972960379410485098000420309367157008428350356030993720437735942442145944663024000718701578477696588021733325958623115415281426961119028146593001258684461029484082290182514730192944787803307432655933927714466504153463951069766582794652225014517148419448448955575083064199940169990263271656776122414291370292621202762786139186821382473337050566701470824795278523281918702573490863596778737733820626429999628371868564469389852985359707938117096055025873319687870962090775884364466710328079313117885863076973770474816216276378826206830978827862139685781129366321223804300499765529066120044734692794069571847808963660387264914791548313866627865127938705414484405633556423201948383612683771479550674195670843853595269354082177604154286859345832955058516279570363768437497000861556270691932336516735495640804267208467401866784637460619593360683623244762281239188492855196720037391154302948880744398097283184464609732163804971795842031678693741218871978743472958007646274930772570704607930273555338809730776465021342229642056490697699794067426511028575163987348855918798691877708602017279796920609901073085608863133817281164894698698275645875066868482056698702333126077159804069267531371581109220945879847507617556025984701119878934247967823612284823300008814526606747628175625909624896657737059647531514092487962718758206841160788960349553052421604165417449685885496082783801457078985590817778434006403732009639427947575550323768582924310833405721736794883564315501953597336112967825436548388751456417429717434906226628114686447161619323427117885809233218409263022481425925899778199192480316112312839574097037102010308741854381678320663996997063327018498773180993179169209661879839807717150302590666097938951039628007601004066017186660695889303212272244757045687950798442710561658509688547788992290730977988657716345514068279098768428837826653347003005094366949173780313902975770794554133898010653396091238163429696590920668371758287636992936688651367686844469985100457313828719299688477785902706310789916685414527241575271573633272854612957915995284785399548945443067126740785289413554826081687601800269170018744619212104216962836770668820360276236265135379522204905633400769713078896387375568900140790047009390033909524360009795901208578141553113136132046556443125797191233441549020672016244012334263962995289921081862945500419085064204977602705754478519823794128853216204402327108158910973048823254916908954337067130726080346850622402122460483199970387763312267482185877599674099437394872635188418555184055344471361714834079037376174505053467856237036341684127906644418920759540541312714045241495164885164784896568593755654787047716728770076960291353529873938406366512956851340057155926801276665941976499351001278191185875359537695484938648658118753814649384443109039794537657676871322659698191396596072154341538542188379021527666039914855416339570401139424974864095958935140052609800187469075375539582224416911658943422529548771921322018992465666449152075029403961802550563113987357241239001969157401845408854605079637144211763910445330942941491210410606470550629964611476409928061184993296448741694745786909184640636608147891947420219360105582369787708210136912906945318533737772618333949832417319666257921793867447974642328116022921737209225813476013018482836400172999853071227613516933428558846905673288230109581374076635270173938985426064545491323446318573154342627821395607235522071467503977145619436330975357217814045325103248052763926156593496704534010940379983779667918582323828380290251904729900075609091390404716243279278632196104382817691368256609094093403958628406287206843945208209443576513326160702841433350037881183815496307474602695413529154089238512895556732783296117363734625103193157532507919703555312241478912408842805312284617830935631657767286468475971251525345904404561125314399352468234339529030581070326782624907263005875353302804185272946265543611058659217371591766393471026979797889495893522217272758304288464281519287359326346489752741273170761845999334578687082381319337934218447413877484638693783013300110828770688100777574396510918806491186030217385950555333446944830499889363725437032560572563386823433893037511909781651572168520829371130442951308669004135505332183929268452616899154100566768439658993908129347908824523397308745259026322003885144666436836551958038479312198360494495123919342726089410374995461656754120664693204679932653634619016540095933863801062277915733242655461099269552597045139162367367722478111050776539783152138098064774541348990984557017551387617545101835305208261436131061053724493505854369398373123500860330581328504960024294098807367166838256027350297736945584941952110329254986875104554014506209466145756140844592210109480124318122305068804657800072376193246986538107087745787479955395020898224079895194067994314222691355309927039174213606768331066079309365813001223460932826440125050682541381212357103587961067537710918766278081629396102924938159408679449951085791337476305002385259415501514076951993578005072044717058004204235584783200808635300851873910553240042831288871820921651005128251601258653258401935712961999490014522734405164915706418684076393044156130794929189811978111606366120019560227804176224277542944605493567295378545616992723609299997597453422015324345166258875122214753945716976558541381055550890465600626938405942944831567845055311091749484956008059695861576765115486280614367050919574239329891877012118423052225259365210757964466398572452718098638678852343273367085409914587003343151414760314539510564120105293609117027095336723933444608488460879506900227829660852723049242878528638400040948095474596330476759674181325353120207819146899112455218772912270412398436793561866811643168518115463325135668336874270310255247053400835600389826255260351841990347725721538812249395934451691026521820706927126821228100432414854546885785690184026226954443544728413075786107061816020814211489261170160110759629113332106084415493052548145751394718311826741170662829659974652963109338590256167924842536369693233268460554124909528367596153035412338731823697286954447420126989572908530897986559351544568203303743725828904696436612730798791002158846562702313427210744628771544886210859741830398017190190616561359264715515743880908818919083514063773128790835234014308808446628590476195171778018778773152311229974632310394672851931875238636325025312710786685101793590682465896869809526761080709325768166835350254744730842762340062047316047986163135102152163965195810635520442088794150544227518893659386046110774752222007380155939266946584007795938446815004917188511928946896108200307731045938281119118055187165696804604652571193857211367981944116835757958267338162564462698777185274936347681627207384334395978581527025703416662559240948507569377201195485679430737185777511025999716128854027523273981161683738517957506729589239084433065847805846184676527930946413922514168291803282488654189129653202680328194695973224537493767335288215288738922209723002994188109154314338597311443642056284822790357898346062045766826676938453401148311418348478047290311989291912907101179783262349119005502541641674423382860633075072875862523448541800309035663066367651412166359461984656710203907946221417514286189460279429466854793443985350972366526610200207990423953799555510255429870066226270497827363783313937803225212550939608534311263981101756548616730204042123558843885328836879262752975394411154322344344951757061136474755791545989092632267621534051707602158603471635512425300636285471863006854583370415299432209553870843349734145423770680432109757967376707109724978417651722529889512742308835965847701297034662919364857654561002209570908013490815516448275179231832116977889998161371652206260373167965499404877367866640774166635441202635446478430260380873636890254946133313398711673704464496196224452952442412363289187271939584897733444557157097741695436007860649719037235645087586737034094445010080403476160812945601481228597542894000407071009393932418023763366473906428344819881414261086640704383769134323343217848617185251365175550031143379225397634011235204524444992268965177009418462057512951453867736738982798527413558266350329206857859729994567888767249553682731188583914673423907056673376590198700946837465189482720994482893737496045761890330360463084753265047177504285278214172956714745346599535469990132653662367219073622455903992986714568407874866577881969517086397903384601815991971998716899384508028087207371723799973751246264645509296618868355031228614568795268433900511282505419134174145477421956254357004126429619211620907343024442511265593205817870250539145638444481898385679777902623387256538047285436119660753237318862130861364284922269834408026252718098996463681677999526238881151243215507200060575785504834252280073718340383969242264206079092627339601594855562762635295697579663680700698253370353279801055631275563720882607641509891118000634542249212869498202832628215959724921931031512317018005631893231614064870855144619397529727282937067601296385956792460811318344353185047902269196170390391245454131480600353446044051172828890722755813646914161330893591500375032866560714853473595068801141296450135365265699000270137257120655076246763565789921346673394373591944437197831515726657789394897825163519502292891076119444803749296176967683819107611424901960840576559401294017620256936014929420006393439943651847100264193359490211686034537611559485600881061435891959536767241275019434450238933383412647384443565080620294036591515409407587654106816234864407319232838336613137901757930065333959970669871646564758866098831537312357485576345432745379126435661161319443824253301457312043558891380836105650736146680972054230043073365912689335108825301307176389292338362604141376108356240559473390438945073091525926235534356965385712104214352023351774967357452762193951084128100727885377563553583490179914157329162423455194197925846089933763462435372944033439879996543992233879993041279290260048984957748190987720110939884437481486083925720360923343208166667637625135312192631880002763284521512212103708381791185673780041972568549319415470595983747424756211044540964428678059952606981950365939430376700082221350733976909037565350346385143251033527968513138081815575670678037946057226899754442787257432692406222585597398374482832670219356996052090097245770810449077468349397997423759800606949344614951266176536763255787023500426653961646587461293024451958114121722307760049395388828180599396665622028086073855558196554532624976686651262671758873954831438341853452993496979909465999508779935322323003369099302813224562358540647701661455818476494153019632756673840274151150577833495220741093621951598544015430547389516144752311988900524208367089235987664395122159281290849737979388460087915575009278734645396209820426975079866147676917961916038885737436653221344253054756376778551232042242472682631670440580834359290717291657695550950528057029129690968715868854102430783164542526598845318256721217740453200656561982837216766351120799174614205483227165479420707844868810199555746704855454051364631406663236857041165221209602635494144468514820540688198926946186553549590957181859639845397640027811955545274219536538880381430335865863612074927627883107919980783457690563002623938521707086922468585453101962096107326423702453411592313851718415184859498910361083739508399298596023174185674954386487663101275372050106147004480956183575610407518252645138280626534788784290043978456807629335822477177787075181902450812272605373968261897743922359731239988487206925956180902791247926801250348268761788064466106498379347101949492652335964343650834267324279064456793804855592774271411505262287291950912464536262253461705410580446079519450531075811185001943206905980744742656794092118888323138889557900646872917709589319603836572992151344155192150442340150404761249459791517573987585876449727117971426354200031559183549634021142439672954942417155975090681690488213811993233054322534748851328856647009981024483227102762667825470413256986542947640443020255145225313708786321158735392637140531833706888171553817203630314195670857912803164001295325104822475643471144201146194686291104724144332967130408312157676661020714748811113887130624658112143682906773645006272807233166116669962315338197299816865916076165150029420887898634625202927853956936786624412759622553183966509577718685286414251375194804529869196959359553941606398401950151297927957484943454561385896515130099206604881386180233202543460662501885304302953299278179973497758939347389387702277903205870029187835841135169880730236219571103867580625904837049040079283818009991732019942226009780030486124078165465056254141857605874108440623184775353395989365667777065469246025144423264647623628001002162292518993489423911704133590388310051588819777443628276402341186864632978922381916160154485686774234909023248213027113095064606177554684484631209208956202597923830112234918341322712842998549993793757898618143819038065894351697793163665036869754633059536820887068644887150652731418098577345197360828076707848233791473691540970306397393096401301400711024611251395204034415675500246578472688066894190296842595937228277253872298161595558508287112842383478716350155224351449900079977638935865799301638951749131354536952886505061001260332533402430216412514385876193195425408066575110033228302293800646517828157262838840453480752904235890156529965741056953758362861308655144002320035529805472582837042837238541634278972081579734888099534815323230080646166394212397967131022374041385167062166975142956882231845850995185204215630692099811602233767593460793904956223317208117984697367282225401758809078644237974501154018662106849295851732943866985501840584660671715111862467410833188008991707793811824464123710843821596833343948834725186446681295703546422597749912728162220453305660610031382007220536545709964645354336352348382786730802495379227034716288828883113946581210291156033439429326135275057131863049919411657202628388408067023479552625348083040544949120687604915407735721810510985514436370247634554643749768983571695999623166779265846654721698341991833857283398271502556069365309773276262085203208942818325686323290796465805892845458976439264628844535331889568525936543203534042727239281488741827904653901570258008876812216654140689056750803335940963525293022124682955815884860350534091215549453710416642107437020076981570890098001551719888188171508208564201601032112199290105638131649963204431668725817557163035016940915287775001042930724009357255217622482222032119578452640472274715648534656805069931753194006802442398044846854481913739567116928595579608307068779520164018864280467550868326552971047673728223338238465390002561032326140871206891930678764916699930371723105923440883870985071293022416791931911652972994246894719364568367581611457834379451320273660940027355353381777365976531032722579440642294495745670767125961824265440089702298340831427423842964077799501423444418101410194717455231176653703261405938933238058105040329393938998595486235807773824237820236796322657726363269235610707022485284793116484067553088585478106090380917483973175998554475706767720695462341246167089189862991500665097201643916743357186136912288970941777849497606684231307115870019586216823193453016774056321282854297265216034011668646564240895030542902673952635753707685078579391869558850931765630205280787052894728845411883942925195150812296352699269225041484411034461506566742853211910075413636178644546479955513180115776052773141944120107921690433372226869404397764033064262848992296681892431329019128930467754687932768974629870443358889258278342005506759142192413884028588582478940902210019629511144781235329841001634841621979508868655103586142557071246980617348955132503674317881845801335961325610340134801792900916044259656557317253251746042916594157316387901393502663354525322705674042098690936706923401878340968404321868045428811098917177343924440689195633242150528232629480458300321636890566591082282709801642410175647445364311428698643128321809717353577549528244011333965050064942215412022635358657868411491134230079349909941046012745169764136415678326042882373129417300196259296177019187803496510038532985668783701249861691032966444001225379593795725452979698638014681733644130851141715319061475143613040020135961845697853133634201923130827545419959796275973144176917743306173482688138241506700600408990161634702667643277342791432634920775674477511512555496454067485809987226081314139269898628163048207994319322684327737601444458776153788390543284582033464970756529371094469066644601974131346691372097904174783633024484476940487889376111223624146818766054341191159922117443499075535618406670611507064556609901898055346429779368515085905322095339884394048439304279765480972132580152822388596586688846254965011027467548908428099623269043505534990471868843937428279740743779331289474065977858951796058151256743091831093567012017288857763838900869401219687377482091661167874946587830439334247157500039582432602234102890269446889153378317680068516175689758445025584976519938077795888995333927458470512305772067595447901533308918304800797443604074954524994842068765633509320775276684683071356981070972443427093866010442286765595548709063051452230132680167532281691428704504019050720230635722651931159049576684728006808272495411054959168597693159928034581243651339768565753309129663703368079141409891664544902213125140074535986909932005626421984346757094428814736172200089091586259257115685062257140603300557978915539800261599620024554929529080031743534873741609648023992247774012115462378637758790218498590757995819566711815276122953630020627511474050895416376527551568605909938605850636384934332987348409921674970802205641740504287148276354599311285800702848216775874990487693930070494916648456932495687635060435221551160769979735905539743642740590033145638123924410300965083893477719564697096704390470632545064223396481771199033717474344591971923897428202009429673057123761728516562189683980542865534065416894056705298981805242542546593998035488771080179871545670081259875058739866735077445632967784279112610893127527177424164136160247010542977017856382779295527971941132967822484474590774650546581406651241698327107473115058448511771112262218697001429092750779136526914782762367949095743241768463829147281255588481698748240906959140579890141695546393901925933757503325857777420700343180101991913117899002652356586233407845984676684858246427509659163664799470510527557450696086834459548039134255562747447566836106232869083352712267287756461351325591628973525248288677370282942357913179349640394120297732495833808445846885122852847974236064844085720749113682563805169170707495739003679664124421537048509654631863543783270460585428904864452543580924800431997702345902551179718980962456013941341253062889108966003844561093332349538566993170547847179339052251663957868525544262118651288641458398600707257405696431383720246832956306959008139459368734749774845657319501818679667713196630248746894778170974208465227587033531586746208204504446656120141522207731303375883255119853431384397445455239732996097658264013499475270949893866059721680206071867686650829644962441791604045277334702251887421549991075490081629301712138283810972998374790138234330452669815714184596205726824656877661626642485944091184594342188153878565127588811211960511316734917121280095447364781652122294878321637567550761048181181657673215439155572981741182966009533572979076881878765460314387332111809238176438635912642090735350005530640064498447338098642801544418594469719785329926539656237244008963160397501580520954837336805837161143751288802564848378353695839968567830074244582382825195624022673672743905613904632195073149583973061714071295391646112146906182379173537687136037286044473004558073063600191852930572660611986288518497957180158895905372763780325443697768353624147951519606547193195937326981066785918009817670852998016232527654366898790889487008682783287210640388862064169181096469117918113129617909056828868168981356367444160662586644472397921043098545650407834819057131475781081443450251427523258381962149139359825354932176867272364586162293150297355795054964090725190276882400816145960799255098987196879965595840670226483382997084251625210478147535220765828021652430839028257193035251482072469657721654183101518594268444009902656652020263715699162415718851769445247376553235418460454041179543830763877101993796548447045711102036714096126081112908485141044692345545422624224998471378537796186863545297466811825227195208053120269389809276307419821575682512943158500893069689782603904105742543361495400302628505769541902986562468022086722101080090871359746828415220948215122575947947436381720516483573532035025673401537072752893975683112165771969322023623101601947084873229437188026154621901501308380878586714286548150750522333771589349198221393591307504657575566939095613911097338703881465475253664525240833861876531428761118193967972062986454318082130949014654964942628524561436687154586898724928635542835850560250584811028924065087914616123436435590546444624077534518589689601216107186532106502113812238388261170429060010182471976248546050278880851588454452569572699085279671858552073625599702553514438599134578921845926227366723268493222488701439394576116836039450931382508599533438689123786365932476766239770669765691087777751425039641871788892280197156721356641709881114243219252468868847733170229739455274864926610196533211391392858941680888373220486926727111688882517273834503636757024570178730193259505566364960412219774366032249731181330434525390221325853412884076148943510194045791236350503825479425464890006370130929570956486717606920709623612949784459039561695500860351491533640673655251980226418653226429978779543540928296398108308648259661482172669703474518124681607584114664818161498144431118454720832985579858723527024092944544485171652546703829758824529618768471865349616776538050601427208101276027505137514302338754659432243844308019156386643401155967355508857521733729415351809375234142748704949477192611218792272558716459111723792270388733716861678938209725211846496095718996621205990233906935312226196414371428204418172149438380289629165464496954349767067452081681380385855106598887181589912520041107770290011513007393247665027532281394379200488047363581532830522883388718888495355254627867386618495302220102036095696421682473715062309910492527984918783374633067177674470625812439511352604445866741076116144276460585072855623080941129536339370969918582765203274452177387368027910007826415175381574137757551528797227744497212985060235883008514202165957942958770808521233376678274830722394313230766871263081207823721073536446699829908253825788815271729121570169239045336221056900185218386963242178851992896811273708714403646024348880157385770582099865330031462329487626161328726629014519352538863706526057291404246992271995641274466185699445087035331684979754918283410543852753999214532479983788854976816140426482235211660870345753570879116312650885584603340653177176521978983270917949386611863740065116842332158164167070249684052138202323858753417214636477911313946911025798879792640338314909993738246408824061101242435442328840058510013740175465589482345527782211198942716605825491002822822583682422479277541389364468374806626074850709949478739040092247795973919055397580754451534065192730194154673244678231160786901967703240361669641290010684266723580692538482694239577343999705411888205675913125959929353740485240457812070172285886847752191959406918492095608531475476926711935223208862289178385007646797185822693637572064631965115842037810706127283467775200940436829255563567221900994959248211129896659702109203723274137348039542344194201968007906221779822506494209865401053631969246285108369845530106114724352558709279222230837629295655689529551210736519467860649538778953078500102660829089854560476687251889531685902999112358507465425459275742600712376287612315786206182283504742147083525557089315363978921959230735042447192589766251410804826434074783900705437926365081175186048205358323682129022243179681039187505696234332684471226507327875723909385635307231060146897237724725529814057374750080672799260920089366867766349990901027249487331010288848074010468901039462500666574423078586359067939082354937843837561136701630221888270420970059042714783102691917313735331436988821472586731705828566250223619927665117724936297395804517474068816677051839111698566870979524652813610361262154372369552484951535829779269672126348378802284766257661653531943623489197711747861762799984060655401588619776433102906710505585755059250884413985184869529375870225980093949862071965389523546079956519781278299553450866493629801919601738339061941762002820811027764996117417308698193206202464286745265892306210295988801571259694126267110934638765459440002478824415174342489491531886295856633103599961201455344357721909104134471959918732704225328054152673689840740177839297139444432936827739045874526593550894186650092945212508309817782737179366274619498218848642101605369650442226202942240728048934196455445284874727778973664366227739280908557892851212273901230523380084880591882927425560415282503432005639075719367444347629328514638108312708572229648217088574331147043078151970520925103826604799528092535115853324261230048979483792991737299052303866733177685909976575384905173811079916587124146632201942231875822227981190061518987593158106710887375378411645157642736755762196302268036391973976938616620340645991709531000725896855023833097105224394895867658028569567812120714869967395912610584712321182254346589172952204116943896956562171694991183600468965160124026327370188755096227040440779984685684768034392616178959819677932829621327022175948791799654409636754909625973904545928094205411087002269955303106522791938479359189466667697281145428122495407631609879592666896115850349206055699838695726151448965091261388213509514636107740018501378558914877623760621665105998515145187338346484668775936419096323251469860000377274614470913356461391559973475023218663697499734959902344639762903995682980329189035955855982185498866310150328639423156879413019496470292122121170246806958600508586407226429546169593817158382666435499660564417358794462227269204978343903111560520578588115046228917436294669870632714014084432063921010604002834681091861207361706288090762468056753886158895848103099963251308469743956971422380239704443939979061092078255657869157219938077167751015611317321611246994631299121862281844296738641540875957659087614413443209655764334232334307575059977273723818139219764796540992322433037121330665568660560770283407929098810326076545598966216115334390624994803395918254729702524068462874072411459741070131349267395733452597828645879427568042184748751741606147649770950032907899267380077746772472009533110226506841277457177173718968380861006552936545690473356961333990270008880993361241704391254199517080583797864561679205020333607299011380743058228789123785887574220026549086109967002599463222483157000078026901725042748217186844366965243081094111415992603302306137084745284671863075614630862225311637969267128296958868734226482557646375666501497349240943239471399808318123896299315019861546618917483798272295629491350159825005315734786851297856687326158248624443395948886474711391088095057803913639289423792098950879242763397656522232392917576798044468747698032632608072804670679658330664988701171421546919303573566987066217880649487144389146582427589014126281794157936354256762762530333665921685291723939999662763703872486574384546336867762869811855983709462688154668539296886388113172857599349283322772806124780405900345432566335883368150428730431329948417072080713514717537546404902354126431205325080248806682006957154598294250847181523356476380867506093783656440282628581923918101567584513569265418103426965321007705939412266120584737311954865240950726974612067444568486564321361769686221911402162085408593659596277787550084149535342534824023319357607364659423381469319770859048912139471130463694913318332383505091330197262244698820768000273744730361105512063022208118984667959959961269474622948430073477118996751645580074803499558870513543404605680353940750055671015247819583508278312543474369071153742723386379990465075602568466258170150303845894558291359367402744231621683869443528067903262342990950453920202102725920996628656552509261172805734272859207301840755554913641682770382445989387220560649274356457218208588611684080395877525255872602583039369193889213255904045631585986470650363003795692838245823836950738649256759242911013543918577555923234656082245395989367896096083738675752729049176088274972938880901522796838179794740255525511365954751054925601471126688096052804153546512444217764536346132845527061634937677859963325776246107449214580562108916745873309706835737644415065975104424364052428552911684949865460450898818693542965418379366234029397445772656255206063531529106224818809805524232478246569326064695318233709571775380047920669918313117292013716529860508330146944071480690582061619062897352467805786486517749968199170801777929460468918183357109933066806991252754101665837445680992746224529739933912053430470976160252945398246937318092075676981700705414391322950784436865577071019370945054554271937424335190737494227256767479599846872033595568138613492749419819750773656927584164567477126558286889739462266951132717772352749465499682841595418596462331356827127092041182663303617600268419138830116610089094071443401250454116289845265166460632523249359649606908321383153966692694099698579260734469732412032465277111718482620771507386151191355623559681060100243095392650885394719965619528833452258836025112091222679045477299936803540276592263148561937142078980832771727856573306711941406604868214365555276867581621002455867902031279195846365759563665195150007175354385682910179362235638342734554835960200614217761029724212045853882649403690650014773535997034176866191953594776598649086434120028888859434026922713020421941243599382982734066907150482006090170324067535114967845852072663777725850683063757473846640471488245474335662467820805134785840739764666468181410844688913230115831582700897557557999203438004718473593007583199144798733155523041337904081978719137368647062844188250800602498655103171031496134758826990480620557810281528327527755177479011274012360481823298828310962548494886831282982240479750110436486969785073773083417375734937677010873947705602610515145479467177009251027058071621726300481131801520363207383335345746438981119739070115010045275235945491198542344789460004838790820124648554153010916448633299044147386549502656925034998041087355377598099476696608264600731342404086756134950734274986248911059342656540022826333484678865346394768877958797906628127180671718330149294116923964058556852271089044464494178274834241289094651456177119762776142230499551246009021856350110153824225881890787422750879552836188062985577795353316432075580138995697844961985873008852738967577032026933765861438552414002114501349121200874737035991199567832449397245171087954984794570290232846063401014835098206201559687802342158406621603984939289108072160205162984090831598360678117933351215520461871018399664538511944080465638422730325479205367497396567964243842332025600269189930326982703850217713091023669390248359447501823729672588112374186075284991097106452278088315989249268214517495597806373731205689240836005760217521331283462997864982403827919773034758098736672813066718832814201776072223488051026660897093096742444302809357842023881265067083749576537700433151847354989419785484229117431834844706530554331310157331933680654133580555314199557844497448951686283142732238047939444668494036229760851674551000776108777702410504427439718986869071251671324215738952622045254441904562490550604851700050343478133910139268324124559169201098943051764977906893705407299930545028903852581873041948563433156709989836119409080787840318034803042996938174155881355481599917380086568171658829890941854041406025566417264175333808258474063525012319723541225241300824181570129095802860311122029764857813375805520685815180823429466107632839677549763030275480438185592736143454717872395130166237157036115137989780854984441379180278506428466842012839590533371189606830281193130278789698069289305193980967665352963781407142490729054644792284973584962854476515052817737376189762954766395880049814674533398239649037679680456443994206577364587474067660518813414714465379296451930357514311429331591227577684545441452372931294989463548933541776675935424070655369425727755980351037206950188124210078485934866438214049164113030512061157393441161245078542008659610840704757515797735784455414252360908471743331699003670891094194659010751996366607599171428155398382546902309486598446368334016243124120309993653317263635153899037825942985744764391614831029580154429743286799962717903256427938075357723781474639966347008461617025222750656720679581305180109583525967933634083945466983778572814187921493108306162206048957900912909326937860401253491527095336825578063866326279936309756318884034835570602137335729323572366152327025010052798300688172528233263765753777645168877767767331515095790954651143877255175820860783953697667786211132266090056616335877730361707359798891471123443158558183445937373451516622319114617893593293495519332846671362568769599324353564056526519529195043495059327509084791453597886924720624688424533896297579648958152071160043264565113267209041771389762035319108189255910319727998849459609070018462002270280278088283675230051259536229512888023875205350366720275764898226904197467306283695170820762252461189266679695140009031962618016236506967971991881948104869615547389158413762227477335301898821978556553935345188660145676657770085254216903246824689363455948384072862861430489840259674172001975697972031722046564574328982450994649897781279590773281105804130742044441134543876359332130749110737851736372150966539169287268158613835894631541058780381494000852589498707695052916942863452828133701233503523622066824882290984832851599550221380667221191753787846684338619566386952591432012004704489075391300655286737734611004431344963864507972503019873474573807620182021248297367265856058477271792847514840766894780738427201063446175012525896211936849204186054103798262719705345854545130494561429503750689195717177130313033748655817095846699238271555331303062480133730060055696468509079888093992660497318164233271167815520252317474207926936115140647353078944461602777955631509039462624786314332365699696752020417083751458604674797259600630611087789531596805702885053994274307361479311562937330023966202279991876761163772770171135592933980232950324955296286826381138452016998396009424351186159838686002931274601308332392946243286589579371449768515098647453535894738195442782716689697568153949140219961536476542527637080311316398180871323180351762694851482932968787487164422660353130106323151275599140822696361023558817682174400590541127474947832240893625970700414519719562629547343963162686986800320331637109871459261198046457995307183792681334916445000099131947565044843870189767336662496198187754921386708749898405740829716658589154333766285140923647759974378262970483449914826942151904838850523006060622303831475531678390933307607819947015367269940173019458912838600812544103694949866061790668693222649355087431264998490106441088178447182585456202586753199736702467989577482381187842202932299226744323116236516402614477049009452402446058178337474302167646322850811301398087859071909755996410102606300340798128259234572987145170773644518011480076490938984778072867143813235841042238174997945976122912654654388598918272622474001766647780532886847964635383433246507742134795587462501905883090120401087510217080169611383472107390317280330368351861549494883087373365264629083308496649353849925802504222106505821995866921948006843753445461282489126284484264830652480910098036404988869071267437045616862335069889193249180694464106381815382815663180517685579019682746219739634862893133757902372595540180241954715637917968998579352814177175760300117447451476844179597195528957372892559701771457884108009984012054347585261656476501253071841054828542351503975811549930661396598917605784358700158584822027605354966920691267182771117924339895257224443365799862985564606268435434779365470930475011101015009294394058391754495772541447999078587336440427266225177823822680204853563549894280947152537232229099886490024870309514221759854162151313435699928537571435920149862155150338026993751562186942881155528593960026378088952241732264616789719612540705885893292813099347774493389222413290696836802582789175445595007197925477898890840522093415796709877971336942019159970393441809246652295518984914473556957858400471396966448837881050952177451935137208756477473356724312125829807578883428337794522999724835674927540795748233246312633136684207164668788360520098888006651128387376886288416398020113548500655207851047529006326885595147589159754966716941766658790125814483271537502334010141607763412183525878097258471728918061628461682663285910791663626056564909418790309678665195455850949404532397508900253956361209636016595961153407100703134717624678037903590291466859616047223686286650487670135534862530913805859661091655119084241831583484981203529190989069993475875024755697121304673994894036146645346204066875641074738367861569216629862732473557805786147800208968414223694626120238947598390692833898536440692776355324802759662507334750347492388800829360868458969378184145884604668380804120375256651527122992733166311114658376473563868479685668181846471906648300332170961363661164382132936434934096959005594964500067055440770557655705094237898621980803408188945086495549508645556099532006878664676882436041738873368107257772320876749439066638668811027292167147514685069877639804590169514622131277579640824520384945752854054601960847244791398188697525559778793746231775864155704063999302777457180844361436445360515400139307428254733082883231357220906458990106947497664086389843917132868319565936230460219514445364401444931713305541145611613567123580374589051734425626654241018286987528119870737238554859827127259389869362715951830713178235972951364891362682528066504053749462143544229252054821893320470989728602426392851030814066562440485280918466389859616936792581397118631709475825606013027963245756602446005565830617913909688852748681080156279669215269458669101050816054619809756603568051288299578505281904963303283014926121616766390386918802049718785131706547339968871499431793578424037392618631672541842198913616171455524094717296652010851175207409669526774344562755963660682428854581491863900300223888885235022731230462372642136969806455807486594249365339806841163082398322116904027765252753619625499159079719934372364425755877887529409939547113950718520731720360531843335859261529846918384717498501600222960366162725028964141117796721852509279657457258090543716742967561634584180321724604818269086357844479996389332455704035477772343045831549565289268758359999577760821112641107769071903701460130455020790417542800757673840248092061470977326927356811180869732914663482397758649398233304795135544166753136865749452661254343392819034711730140270127588426844347868366899462551448963446199408087085424365583678518009870737340007052766275715855881353595552494885969009023909857270920853568134722212883128714841705657402533750076085685320264947656401825387870871545161657095293936181708896983937372980918464768739668071408411998880027218642464648097658069047387651832056124896702836888949180101551041645941823448446802317320909383650063123609395615286835697593805551446472985013953492254389116203596101760395487707063663579350735703726015787450145737950512571657308914868269878177201730283095351741800023435024075561437233815963467989624299415255768150458921280459016163653985056930706972414126766927192557227057290122538531810200498578297883209801779862882202926708255739007145886729271907790826720801738758758790668733451671291931894203066616059405247407001524887341624969114855502539266766968184765362519599181204756069644199229349555285125268199452398491017571880909367692443597318772828641053133101218948663846803479414649000970346312158488377096037988458137017697529856142381548750584455839601614907516578457301743312938448426293305195404437381758206088352104032838448324195898028035928170434875662398137892698348285293134403104088394618046953702320483779217378006501922230459065372276265700524200362153042363512813999378954847199514365237397918583463365434432777849856270530831616278136725714551868364654699970914922482805391567168385482125455646617241420134965214240130394520924623078048961376117524236629475818408953700632473829419841060590211587861117285244251216935732263145819655028750057164315132170228158504648249350560011599591185896773617028871984479361195278774885271616155316867996247486787542311718149975265997319129704738824088340731267504740683742067928276682419711951900926124480264855041903416039801395342862492707381081044633969108575785518936180914881125536637025768378296082042779018093493430043769694903347462638591665355429517765134640684470678044711652790356849221141105698048192862532283822556653930761387102953657162715919674509836126370831737121691448396200099919854169700830566290197281604033737376012119252095989238897750846516261428939751102499271531575506500747900459570594154995329890531546266664298605380668465110855630139059072950546010788994703004618587396708576186670576507003614425630090201120782266852796542896168037104956214050287284266005442748411732080700117400528530561783393711579235975528974408511925955054379434153386255780298793129823929105667557993189059348933315251491033422723699701004401361469751520227009419837081373278195786426068525188132636849817719531995585925272484585159951291965787343861529882143814205879197715665996641036638602478525677370901926537917025375489729577040187893869330938323367934668256095025188175276470520726291542931954337879619935464530533651338785219841831250549769995987435971190711478076345008463954930810165523917626414901558034901921905188066252096886833014400197780561875462914530812035959549599486055517900046696475192989950244956830772385514785395262207247296312121526886081882701970032371137104749125527756173346532125734391556149952348304674794201538092698554954028883361006053901175651299302366053505145503238065723260825243232461518845508821997909500529189201344240136271364519878530376150501307733402274527880993502636518220160671614490536812072509125487618189877716990551493145688402392202709799593872640893640568811765641323413391745811658509546930305880510705485477565267092785632816422782621904184914101017447130695649830640837454720350936445168420635146245824838628153148579102974157549281755084528497260426053326467240627313990596832772974127137064546497198566882218085173676435927106337837479500847323823001131556567051047629789958278854440466574221226876177416808862749579838414981797248332357880903148068809352949729784991236285398410520506649919125569577821506121348225353534034500807312814078380161647946828660511716411638024203912134587102024443245035303319157419447251592478320264026799499187266422729603969676158734896625681013016336605617469773548487995143913661635001520776932465891343627926309865258502067799601735636735305920049023508573491375379189488869060012568106202967975262803032544463342024388520736929032253472425436073505802666740861028653319301968693333529806965240517967113140128111235409425372830051886214216252058908517172224738685300765643482029558778284407049151471899136322552664247356511530196623701414894785988542804379077237920029097544728088016044717853762028448377869377754957630498355739985591696139653761654206631128910824924827085105100175552403256995368764941197517785062085319324000777589061676517521836263685964371040853488846862551797989657915552890975749145230552787581716185281086140698081080968610730739049005501172039678415623549769854042087932146728292699558147980325461023808284873803582553297662810853115955672501553452236853639635048534024939961523779469683268204121953245583455466169682549551720706396563871223435260089435641604758493958255634480892654572580991096932489817469280046229751349468551703158730287099152925711571771014354457965214981017544067332062299387787285334825996030261529863038385131746920825962822907497211753876256841937209237473110514006425154443487193325020916294644722995474255171098722113226542557446513524580158751790497545312719577378927601323487813380544574750029616053360521923488101344361744394232269025301789665567600964505586359887611396164071430478014251330631637252484722539403161391621697843478833659894188135076817695419328112017869837106913576776279141214891971699433820882638180840253171036592107210427978279233176427890024673737552291622340351763563000305036059892539558434288173784245790636470438255751796681855523469068378245183619718072281636463306615456031136575950806954079106727484914012176710709555807757163277622602018477562511626279844739025178357195929106269283084915420620246356645890220292557110317261677741130690203071499928239468530917605572524930589271617626554170948953191135016967237533344808096572854213746027901807884896778430810545705811334994124255051947070174375184672583128901146854289267030587024840352932791747844133799493261875444167050787366325956825691004614220617793695890071539208453282358142208903400787170901100943461821803427348895503410869557278510506024042061984666041424527905313471903941186834221836633378323882515399862883180120471113935820999354023168695033539836155748481711361805019016581212971047207196392500711516524124224099144664693101492415873726925911867673830254175168709203214563646197543311644605197063285616763199836311096335490020754876990341344221376769271451266094260630746422316430884905878117751410358148487482914654705539711033190401529460820636037405653502217825002834539151643712873444269212589201725990601933959781065211064434847324556730282900563432919260630222746561315765939323109542212394860754559718283184687062402993920604703005146787963019502151009768737354059869910177213262624419886360530129488114208315516678696205882439659556629306936099126389811379300388889080909690666201990614237161411389817761171622403406270470500098850436773387488837469799861595127947966092933076261149685604864076805501921666347379557214112981268767031671595820918953046396157623381698938000167873918234336926160726967154257716321051831418997201689554326677035351482506352311527100988394698957645196878000769718879660199593723159622493968081328465125448130883957020655441105966776172018649151073601036842583607191001225340934435984306886585391965911542497375571982695045590417203543304128068489242066311963850442398354266098892788786141194129160864488100551559890391867561552061224952294248595866684658185469221416445261778820940821909199093007599362432250914296363793694466708998685860858349326345348106162949439316697702209323923620119645047538723562623616827134040074150700566247325853174152136204765577643309035866138293852456474728813293630986388839806647947003478916601382823501226139617050865683748090090784547402840696495070253290734909558171361034587090952690894130257956221799964808541239824755208752619232417549159622192381339852880414232325977971810412724662920696068500778292577394953681174913006591284179838786094329611983423022725789814600082674893611730113955007265160553547043479849435427665864116873033025365170307190871691839110376820158789961416354167631555404355029349648003488091466708854204899802412134927787631164392659528315297194817735450536863294538044220309736734395491892713991265102037668073406894403852353981723543435794077390150040477221094222822720955693974036235450733328300649273590744059775714052287855882442946097587665877634262067971032954884994694630288248186244385230601867818665121612076111083072602284994085154233727761574318577157266213744234152537375284369782120323131461245405633264703906217207289457889484152193544518362553074715851657661957015493577227854938289627986125111189326784671608490014714639102339714172409670496861161052158383095918147152703996655798879125386136981534966675176148513678439450791333591593226845875377298165109297656103769132334371312669659868510576293293445190214172336219598233678609571005583069669937305682785921276202755375712149213697633164272293148410554690809701250437846727315792642053931845221648112832611693230379927107420388445116398228685812013387336951328228113259574936567245888802157909237526420289562030453360808448004737736001536978041825354633267276815559132664493361430909387511067807747980616537434077089921552809710106165162271701704413683944282959182024838061832764279201757884633525400569868883324830641144303359938110934507102119464496386072418430096697703759922976692847902346610551792519641643846773940454296419378507913763991483257181309012328902638409331510931435822496632617741069844463168664750680440522212778936007706311530172988057837961411814337507572351767994215720181099160670864744156052447003760907053602612209366720235280827901301934217625895438477430127355292852984044945741800233149912469866916436474389756276788042904507119461722238962469872346034002971694242179029432032405252131479256568468830361981340077207337258077177829826222231895088698530632708705155136186732740701798650121466183425689607198443571961974724361816990247599980958403877023934442083879205981435372261725921259296676875242153726637552260891222216611577927250624945805434213039318690860935214055327745388096632621460254655488523652354977858501603427075512605631220788797543551504143467278005719059844443219558357018700052174976282679885079672151435962917271339762889882801391426744130116332460717641111145137983814513161394300001395499423894793759624477753382702565741037572944060641912427946458803007317715450555149055176342721432595707915674451417140844781232344235190028152865023172737751907514865626512135461046905206656070003605104420356694164948404311506929255980206648888158322985932743509379701966294981041196645652009136236807602384259578802306316022107062330562936719741100071647052391840515046219198472599665437111618583946669488388842509296704367212074578422731897317883954333872469556828314787342395121641514284159433476691006819892835520332399448460499539034819220244959915082419127156894957439670978553568335226922147184808076661375615821846452876248479398113316522154055060732616317760520102868396295149493098483981507181376066362408379384140121208486667682759450507406893796558976972625046450103973857080076619149759975784417952494852744769457582885003162916171958076126982524573131291868196896921153209472845337740192524188573636317566754800532705219652040941221266452181960474737906286889260669083833768494536129995713068696755768013618434848189349511830780518973783214196158049774387377945336553151964395259248102545142812046957800112315474582126533444152327997217870453959070115529150045862243160060356126746135240358683139873584119838066541390469363172190360506200540528738779772304977212647774175129413521277572879110839605194440932504880388428889865036389297146318327848913993833054157803206859937931009212872529466644236733458882128939775108901517683071796306674002565671629076481020825443168318347194526474608046526597391306025831867426719433654246938187397967914212990470401201361607970765762305795646162272494638689626017745654385615596861355345327159663927338613534798264499527878224634112617585775260970075797552979302356641854643974867041018689996752989727887935509578458283782920794214953867187286049953574878728862005433259698875652462247416374160594880409140530278444041504075483610004640740853108922199644060371294862583311759386891477528400627074003377814481893214315765029988742495597322059055809265123123048672649158454793279034744862482679967802742801353869543234228386337433848570326565878360889917980155625782726337732209829351283195506404454820160673287047282246921574918937668075733105869131642477612862291695350493051151079198060784847105728269000874910563526520810801839877085010194345255537169695430028337830596200344924910233216611621938898386321617460213187599205425175820665255488378808673095231947724234850442743208608377338156153250664145236494733291654767853248449075940115771611467242116861738486974147726632232301390847710376094693582819760467316694718825499547244112405298914891874362738972545607931124956128758703504850586501928704101551384763564681675719448514214706863318042278381592404109680847188850177732518391195157603849270076545211496196815606699705640355195651197146357525947420575890485411261735510144718605289686573612252131830134946480259463948976104679237723672414952063837133363657304824047617515754343172434124920740403852330015108982691767952528659749816192302294495668080942723643984839881970200802993517384467128798022305835287088857251987532300676733578172360212644508909863699743443074148609242661654119301367894553570818787143174170707799719574295586429392972237980172281397909394845081817997233459546546065529677562419374781238598933698704978247307532893662360098489155769197105689186723103011790327696020298767989050727419616554288844144331825887652917550925220414555271531945692121779047789765303206364021617713718203328052292232642628370214872763429990112139936602340157140027723953835908174648679577008754785608934118640276461620710230784905273445484699615547086866865085371308056281360544193693526712402609405615550861236997980472072077288354911260708374239523935997940473372293501977078245365715996223365618049094278072729979957154357073569663188932458132943380468990009774796391068518257183595001598840841566933086665194367450455256637807942530257340274719485484692381224639579000731192699833407974451728981814383668624707097313148345695114154592465818288185345086415582292916950769724400111769720157026030078859608176670907095024807975566676152112119552832254871875584680763135667848665599267253004070356291167858641445657499086463741675409371254895639182585312064834294131511588675917764444229817857555165971048037884259151408467284967950232510836142797114852125734239961235449052742600559199254378890604404741387742082406639938526192337728511930108817022102490683492906890338977337018293732825198668766609121952349621872574366419051655536252229449547681920018605681474752990864315917107707579615589269803554703995538925906697502522410880422241197759039120773039208299187494416514514148577268953455803286928449681942139721001578004635944605192753579489024157613280346181337517780226592441582595915101675039732475261366896788557109533016171789971235518899755996323571657719898059933281344162433097051367257862139510384491471884626105709852854042494255995893422499806930159863242958573537358233138633618968057067860188081181298683972922882060770480004855867465028587512378958996123939192702594908347575429939653917594463846515015031985206114834095544957424919525164306887782463238173702568444783690557269772441062122950556345742932229106204366996135116410721651395688263482872685677456498698915250049288235525614195522644397000989565090099798407903637314578002471170061833485384872501153707698292600867066183580507680017804062886731156403600352191867915843459852995359023815586314806249345576613445872771887929419665811418840128709496636444135053402290810577100514564663322807988817858231908564803111353597371195591843523268936568336614115518427691808123181914192870298594250757315909083740205511847671695760884445867563316661331094857382106845373194326511407943831271869671264790458945628079623902612505115306600271909341001742596088950012532538678801322534323597728739746524177099776062569395170045178304252046967095273162141374181726982136495369934200193586819784591097940036281123088650600495614183151332159151578424017522454544031446433714164497654593165949992521583184114744550789260735445371483493018815160692835026065490784867551647693333362705549525055497549469762266000421818937035511068243493846703445516533225732586605889796700766476756130907000491419307822338031805558049714445622450305675264510074354775171087840027283993614081971770307521335536466035418866112760391812861942401065438536599921076808571247367944412121616086043811156573561471109254203294895200398261607262748055647910047706306985518531071395264786255315435377195638218064682918116067434075338494036001802178379069666742961214142679145211024611592856325917145179178623806567567440364062541416173786539287046936216946688902080025860867739112803106264524681200642744009217251193006639179193219697795400019001640301141476643331358526538672670411868462209270744997073973961178494403979076715854876241149766511642878190686747892197501620475639821385452252871405507571636777868484962095968225398504989321453695877037397269336867983995467485974089804792641145930909303135738369299334346007656813310446646730416440474628608616476055903870700511473812562774625050680732081943436434787964245991300299521215176811876891351540140702300815287398574303293462350059706924138421627831159327962707107018588419226496192824530158049747947484917762029411285646829341072391707546750184248605334042990264862114157926102670188771998770957485041414440882114098732837456498007404368249403706920078689561432530572653786410857503225657085978584962290506731828899214959129081805410832827210975100231517047031804525680268022268268193415540418386875963051189334029832109472591303993314500954449196718309434281478020303198596853604711232521936423473255699731418163171922473004944349840784304419795031705090653781100973598518218268760553098751776243968551909498541094077396545825314257714241017617174992200014961048006110626496028915357782610833184267457943478757277252590888564520937713886421237382875864952441372727347116040906227663709202372925327930637295388077224717949058666159965370176485787700396424934983216519888459787500367495585221628077674285446225759233551579892914842577777704047724412273172935525492516601874637812120144467070220373682835346425143837963270390761231935516132282742643438686752765688000891170535986862415762117478015843564332580713830664198135595626335688393885442298005981553018672502215924271983657379966477413132836705593280118448888462485234081687392295042023214174978976093298200360184832165866573244846196264718253571607669598083024756970393329712249264144875323534345966295443462395653245595773016682968978214941125586230503107051128260059996056274164484976253404645604796171649602614985961888714280294199429367155486725145008671722803902924122479839321554961518981645436690105780648232532259575258821417701369191609913461878023929332545348852255299846208569333928751084180720086357870758281891824345433121402660979440733694041655487433936280493298735853293854181669461918879809387284077965716181405643630864017134398119889054431393163509038055223582869301364695266273552092277158583483656037534390090589947960951733882905673767062715196796100270222573184316767590556704407163911297890299931360956100599650682531792611607938644044034825881375055377410936605012920902350134440213945300252137360848231043845948750201362492281009230585010292902774893453797313113890529038333463989438561297744726269386767092506565805264620623971272870439044883282590481107108685235072176032458849207438123687708022019138034272740000612025231853296695894785796802413623577251636468141061133574580366293658801867263124691605287359361982415763302744095730591125112380599873223983457448536476430505149784119187422833500332786724450672913001050648289133753465785518005920771324994606089541942962651662083227463004246051080418722731316315123856546950791327854933443512985134333345079134043521340892606128305957266831664962539503346079420181469510439349446797383844522797079404712004590422913301776683614378976743788944224160392769229104625267757850926741052054024220832077668435912036932035493409832017201878341522657723842289247684390249335455311762850786027235235972429407783661429477383830081917791710626341992756854966109889250765946620096448427189159297399203691252693261277638126067412778704634368617595175350873219780919738560638159351109520228403125284631774302248433253638741454197336849111615005792476834439449162843320144483735680255070867922343018146103260156772556270243020750141933336376266914534970269831422404637433433251909792804238287806453130052753409542926457180093407841850646856617908089880113384401098247914973479183086720569251218282231893955426076670072896904168148105294045406662160380944249451411413831728098545548165901039959339203899728770665281041498001571335713756260989468418842604446567947872892436522231597009237690311977728257423872981971247855345901823154268009094292965441498449494246218079536000042147322840082309915745407668509696412841874071915896353842956143702350507279724854541064874487156056081643421958191298309823785150886678200858003023829210289184595478103956873815493838177539260442166302062063323050381827291819702551883734668062278696951843537237660237208096497062158888897715684064303346744246523247370027107806371098092928701958028835803871780140681182568440699718861889469741186936102687488005400951419519819165938038720704310153474591003081829615409310020312739966646139136741756010176126867217061165690034188994054619497847660807206649754790994259396614969391346218712926946699614775033432034249815337221583435405301948381543684199271862269681785754731487492246116580466092363549047170499205296942428918303109304474600583770050389475922525414243205404821173610275476404685787618323110557266093064090387639035005709400700119194737904971298939675934501924305300161865701386785908618825693205002359676020085720047993863198966552526881548240095854586738768964681956639039471392395714187457757726235390397970752829105485035538210250748370910371507010636589442253586757365842512952725211668862574363612848051358692070410483975322370460170461370818623487979968869853915467730751345038841052561386463080987105993161356997495219478829512635931638229972226228506610497133861408300533408153349970986262729880111382585797711095607435264422503824532363286875789620974409024097627936137331234447807903682853309315887681417350808175555630281704287513768396779357730067169162258350068953799610703444971695944226975782554573633918527296009507244661815531730947742688995738192124748759384703796459663416970280194274546179567506425521857502206718109244882015756443348686510807017989189089675104863368949055743502213423483297199834146193336687973606389110201471001073333869263102681334174975068193965761808143124015742385137746738719032374304511058176489672759714518491501819037366542040809376701543190265050808877197699174396608469305726700001348439385046634785631314258506555550609920879315656338098152315137032492945604799070844783883930138746732335084392738669830661870680084899780413546044033875910241534370778908100084444876801577192549891252876150728285666830813500223607404827806966108406301451867787755303760325637662729219360077701360837983326265689335434082294423399626473607395209990068589211644412677860685132114732497148552025914184671760346973150871592797137900509729841008033219381717904002171328427518824921184196635632478735984454347131459509115010212607559987416806251501628204148904813831382241869920724592868958823650062683048404137695542210780065351262830099106645621348994750396119464934643946868353866210014637019983742873863418640641827435208613991229791416863142072373050778052996367512890880729243665654988826535762077236771149761341212521102043718905968880187573363614097406785015188770541023242338073709723762266661034221220226054462507873578428653709575196833949784485048618787806153002511270829699291494707116819212927840129892974784161295691139681824330002902695200352323279181002417250536243028924538250369830249955941003156160607585478349055027178977361786598717452306526422531165442411183358652911531776257691621275493582765715848825319036909934105391043083576155173093066576097248775903596841560715259110119782279824485248492721559306430102248984453124667629666638565699674248377623721216316498715640801668931689767525322976429678886642135045453228147399964053298226185588303861903002907842472292946837240273996772797751793252040450024240725297428112878782964801578476292602694100099972398784613675046432062439156055720669674969281634713832470310316959006778691865770302536618404235635339429357757023764399781821893739720092680514742297677369888118797166246851077059084951054700070670485430468765550758846405784198697760833897090496892400765645835435236103474961768577072322342776462795322908528585854596450718919799811673310551232673425088534583256259577763444374095165301709635831512918916346609896065319419235177700047899053489437043444163019565617968168317517133251558754704317655348251279239938484159971923150006596419180834712548724155973331916539219866429914790872433578734998995796187541445253400514245008504827105857558230458192208528403670027667952150370332397200899344324554909926879301278971977833554809415993293767392463845601876110335948299664608364325090209568863810878998571040952525202678187368446541287122181472166096483653340234735763164034910477219581158108587085824824579954973448410262835250542493371295149241517740678585782767417896215295962028088552650777932974199121223804896767917368723540143019018536023776902053246158315818913735222511644693613153351880667359784455095924651350353192508102310730709417659790899753574452990315590371229521672982401341944684563690465694076838730159252248232312764078929946263643539654065279952253501568931332874563875245131912942831139676708770725554466264791827035668257075366906862361874987286720652396216473049854472673409067414099648885528243630656272819451381554090880758358775578597184478116789254105189112849139727753442136728460917142951788320404313667163525569230127404573612587581784620139238122923887838481000432521075265685071610283245845467901325022971167913904446552667498671726981465901441124237725346102331511712626579944277630248427666177200996047750050928302333788664460717340233061622480519102300354380269329124546839950189589801805623950595598208019227637486178404707119712807812870511762837331516680665292676194231141801829652519650338234843494272745618963302377120059842059525642074780375226010536649717764693394504591642057807360635849283804312517270959612519306923044790895875844884744277266879980441868571970068924377626456403921684249342842731014546114926001720104995347083774809732544441235901564654062722148010821369036159491077560559672044983977881905563888173890912718493795703527369117880016035503701133926459092564201664008680281086226730362484082492301611518866358566485373336317910529503704165522133139269663987161716465270450202142403355195267414360522232871220520771104800885502240251265275750527084418778065491241032865854141148214046402454005574170644712123141139460289348221176554938008961723408916798432102603598109638185708125134378751517125249803932447610388349398191364263158133896764336128835728810600411673326951936853694025015033739436861131476682537295970368099750548673302757742786981888468299124697100584633947805659883384276770639910116587467086108164430351696352221296264226341154729815984943920378121589432954070843382503738842485008164044439633019128775479371232829564412023151046163371899702064800853218420444746582409221317856618456845678934621809886908702096747554869041459974419165995640754681786085524062494524182604728748025619729182096803435240010617294949198354934599254155321299377966958302153088377537412227071008360099659024873962342519477292015550808839694722142644268499996958758721271660042677039186441608425887966043656641907549268233194900301257916971591798218770445210712704849455043542879965212293014088310903978184532514256629298270544084038986304093116629734340799478615835842810022212173909223576134677278502651806081754332380848190524805425534291021020928353129123368057694463494156931991008091759723610111940769288473809623190084262784085807001841221454372562912172335318539975026055399833899547868956340764813669280423984513863044175986060579569472244469599160263692541908197636204427265002428264901028079952133415160788570358632010086288180711049830077679745470442712311382069498233368250792348873698347070550303552587923579090707688663256172601984496538063644293843718899650808039160158696503096899706535901245656528663264887293852876063872446943919367800792424447755056101254814273649826440848602686246961099664882766240979636983746716072035500807538939084374035490589024433992303680420106708749247282044680858442979382020506151670533188868879329978192010963254813165016435390120182714925561688956743333667973746362636105895752695649680449940854756395167250796431272411563733445974461484136169070371305022109678071038571538707497062516206096846345303465860752060095498916600746499030213280960221351069315507463767990829689327165515189127463695965620719780081785441200906717030715244656163892547078378011989917070898579466677332565212035248197891420443560547696203906079903456877062772193138844270980716775482313954762027028007587474429021403224933437221044325181599011269571986840066535561730726871495605318344960744912206868806959459886642540778098619718575000183048727541770466224347764270840671817574164527329670996981157853775504083483781645222419846794783704164760919693014263180869231558165636474661451313195056879801436613518514766353354776702503882511534909322003566742709753351380121845381495372095947599385959680436819993284792910422898809364454389216895191251775091314086039727146131270701278703468919895763841528583730390023968277694917162216411393551208792657043307604627421183455692593912688298402840021626597338149913681759553251227929430899822364065075714567437149921160300636895189041316709892529188623543133072304086996473496467257343064046675386967826056463373404163180372431825702468841983450654448252065402169153056087909386635521637824803508710334151463434614533967438300320612990495884207257571634191878256849241772459648258740778567634358432335603872804354687704886478545025704113758327454438834064825128959718796748528182778194303983910574170658391276569551976648953418464794803734281571662421569530744232390949462888699051243217001893777479581203536095444244222031266615951305829859204661614841750296337840638296052542062854614919828857611507174625276567407259184487773719337875303831904867840572982026640545638520841859290120218006445042015762098845732017120590460947783685125764038307849428142543216281330519251806798647266585844923896083785232171603072753559768042397393724970117108019621639845328722286044897581635306736362714159966879383987228343894415124824061468499115206706718553148873315746894172847781015343729631140294942558463077790325187271736815875937749874740000813681802927343110192312573972382256856416585859896418644789771514442753017754248131301410766121808014152782696089919191049625041303707970975974590529358855744165653009850570555599744720792535567342004525755701569936554993853675524721120880542963504284241666673724072825600045854739585236406094620281999603358307591403696334553273604653326538396152763449885060311194243407292261082478120351962817534728892766977732065471302353535619802060670431886572940549756397471531975111362365420687440496799777300074451692358811965139100744268961716117609173186224754532058366029594127293230237389841992368917551057446257782193398939825549690383108534865899736881838805805418506883932702521039822968483655096028262841109048114794067168348002044314120400552617579417757001846400597927723102236385646255564134874706734116034708976798971117773480386984775571809138778991052638130655227624015703816320237188754793926652294690399426127397667117796900648550658607073863193398110804826086090436043441071667172719626539057426478637814506077746518616175846933941388679670990211456527751423161730252208241468770098209660907287864227094500612694862677169781763910336348692815668918161656473141118956985708360619439082069800445014803960462186283118619296820782219418766731433100868161784626532241717118791399187339765586237414767849013055459498380486964991263755578375097190064718299855759979770018197009292976946364868465199428362811671531298325917466601768193201882939749828279533063083061269413096218298667826429331773413747927787233216811309569365660996167902204855724610718905351638121343408033581743891371701614146776338655641344510044210553508302872099854685618275694271813159824409500615507556616164003264031667332507963835344614995734091415814231404832188182774707595848753656473633659220609794538924683105705843840193720359358920215636723663498240106264340032068699350891132765647038292307752923990718021755602851184665543883811805620084011044328728176062916720521718667636470993164040880083296647980434383086629109743448616538172909503964378652669564218312319063911019084908199874134378659950907926922999000281185081789809363990795315894949958154126651933185943663482850377279390775119962511035896875907119443280478628239048413761055897494081881473215509377373372443688734583550410494565641390405702026520605852259107489201901847345158048698074607400334325818782732062425566081950494766216074618037692674204856343689616879130861539014847719673668878071807195498244605402390972847908008291464163197613728591240306856998734851987946013473283589819832083739040494399034815588816963257220991876464360574106742332028256249374566486627298623325923493478598905290453222278583432619906546518582406843101266183408179262594963157808187606305002505947583695702543981594935022277883925512795565098849955491368400404531970209740764239577291037989919201578437655484985670303985719831731396315667328746359533943662572693329928325775062693586223991168249074884354675359182147875272142040839979671942819977342409933033972967195439601744804165409436706575875419525494312664320941847377529960083336932462839954002241772190523155638981358774286295894700311511870707175432825306638996205733501507375819978401177280317541728212510735209801765252597579070297192996939876754750177488801186795976735764060255636563107722910422929209096770429899343581623112675895331525943459858606400342568517814051337886376518745041156231752299543636229245501380611314878338184191228016296142789684378741624946806485313905454982086344978856815519686376435511987018038360503847229471443434811223133873135038901123598392694436037536626057644029700955361085912030459678698933210293660332391795892374176407555207224270316636250893054509882454020133621422104737045185997222785566489765491331891237659516745894469157408796879910958450698461065631457505343702708818380417393738609055896867644645294446091325473280270209030231452813712222918442252106276727972122970098486143727454928525082785858779531347140151634064524685028746691661416742113976139657026416267183779715693448120097421491870532219871350047800320689980393710384409479319065475794775826338256658598662660431513970485953185679496007107153897292458242776168084541109896029459582699248974873928186849273746639096360255404988013269627895758853735360008539757361536335926372942950928448185831633875412488893924878623932721570623818769685929174662214160311098907424580805225132665498101106567235767693313824776096688405770029372075445129826427114188594874824832457050014461456141112183713230295297799007110662718265404992209746609851684080534640626657773201999533827088448260709709241589310891407698647047013202921232349867692023722604303937461499670945442447633699769741901309386690994902017979838052513399511643088004658369844814027506101761451786359096016066591005432928554988290593432963332860039815567716999221162168094461406077260809730734032190541583129275822617507536669197211303336846166315088003606212059277729286569162701869335870339742056063469043866249674058515563952588276567312183262278856903795564841129125701192872418130138200090972226950955658632773946077992168594718355404427336290291021916927616938679099729505082228561865599879538400259367929671476492686844776100663843177716257625035145440179223806846343741703182340516146086465372536980228102023844666181193913009014490704153673095711735339863909120496418467101905209562375184971653609358225265310144870318797046639039407631235803985118973936008652639017451117315612063543698925628382084019217170111730718279878935400929820702954276161693314478889238705107774316805547205911025011407382358524139907684711557799548447376275628341017187386184423391834139972980254133503144696136625207406828775675695966154639280947239528771434174783637687684606161335546093119740320822227522082887141054254390794894851209815943841756028226193407826596825205455728815613760487333758803430702594394673966930732267054941504022908255856868379050929701316980640624728522722772392948284167682550939903352505492080057001048045859314508969891184554514537626984577205234825858623717246892551626079547108956575806698177810436907093580487546146673808618957811864738558144949916317064649642022233096514657892413177803420928680619230242027835986261616276973896326525854600037763473834774809152848367916926839223564313314843154299970337139693553907962274594737650150158343759023053501611088530327371320365611618489810125319424162717459077692486458069093720515031095009728541707198597139070443435502840962753839373549191436997941994928154982802018732997916970980765234847272739067808046092713673939376456075011840819287793103707622740380755297246333832658417752875615790313624913078253154161187376542126094972149473635115108640616363993588896333143975410126475246774829742987367416285132153085627591432722617241984979067387010375281432309516176011237193998675038935794986444066931094214470106995108078681168499424558173228114944028371456712599060752296641037791104071023467039099598974936775949050774222642199551005593464738610834676643829170748823274643731624847404863460500509732432384902566816658071555506265352266528665083792866767075407135654275032447925599221776307081985856924091727067732877143116883640531209328276729501407658914051057155982910355547406299417383182409694587896138360711282247840400016832924628118388922378203275955718995083482826675560557369689722035638248895088772927155089841946424568764851298258188716610623976465590629995143537148907086803357021479311846941223799558871475983331379103419405790739914108736994169042263193983014543963791650301371161572156550301298091664873684119933608520306245993702348803678717016793994714305231151149302055483800200966196742457119929754796803795674515271251696721762582988514500154255375866271553762656019475623314385370903047831352682662303928866303288001801642703180790421573287402278616177037815523457795485831430664437414560733200772570380189502770632536563475246667904834702959200954536204177370330350250514009692942750976933954227058749093721517693938565725561252118532044592852041703884206359595007577592802222595531587218021449836781953735090324947128611401959730759203669817801436360761040482677070617962870844331435017995710425368103053696441348965264688392517463375923707721138100043710215514289396134532822100147084653235558009111454389816784731942719987356493744737466058725250878536363830423910829186810248031099443859054341985560562425588694696179875824235616004774048005392708513766878828151377398816031644866250865620410941777044751515350925160493643427821681812501061581026843016040028389936278393788348018133126752608709813886231381874449061980506514565655894208325241055542535055198347800881204407527494346440833661663266474415289769296730581987386109503530446952663982488982707855465257508353999091566775878206421525735609207132951253572893000889569788721493367916306760150912304073771586048934881860937390715983646292579283848160286561505954465231634277353766637165218398718721994285988236682796674466793271496393456129309602647759865570327727270507508707383922770295432633126638204658256162326338451289358251577019015566476852509967061192568776009824427732793905096414879433108937254966377170808189441828739819842877415738767036376588070601849175110195718565931793390751163484993582449410727729681430737031356001217990740194801374461696409250913053206306063947107231794637675737420747858850128791205361130553535629952457954950102192272061883525813119527907763743708197612775671132079787563544196157477325881921991089253529002355406330925870778068365057756363347587418867129804148110720460676188741898268868057709174747522226257071255080840059318276787152338073512538289677568873786817276014643504661483198062787270322923579439311523072691456732044035349850503888687206189952545070477835626580817365970393092160747310442014868725563662973577404696593581556337806450837826639111211968636565304666454736626494145620140963010541605903740607471093583018161910023840828584784093182267729563700316791755162923358963217865565453452987701802402912735034737560715067857297694365766825858396933129598727004483204302132107082733693387564466314071829972193145721690111219748217014546463314453246507593027253038402859059355670333393190008446897538235284488050053999611150725995712011475070714412502472111289436543887438575038012583066528634186050674863486021428724253067524721065250428775920501902794564085600076339354653892019834724406308716357233313253897603950759046394031462280969893142826152647992421866816878302676197886205572331175256115386013908230848645705109571282548654639178162701451805548079100790783785711806528512812444360417376231624669008487459098815609429583260941627892840656124051933848354653927973150061563235302638746642141764638711104564684905416966184704544249163339899691985670205572391565401604777421671380382974925662955080390848176334823998674080048554800451402194115704293652106667346563292470757378508919013716933376644225710721092300516901894565752078494377000675700399709838910323673975890047563708752426563874592227704321716988523580985605211323043915365575735820147600451119409306702150900950410869431730745611536477340336670327488041846278262323876741141459375152801406497642426988691660707865130862290583169247991157566179226927520930020777158367278906566054144647790437010135194071960976997956693042126412636283463198021336557535722695142539826791072552066224089608415314027077546218548152756899797475907080677308238468490842642757697311064181629462203222897612247209582801272866439205859570486811147445431770834610441141510292292908179038092903936565016157536476523652508839561694352040978944448467700220371995495975457961168800665411970080190352582410187271560383229847748564319203921735499086100517393042353540386959824130266018209384470969825101038897780500229833479981436896743655381659014525617775496211497815735350403261262813472202312541637556216167768428306243242294470570682812292994288390190161711993677620348485537719228320671209284467211801815970299378923831649371495091695906323358542550202730101152698523822855449269903137627961962207167593250118340952466753631820238828335500993798075129975590291975876179773751112537456094068629256003802853282761988261564173835440381381262529970666335540791277266735259308507094356824412401155655253632859196829362352255386661170739702454585628296075606334649153940329382132053546130497394342272013302498340029643357566055401388654055141027474147240994195729379583335804204204753392926426421478121418956775115771694835955791466354346171007711147155697018325067365030110608362174796359794900365115628344310877362015607986030310369681930139844018657040586261676648434768595011074025491401499275325811992415428553186447232325901163854210219015259643728999770977457776652583259502299547505408701361958458138687816882938873639733963405186104989409784232351253308872577419967596677848840765031212603127300531221011615984129429948663769832546322187841723237933436454527566757249544822559115349618176729642867391123476724681631605840846310738114895109690512179459969011468879424808382572286350919815318834515231037297459300094846812218429272022592991448086392272444525982536564247906585172090393466330380832911813713874941617905829201374993703499947564710572687210276645945976010910495861807035574380786273742787401358283712247505643891699548467051652104351192249752331709480093268008239362674912039390442393903707975473148345609938766306065023729189143652206927753854635105745911933661964745590825014599266024856698397055933723804008396209266062951526743575517208181963537988631656561974838670225986216682490745889964694037381166757728631104303624323729188541772523810128127232744017253569374185266204532702376516011272379784071325776243420714055681487603501019612017572382644888230720131129418169877097329811311553872693286347483060138463681204957339890117160614422484273425841596677721788123737231465756767667097884366724529464414618887497232667906627064718663920421411652413170355120217795400036651903256446786077837056854431069066137622602251250265303287599308959532016306368583323057639062792563433773481373467628930507235737134122489883061202749507999479183310921782835491215496188498049593861345210749267403277003887977945018124578072049143260021200191847095516630434953839437576025179709580498895731714720094796855786683982923745843912516630937644873883408402746817215184825229973795940969202581058523193554226409414551387506787629158127537757592159589102074840405730434189899387782901001233226600249790152883825804100977197301377379526822304331651321745256918349436990118919445578512853967184335810093256279338318572920120793786267057962697790757001036527161401375848274764449758520798891634545374875146626835002766328653532667466402540816685889530926283212394503954614863607982393657101868002971481345521353127625013344597131112214730664256855330968532764843885867328217411851325882321365758384983173294350236041229903110357781044951163421575726968972299251711490555490311509819877456249493277416957339232850860236605864729538243248365579255250540952055354570776998869707085753378448493936968984195941996522202620645104174784988897981121002510435804253399725642873022000364085586840700370242375729720565668924794056484734482557428843482303927094256320306516523233054617277526688856408512710609309287270505618510565048590883823365687016617298990832935749334792888065343002190964725361762584224682577756383466636211007523431656544127711523000310972257870206042115409855606514810600289441297330739923360710373231540802479211639495927517015485242353486737929753673987495005398788667560689439510764764654376463640510039237229265659357734947297716892122369581426185219428585205212414812595840844152023733317949944290859007602466015957951450837323719116890841625069539370883683158346803502650629228919170208566426827590298339520754422318966895445221342895646011930275832455994676782050848561384480631128801542621189885700768078057388385056228811294332463991290418685511097411169676891402381480694304423656402694875140273405892264519836692981385894264581957114844912843300550036084716930361229883528245212496818056583914880264052448823830399261413890788632063222343285210856253689778871601504385085803477886855039880541452952782455621180089252970902564196442540876665559592549766241360394094884555296342267721515506896615197447717891728054481477117749618304859110559205071509336989128101414368275151405067587233220148782915582502374378205045065311708003121840500021857750358014320689181810469434545119618208631617375152011769401700492516327246581590403723724384923210624040650327281951577721846886976356345119521475861669092553615037534765669958583612017429479285451926131018901911360268263221987909140363450941832326850913487899949773564130011206659645173177603966537744586930659165061788541222901739076361311233814457985307445689022977167442343290815159281276138003560139882571366077790779915629995387256212137512489598941649376013593948847669945038396047636809023169981888255172959557880461593825779907326691177616991801500929848791683901455140504286413600712601644477808327696114870939263672616292389595975619469746823955207342945132617704681162942842886570422760629772932223025008301856603192773080212523192255641144922499750363618819465704261722470377998757311057407952356207144658997481201479222742409693500204135539629159203662676863467795465577528564505705022061302751850279338707728158832397983127800400626629969097109074818859482558734375251588335403988457436097576141654757988315847609855540846326427650683582208459921442624875644616487128230575053644135259219321658365659640950358103811177795630917400637210982981839272830462536914135711187904174562867438662163534000916791782175358145681800304050772145708945226107262080452028559344354462248001251970447230710582059020180840273761875016585472541119663545943308668698699880320464643437319890052453671540735809097233030798152070411418028209447792039589866028576241988743833856194262160535815088097931012920844856786851918136145420243411437326841958954994606959677721552605514326546647301655584140608476906711381432105210631192565821613367548684823839898777016500622815510324103586913674413437461320121267126747038967186074017514156764774722861799713710877975701132251261891614499014937254200720248651146978678779071821591060923066325492102854378410603170104569763912408795928486906289658396569920692582434741191150781969695516640233719979856655939813051690403976324055459910800956174260817290904734935557534991319053761822418315538281392024467419501449578042139866585245216354586971894337207048259266861874067232814379443214379969180983799917939114409205163088224074001144522229689935725178526104006351968229738375002486184747256690025841958631537758354580887660861952355131779806383907910284269796937934717997581714326940972897636693597518191649724407494992115248058546680429965347777956175154207289996523534743756834786222231182878067699068981492063878406726120901964363721821903707229133550560117251248439768860566198889378553550494270296862681198913276930790160015038858054203107180470680551618184940444757157749923804961079737071026021914478397679277044769274344434276952611281603851998646372119916828975029184153562848706939757293824339694299407888518010302047572202627131892274493102913696149035566616792398803319834520660392680219097882386354527127582991017202366476171671138337118653375384835193918706673749574251566868042646549945659363462112032643994939582578288242846706207776731972107848146751208173184233740153615594795133893843391450165735103616174190005203097752595313059655487425174813778664292825769199303615409821273257372750145433478328408795115386521705758575534076319183126139482016775761133973448466990923321209039065140205096069055293411232052656549487285253839082094228561376501978783322816572074272039315356616260114846554306300996183372705050311337858132101068722427027668938039848193774436010712370217122798966217948468000438635585398930463655572110549819654446309443566918483478689331132338650685054293671361857678414146150802590389745090581553415488840594875108436511934079938682299745160747832578959133898552904295867149585867430852415937889818054183779264530361822377455285021823076826488479943238021260936568577528197839369682781300911232692811646062129151478861919830255530915843769441452028899644151044903712854370977852938924521229298109625183841488512583948095491065379606546208843136068929455874345289356410354950015640433808396858817027701507508953462257671010067129284116631618941093702079493561304839143374806910386211090484607115333537868815568403681583369717640350709021397638618797611396640206700667365644891898791712086567962912480568295206480135095669185181509891781718010512353197950696160398816533675113396005013936666613626030521498829660013031401970398456344034802496677724118760683481018520192737161695013450193324044174086675253886351839222890436147407481274729821345977139397511150988853012903634891433583776139151932368991353130593705469718307532726558157001028461244592060003813582504563259799365677330593591053910107809276649783083459015657830085063689700117135700022043614827726683248081822072420586049741353694201093817600264911677887441951587158147684528068584480408891360523816005059820493070469411196092918147490564816108046141598193022458618941734499332789325028258812685264685627591831789899870167022602468700152115976156345230339740206498657188629688092485905607057733134095885906440657428485610931950914631647783803765161064943918510585781395199602428087504265350590412839024335651467077445101314236769724087705658745028898095017563818800191509897674236392111323185697953516025711953839527333598595369345470115647034129482273381140073976612045991768100968038221837339286445833038429011912227338898648061889208781061388632553936159447023412728384643527193462282418993880612083789556307453346757159999579154929838160871115565122387281071417290047122712462641530455201399132395245230087430871389740005899896454154843242474003223830023167649721608624401311147236513948142588580701232200972537825831507150938683075047738593261838616257145902508136160002263402714605382266267237243767901547709266226637293602475662292033468583062441340885298817466473697652622909798512213699023730282794268066155022906759134442754710923845421412868523833413341388775209198917848850515660447424338619238676186751037780190759908417354522399501790144449431078255314860891221316415503247028831941869671693582047218449595991665375119278404151226954822552739128173942071986798178294230011310462664825104357952292256211929592518240722280707981322060227711489940784185846779314245851218439680002152755624605863983299237297960693571288527466702154602924884638844630857254277975171667797320468905026082783030729659770708444617529114344797928469834779469226370802031114186576588281443773291122729203685097424611570677933713681852359901224948471555196973185611868418721306300773350681966255729339021866966333848705208150013766724352351875760019933655982494388279543200851238261768476817423815451558129919858636058003686093295228540396709270761293620556176767878713371436780754636026513944997014450365283249071323281848218630455112561259180714861941011820490494792246028572131127984982918540290357591613657887651401966050446585000346406187910808948304896057826622288700042075895086727669634589777662922707883661686491098234142017668896208984380850929678329638880782884856852727186205075179727661905916845917268205839737696253286905445597305669304287029284943042633966161082182375530734487608144819731779062155053724734256519760922441248667064204614788799034446837105992329168426559303413581121978893740429907398109508070360809253473742046556249318507607547859429354668927601721708459662217405930046449525747717939450055541942488389268832430331097560824399001188101688780367940045170348328844159160694697203496736266118343738931412881336865726567722734825930615904041875166685257827592651785147140820954798987891978802440285173959047752676060587664252730739141423354796487918626583671155207285793731886479825674924675884422608474965233182858493542952591293191114408856119623950131004495442237021520236774049261344061245608651266506918526396538633822072017057807163838532483120748700394811291414748721153855958845521522608426459095569345406982242506950545563715502854207708072931353125470345140915309323126622036814348631205711707381180321830153237012909083669198306217377399889311129424138326817985354069744251932127555063446949552512135632879439061871074728677228596073611279489388103725038726390191930215419411565296403794760226426771935609021709961806858731637527817139072337983696623545117430161764920080238628638581073880689673781632561448837467224378548680716371042930246116085150161150874939925079823671753933478517441928356549542564441114314884000995344553982214103830174040513430842784623879973976210817926751259207409295403385058797483544110241549863611778164505819912110063675098935780959067821251871642087043280608341847134638880421857530091309976012465880477439970800266854710011981658846226382433155189550472455799472818713088520069661347059126664702444401121835986181907601699589987071885918041307321538569419863957247845376580373126115840359573746732175685647554594276422442164992973798920410078038379312506443073678132045220204605002731090655352288863944391834244908419421370265374948996308437948865633891701986279816790480781601335576382407040121086937106972271302899219311304575853370604989007327985795638025886617129072837556482608128522652224172268729987330113978957874941566121721054435721797889067946488823781855678752688143274176682823181028698523965750438728727253998231455372938206123495509552132163510187345927045620631731003968916494732977300122272828132246183507204362966765140727916790230513262599988401061785292344641980564511311337339268578466167477146056818308309458544832447943563740096957086384822405005132803110061311122577144493644625669094919074235842127852855534194408225494306383888850206611983336465265615400026264937686509777928854808481006283927796809859446530250872655134334221703241146992668200601729118580130521748183521586021171361504990141983089042661312948511453133208522177546833317563614315521861159647473996969178849670089748281952626379695816348768404844148460491282239538933362828380054049953517658550397250573056314697012198222265911552172419333825391768720302361151120648063008651402359786757021442473981862081990160768727313520418800968260745176985576703363488693713313101384842445915637732558103200334543391170567736592259153139597612422020950428462052561533728990418148479111839702669778365068521903615546271774885221420485927131418533188249246235770467195065245258977185976290879917390210854301189830770922107269415129184197320752199785596775772868540932424335731499772163402861343884620130902550469414484500589748487180061359506969883169879627292805496061691988489305331570658129204839189862525130520528693017131115372147161621670653811204553821397595930887182739325566658634360902360007268600961392700798686215823932312218965101810956881059404086123076647766261457125127396848977367018144077994734342106688732049638601138348332402203705183347084317406750226770915238005488741339958029872376007327588121003087742776878604774821612785730882818109746389571673052834559158608291339156023098136125360792480343213844923778838417660839365451149034852033091042389252928486708216033950107724241572352871854663802228438914018967493747922770078128680778175514560623641460492938894878621245454586458701388734180932704450930126163578863644240584175338281698127445524370188010734295369310489717046937713440356435362487781701509222146987917124534335843361570000016057615137172256270187444232343184358934370540796504000512957678327831096365514018958558898424405638219522682441714741387646337431981021761053595666801605601375496420416838681652637278737552586743778428271147576551154488070889736585769176998918895179861454483094973603992623502263487017197520958468962392653742049460151634321954729126727476131388371354014028580978882302498959788412206224375221080246585810770362621189092527167981094156216132411988901658077237991032766231342448259002979773636669081725892887266700982001084798097635001027054806259896888188272260807179185604753638804121007678530839160850279481846063260342245213111878136494303320576175657874063049695772206635236791822618003302346354972832718685640074970779718313329435321140742361700016470310147991446210993916754241794253257020699042944389504518341799994863529095480621896286320036031859886889691602824910834973193124387163997519406446668528933339278849107744082154298293406507518898856578960230789717121920381985365459449296168002333174178699777974969294744101423668759363218296294514232991268194318680602170461241380035333576658738085998718763335188441540558327051785826235855089691657956933489511044234313645583473659339081365891054818376450720270329446686887072096182493518265939949824294092819771893816464923941283778238242005427594301515960067508804030121165379612458191308850956204844678363539145260845995338407637048663379882219984856082607312748475056077644164145131006173053157412730876384792509797475948805196151614188292612460436883768540098684927633167123550328395405563861520820250300472791412564824725042239623496229289229761135899911605996716030098702817110781666921318954047663988712396371128884153069203811966169027311874558227594244414549058962601117040596299061491307107173146555953369438819072191727184363671692398622449005052797285339187979876882013275007955626531644213657825629055808053784776399317942880844711583506746479950389056713715238157387098275134281762339245362395467008390742627733971608908829598654553425898160075433930101783055659319664989725605860384491628217131733503882532730501180171045990482673267222088447023963002760939882660075330347221286204479639724521267952530832166888020074990321714631333661642255375312604651673098116873641226653876078613782884500894818051754414086880665546582186949053953334664856307860531681706786891727712535575892478404354691239960932301153003444887479291179821291254764481415543421735117326704141342836762416650306632297408041192004074204225208784913718678414841881230387395336602763848696978006370458250993475961200495156921073195275976010230781022877952798857068167826734139265312273854188769801439992642619925338170030631343984977381501235848029330291481751978860587069234600444153235660914796558235891086926656802881157063640353128458128458993032311747495324128686235480955916535558394244287290136534342466596550386885269896497059918016338375156408624047575835142750242826320504979783142733274795880341584168547373938168927511672357337061706248037382261673533086393832294148517395073858084565337638756112307786982566823558395522092035917710059447946714385533007251835296041140574201780632514602986990818816116118445489706472574082519233473168924381229527242193643410772682120167971235076865369014101512096128923330182710953603822620048014496094663039627540945492374712359709176925043147992192011987672823483484592727299654650960604363611047533262796761783948837226439916340675951173964090830767449213531609853086142164239706800229468456365050985527652477088791764649560464667039424386755331913699466101142824960913717143409315202373165913602176753873853790954630002590405634360450664819687483138527438067712341551390210653737511343671761693355009143096539524082276014795846046979010875279829564480181042075467166634190399711560711156219452387950612522079608076117027991557036712886293923945105432866511910293652046791442896625153720687330647720178731217621240917404263984344470414690685576813206212016990178077037170093455549054544329856247688130366944825603944837226065964089883828483762201133871167332472722408780427372556398419951359102323627696726767358041341004169516987497806912705782697747579356459191938655921639670941833972671085287886443416540283483817458270332846985930632626717201596202885008261113191655306356403264231351904308157001921301066478794922736298361109888377678357209088302169238102868441995616862228361794412945927095065593937849393657284005729734982339157698103478274678478936439448997659498193562792583011657504137010099296949774188155806778307388889817613199309735639364387205959468397280957191916738965792473906688893324726928271088917655417777439127826299606351212227554749636300932559352759872056941953100580337089565196429785261302463880204057839577924885419183892936305214355451011085123990789823750241908827779907152871523649012652279914700736863651299988995722493462332775463883047082046446669172993475349951570454333513150256600189369726208516530063779772638351960329746895735102586228321316615150661965311023735990997959226051963078700681305661314275212339240169284724720238081899086125317119286280698403205242909635430782998500242106203649100966465961183889467121245653208197932254492549953002080907464396396413379065494622264563587663220990727196233307583890848798455531770643860344007145260317176432762913350325527842280666443911400292755668536224049946347230320119359247246907351706820925641095749144456589884289635467492051262277096750554606924093866145316658828488354797628185594588235918223237984370599902229033017305011999898363484171857979672460277371096411362038307103262865808626443364037551628768223815319515269602756652353090814936409783329441633678814090107895983927324325480455988792705606094177494419628162605680634491589539282596706424026963430909812504949916689840815672861952881165140507652492627943929927098700861022353720141944722881521898988206576789817392910507351992379695701169349602051791551829673792372415844240492938391849218704672505826826662842023262365302813125000146656171895350033830536083388917993644659361631457921831054415478337580028045147087547385113398176453678958772002359750097558660116162342866421210328683720474433431359718148571901740278890994100596488779412739563611801541358485948029728988263998455453761559802349165293128765774303479908633631475937789193689257463344210059344166724629188437014057356878430902523478108185982572552762552921600465198974076822835300850605503477761706974540272534823800504185572059148798461982034915965399900843330879295844997727800514034169525986534189886095243875592696962422453012447494104773842688415199126356538083705723189058993919492128733164002002913231096153810422635589028990878992012054818396995234145462869903586408763539387066551525017637509162698169833228506912554748534591958179083843574464798470557897507232815892404577198009818460087522478364993467415808838086690119467333131533244625236754162351448461195909902897239867645931344749409086392044450865034145452014980669463595786961014991618897734100368395166273206149816206016276712999310079063371574667241379355108287085335630324090879174838749639917590669618527133444966513167156786341985740344965040833789275401572324621194546163945231335509349382217916074725364765749798567195528663400934137322868322170780488504265970566093548779140273328837887617155506745467657549932261479001556987859261702796677908480039234082439427371375553288180106101614775482865814584804235363155771671647274993439351255909307100728078272222517064780464499800922752797905371420572333119356590782419407496924450957660094766337557320233454704720309527648211822099165555226365139692386737178298539986096025953549095383224943165409203305833577801281860651050463029934783795201711053887927601333697272749046831741401640996771858177867194150861983879010967286190223816851423435863636403652961594801657964842480126540376605799731935400808514242223922080306323330841075117249465517244046425602603232582937741648367194374394775308344709399380382794809140632274209654096753994189598394824904994321093161712707076573550837306577017858115260416338809263921389335561454308309901276058869562105206152836927417419981239637919618823569171218229365934389743818201598368383730369903447797961095146664222865516876519393827296203935417542518131575637559143023614142536993049923622888818009063530851857822541572465980188477879585013759845973116151105018453653766968801049272719946972814205272102934521240217072619982653366816676824900831718480368462887647020278053852742048897791981910933209887622354676083775670871746585968746190393706197850537053910767275164523098701712120000863281648849913977105695630701097319582422448562251185844332985432192233578606095592576817786834218998213954032814157670941356638754302661740764664980469393824694198404267669147583841647630369396412765343585290062638046988453587317133723268775411733243433161381188364187516911086338346469653603407765343454309342307724881908854579743870863953095094882116685890581257855469361399293764955263084882090030763751014612571632652208117324061001961103530088763855282901499072392334615891977809514887529427172654828372738531174045764395084250768594215961532381555623509437415122405565623029096161966643632157886953054761674367386272866799756813719048010894794239896380544492200864949623129470884004295248323368146744310296544631538160216554292448674600022631299508143013975956108074711255282234650951608818266912890987176769227577368976546335275099184785503698096366223522903971214034892918950066971351753915108556768820353228161818448986991005155641485250742116298870155902220813930694465347869585030772862639374759618745689027872767447180296636635621440922989855616306687259792981631252892947791801730529571256421197642703764848103626199670456324030256918926560273907807358772706077001790772093352701585038335515062828103678369496940763069388643347735187752594623057609453691157487879624486190337682065786546875110312029947716295651432965333078831140699241670355567964222500531054778269263890554197647562959133330648002651816546403477578331908055274027334098902266442642808048086875758003804010184540083534249878562711923113807859807568789535390559782551210627822097629539848173691767149343596520517307331805495850538076649450549929145220111576823987741083601226637423454501993673567689728852793628182247869595890607025949236216940534500931894646259944977675827912759435618011215568837005182360016008685386101997959663687291840963464918267962981953052931552040007727831255152384096751140018847943322281717915858597091260540021646754829116634059714586486087579518570874780944078149889560052181445966038933583114445213868200379909994348647776629930522440495732236481384798988622138850888871090546963658426433029417138911574525954535801815200055509455709190367249622693104509377864380016039370861287326267296615120835330826709112820636100583733316404131154736813835699549884441339403764610733826565587014555282563962218818649447391674673110727801635294912991496335064004981205427463001924511253071830967509416140315685498576442845452561943968188586100583762641852653887675873161647368554203530799289963409369437494533984129504778065563327232735529133155223884723546289645589476987198745863660474786320780865384448394978132282849950625632719241080014193034886821747166148283598035513010111939411704524122261834849243328695462651755408904828907707630271324917163093776803188423576848893480948177383290837927127464311412745639279887395292820906439158520514618030955388084324707655462472578280475866870432126162611715489229632632988203078487587694665826771811767089695757941403450368011527509206383177469010876077271905361848317447978814346263131189012675773871948580171256645491296802906558604057342204993974638637427600255478049148656495513736755929183891409434998252580735598345482054311451485796267554825783030138348371721696662681464924364400133291160758421589164793701882308222125014413301344095941451440529382000457248595940290761058555803347132706442451302794029584468638062467810398451018159690048667741769507841809639589232571336701119361761571494889335409227796149985090999922574950978057230652505851967627353550787024022838174166560482091414420101195134761494331604753138764092323115222365423897808683610264980107443958413919480338957741298880508163641303422659615763333162198875081982298667586147455843901467715367242030373075080342457739079565335409113449893152778159879715321864468413426260788762178321681505726851658873217458040757741445401646450216650532162662531628551172805561337475277406321884612129737378390363559988791405548281857985357914045840273641512968120872417951711010508744835832034360841469189866781222186885990054412812356330586867962999693135195470552679580076817512882941927414341696360081730594411732431108612582299751754034022073484147701875940664030750591738003999438314754559561887412708450552641040074494961759182484537000524738236465190786974769798662728099921321204941990582431288971208744708025277361788989609141610950727049578815947308616739798417973160733926283694618993865364370675572433399165917878826754573309098199106359341372002703291326502142509722318739098790072321320882783109651152026738156944863596193337475897318896241869269992826924397630505486965711983788920210147428525615467954608559093604476579356030710276070004142673858796768727795491678739467209471509456451922611922130041099193526726636963830018174693189911595344147610284177267923260761168844408757135113287118523833814517837746138799394764152024744479173251061164994778535284681787386547574968927617622345509067861435848531158458370629694768850583139743896952135088641599319049431920350111766593058346687360856953354439878910147521677602321896527150322320084607926870491435417036351471292953948882713426904443077471571959771128014151492274032604307584627368563391142230760040212889251249824623836710569883656875285347946699551952213577371300128512479237971379050565708228578000211113870436775892205597196839833176564866906096942143695982815807995954762700702132981868728378826312381637276118630268855882719991538836536327326230004929897639762211106298781601400596300292351358875171590414519191552896299171565738252342970746428422600394533519995313351442445984869827833696763122407385714657942614376467454672736162234753850787296488032384996642428339471786387543939329730737608100157112670900067187153935142261658084576967392768890444476784177335025109989830767177684305535974055356744128252186217275837037411978755923850118480627232875748151278080607888635990541784310145441354344843640362168867867386800942606914314220183257104846832328366373130878083642588468061099377682026614621762563349491842535336102142662510521182120027832877838125182691095468293911073244987747047489191216749482829551832327930364069623780269306857738608947247653732986126774210042959435048982669497095804940886074137079185379725640543861283974498442416461936611994459800446622901042396522296224084651180046067594998289325363579597433781500173314690422465809625188814369996732818136264167494454311858162667757519094121880658042776874440745432021773120572122204507036220743003156127855685614447233080932581011395461193378811433075981404128318855787071801006232476916444341254642199952066988036705720656766125348475236903638248193971216551711193166264282477456130129935428481425222306883966165889637871607175488556200908527544312464089285135886275594917132211777579312898944326400962770984574537006589064501870914300767821245160787104276994935963830791187880448447406953482083967525832943677407362998164629549952193616639144756474603571721283028073207739062092836448117420854503785862847343197405346237301236670861793938059592202877128329721133600807784638201090085698948705703192840674520445699320792372324263836784711483620511497177620955981373756408392071428002197642711762687253679784767792930835114810103409407001199365198078903341858076503419016449913914243908669814126163334123823537217074640717301439781910352455237397897601136066715151743928150058083322233764643148630234865405274406792867187417795451325363555803112423802284766599200982038506690846089443183058024716704552785706882675401317320036830339396530535264120938487641060642203081600197781062330650210279743532159545202490984950837939529006599031539718363955196853471920346617100625421748531826875445399512473617159197362721669668282568022317965906563104684356835275228459529304361192784557657377174529115105931868935650611570427164862037089260034868311098302457510553940056675872881358383809773716641720629330159349237189340124756465699025911947520313203272012069623584037333641823868453693183285575847140070805948703671952402251615715573453419173021665274538313666415254661503447449663541527719597598684873690930404630080486238496743079702611004066843897352828852312917213281491013556715551822069477105067312174510202490196524585676081034137508931298550350737285184996101325821805842485925559708428489001364871672091984115539322249368919779799881623936525051196440068288751863290242333699811187159896002731029799868971676883356886264645713442449479303028940529915088854145566034122539900407909163117217274783898357487794998585382008363846771117502650472716365570145586356241396022911765227138054942850564404378485258320870901495393616019614454503248041469459969995027710835053775120085497405693065815298411358644337160377124780038091881648178282539973149200478440998931172631917230416762414287607404417114009200370885769600034257118781150640475728780162129314821482947829694608265405200009916335233387691913399726395127134234854871552920463440912425402456840240110887925745253128435142723634177362837480664498822062037756070466103743517623430464171695036975970541407842110154328758759717838333032250484052372342540883911848889032240784778554726589578276289611166380987276770865782940695747989622875780041938134099110467170125310038270817444072370529927996046568762774325991565511633136816465104144845276749757068386909135389057071568456331409695918511376938772310751380718670429856876173003956480690942883442926519470416614898879245273772001790843314925643298957567054444638415121318777078911663358106499018247260264555807089101793343072852688168709369449223830318995202489325170423952628489171385275033410451361486547573194292759549289506390216657598539756735648263314676300382017730681173979447647990508230942326704494316748015968168709874358913303230171316392346695024116633816953651562021154592186264645150071554921282989214761508357554156954796974178390518211676591436814719056708320010826291091858519074719257468996767934922605311961347118468291382952692427773381139259173912087272801069375445282111162733924890925150887229070196126493913363152835872508167895256860636955420445316762241287404077620129984382416177969162967924489852724008971220381553064603098734223083415858135216028422486119249189415963341670894410998839329056563497270185725403501291267425669150634202982220196251391586967348588901610384011869945959903529769520289172718415476586420431869886554789550335817087774522844003343263134924086130542032623384045984724552826101561908885649850079866858033102261814043072418097080038700247079983632693584235056631689498426418030040059912696337197206588429971767398514518872914428044830575640166365589562320372597569867455138167943870242734001889057068856970667378518806748168607160640291158687128878708812160005457748003565481496853989043193636667770776789398605256485917810971627723725516154403524135866747673595246576605338340158612931588357503455005873747023579254507810094631177985397757387858041628959973008666065099285556179067856112857534404273623248360166962858528264719780304021595242010835820623726882720920586771731193802217139803674154403821947093431791048873948433266463183031596444369509639134160516760024717569546470860798457149531601677356039276686910431646521210627322641902921155875172522699162104108797475227534970183594008482631859015910211087024381021904765070487191781630489435466518442552606765157289075511039196819200380988286078069022459517443856131937829492390161394938876468395871737209674866484645364534999807225714760997895001641370965730114746731912563278042823113846476595299907314895956999060981923888204484637417033745206977469802709875614289225448303325901432244006630858033468749542945499504357448242192777747996798726186267568045074071774110619170492589789907887616378274047373121408907716040913250316671937744356269680688335322098103985806070243333943554497980809191689036293191866312387606560764150291976556790407864337927020953228394283927445335946538617585177842742408001226886239771023740733350161169860946582358837200388386470919987509282373148246293595470148355729628470366539408951657938413629382438163932685872286053409237301247226390440169621527219610370159135979056231333349666240002262550726932147926389092484768959774225488283794830098416250491307431380614941282393708242876111413425271887041919694990232352799559207325889622193197043807709311597003345429748485382145185546086820075424426875759998563078708826015020565161966285972868543162891119354622951529377289064759418737133651522058505761312119269110970840416284756427113293148620418901655649312666072709394799654792886081888775694580520003615022945084088860306453287333253134206542082666640130387316839641041125033416510864609355611829611886800296163434635936870224501632057017702277300953625540165123068975244977775091504828197499716487655434861196356898065674537173438972344989198417910809936675395309161461810792819328144905885055023871495106390661191917868171888018538321922338856260932939916376276309627510307827745880752558925429675630018405175544619211732632120918069801681545487431940766910972701798032169379495671354093351718831320751014605946771806580783190462747008974586234921146642883388527021305100277321354595238564654398020060454908473883972017202736328869160564063850414730738364764649369578261224243902600933702167519665153696499779211264970346168473069335139636934456569828215035867613125321328729205368137998899928978317662900824547992287248892017866178562141446061473178246226208830209543397471485628239184142551452748940708962238058286910448529517497958955063864028132989031341383097193270058001417174397708633723413856824723596957031999618992689143274495057135223033344529120848640757075254920400228632605599632393936405627385125338753811222803415361770688849445005089691348846291957393830140030104406649596908649787842224161371449796261493302999230183298676947796528270027623091107715350402763109726457683277388996713047751149839936352640999883063535759665659744442249674422878692636638357870175179626083587399179359428981401390980796523183009755429411832904831927706854249390256988986435573880745168346229817695924154151415233500117446631772495469071209675646215585897183052770698852215000657951312682794637102037956763549806757821896788382453823547614832158983267617528388714189059580618690096851445532798661298316544942875630681414180964942934101566650023429140060404361946902437633114799986413518490130685301159293671275619519182664663910427194235294878599020533086114138125510671555990838664471935820036397151952233978099466751238360770309131485159781093935674669817498641167725604038938823109532201870377421339111101257074392526631409411276154833535157079306992626546739191954646750070739746539822065721791534188740748106342942642879667373469440469893175808304344378056241101163169491550698262683024299044720004627899593269213289274761592729673851505624321589467091131005314284660861188684764505484628183330665576293777252121674741057220254682910881716691441779397942403966867381378156682121918684848187458725504221074229352531915657737909313822460522453754290094430895674871845670046287528640907345754401416710783053453884501639827340835995769457539030028079826716054196417888601908253405075842497603095136134798214463167397976421918146172335657800064725920374869319099649019746040455056152993365584488761280833335453963668164715721758211574389966053534366759861340097637332974043164007190179087789116923200986464152305216830981946662236324215115838188029431167119204598248146769130127560262794469316426790626001103321179313842809201494747500733117418518130629831844585489103512649499241381451972632157187479623116452480143459443471782791810800757697798664735515225989908888275737429066767659515395042592519636644107628572922465595352302763826972671359838383189763753198868852079300548687144244321728721885870977627837673009950817603662310442290334775177481584371172167008529828419352701128275459575765222257754272753862391290204739300541293323722352490439964828422687834802268939864082127883628608052201826476687700692231962087907247473844050997504837775775117718583183101278609119216123085844019103030234865203578384009868703191918381236309701964920219634102525896392493708258787555330580004639532560392233801090918639575559175773203868034838344518155972843430690085485953620874543673216356405110302768190805058410183979651216949980770520371925165450777473955271129278228893704803578007040883351036247940848332851568251869802167713690882801486219492330151858611745386273547840019497804602225146935416911091497847394452072387127009779376732705905109126293661651186221471257395259367119078823654853571765491024877777397070778545407286807738534133791844062266988374458359519629700519447331858217052001396513248599461333322518900988389737368656661724683012439132536861818451110844454053517294684718021240791185945086316935025124914696726785008758657204456442316430661194021042535403896461527678053090004221654454722599189588038510193469379686530214199002390285769372030186724971212437312551044934228377412857856899486261731913612415449585606425256265905414155031753740353888121646201489683046888987667721451896101080554595395323369852548132352742165611211364860439396107655507126460438151170721433095666691701969697829928012965335264238588190836488744566460024947938127483378249785821505150218570438144125832746599684591598173656422721652566423964894260929516725645020441746945204531706038379676605260959801956645400484513411927041554983607547589535526526697424307172235311193655661297993729665692834669433834671515364703140366433867676277971757687755437498357145273192950718999870471849668087014144315320053074410814881135993794844039911125865665363753663571609213504149263221182377990951158301902330461080309966154957427890544400212858733305836120442804111183839343322880629075088802580469020996737964763845799970670865199140845351336624968872424523852267379999078102661077690290481395549993437536024368152920881322705901963619966585223145517814758374690433526290250462865306567196909010836974933382509962131925796273819408298596899410748957747445660746615502253926063959895394226012081740077612489906077486288367560936133479903310740379115755246693213302001526841731935594649723572904754547960918679252721950209780019300649243533038797323047935212167257340676149412123989407697205293680654798387243968879732187111103146373599489615654921026981393279545661113411557696777436789687114645727368856691627138961500666658971104576769105137116998901921140351199659747371234734881415208284333562309379188141060963972236807026455437794810262245630279424102550738975678322404945645674936907660617101284674619856270307237512292308837617838875967391233625368560423666043624726857913931475728894884597357684980132639823632581241892285481789816050586365756825284483922600500846470325461062634000853227191101329051796692026319158996472776608824579296278093192194434831613495966620815631019731763755407643119889905320355319664630910384257425526715904974968737927128233389194158188786120728326385548311503608071557786660665981717101889980196427248011939570154563729068291103198952284299875418981640563622057236587226475115188247382714648304887487599980548482237771663387560100232936827465843929176768121082333399737332468413771972297194622310431199403331910630310824835410399579944610822756411583369903239671953999760984011695686458114850830345334375609604774361362766149930014376856290692032333023620031531162249581214323551792398728569542616927112274406363642032359752356447527636036622897230529541326190548217975696396735264472323215927164019494340180484923668403368353298059063527260492883920785636121956549165868607405208418876348506379991815678676146579747989836754757714078918881359179308742194479196628621563114191398005674855302684733855117145932027710578509644575153657559672023541989844574090347281076262579267861819447789485434897984530633813946673202000854598442023512052053140983494505725976889042894973224192332270432076797375505689408340824053414669030316013985421052114658276933659383391460432994647429401820350300961345641351575001107086820780669970798700762013335981474470558957214261278549288194351521562420464904539934587906637739564129317291880176829817071030834468514144287443655186964073770612632592340492525497259312900463525864920960465022659275628754816715677409576272068103910448162370885064283338582903291145769519630957501157438303302127097345338225509759947914383338691859388911894536831018114147404808865283999871740703747821697320801485901943345114321326526518166592119298919781539402992856450287368778528688185094025074644864785663706314907833297709086770866561546619621563196159211321210489381237759823620860109197337583450411818448682537388060839651949839281532095841526810658613740506422021010412999993874929572444405807848704350840784477624126359443504368966907590961967654341057990212933355081307067620635006799898608318742312924585020309763688459046340875288164480650417598830779109216657329554425231041465473945470639836191103733161333057434833597984888892575143707404797504926195976497747553354604053029195971935377475297401055443184589717704490842201362322424358704191743713655852122820644899596336679431205161664169812944660895476688809739107254783915757041980252639905378182092043774012827451842884084017882165293894609047281957232140487058263358961081410045638915127578660382046043341545605282806562013670778152658872795911324196508384407261476277414560955968161674826320541333822205591405311355438734103135978654082587777357561930222318215267282385301423684271777668769410843807651971413323854296496484183369027765907606840352144950917257248663225615322099307860926342639400727940035513622638707501468205662800340661762203883841933486040013574753897114047012998590575295663965796923231266153328706702214083379221294141151635907741887059217603924140615969823863788439695056578918991882731265328289963990349085539578601721932770666335654067385821069197005460733043001460459301086382682705273669093301369887507765296132987189501299488959555258756157440951485452252809802845356504939673787425313729804478931953405669821673127235364162092962422961175433339458356704049104546332056294790342515291783141596980278980588883180064871681366799934409742239221107790149350873230172263919044145054660857696224930770716387160603845168361145147398504608564899286668840264045807844346682116834623014876656653733878320214911106849121225611128857380369820855287878867638250411458454574128513341959462676219623211975151824774402306310493460193525989413365033291434039693470829808323005978303029689403920089938054238845688816118597367845812863049835106819427746609364770780305560988267866046933927324667592058987457996412713884235750818357928263785913697007242179929912103782616549024962825419342567654484476206346765980309781572594314285948608999951131310542111640628476793194371126340504730340837048835611118140240741430057178205006919181329828750680245135919408584788381659887535104333073473217780111395504763885667061000231712005711789678285723380126671252116531191757246054885221253164193822608709444094077662664400976823920503351923061863938702763674012649198425579953904221576897206644408312844882533649526730123575700806760112580896212165915498303655037097909737431500961618456181514351798261841372439940653234747026601932738825581554533799968239517178040138551321539585379420024229511178365554540242175363261750952797220785088164331720301606928852984072665380040109950536420215934490949957562701913598113079128447676846567682528956589582500341758918927440845416184308965973011685854330441823211415037193813554549717012610972660014121362734338688646178027374731964390016376365250688571380361839992954715116845652238902608322647511743133527352728856025032694884414111130454304589603606586923016180642820345948360653920177435020397165515893139933762838140809770683347818291661858773203210262208839386699934632024653093014010581044633102051961540008905588185970947178975503904670483935390607441684585278705657765080005162501708980067442432674962943902679474830977012153047233058902198693644054523620701824569671888599094540031803079409756623202980147037085405315170799311610815822313903195817090809507500269073602341801873060062161264802288715082084632347477988451537501659972780439942428952658269478119300470143263191975112141353916194132608730946781595105548823340300743889260555955248361162941108861666017421186548962033864956888425117647963596776788785105743251186896731354284305072488496389852142312797215445642100741973320738996283181392195683768099707043269072708826531023372921760923750997370566204632847890445005407196630614345935706331906323011637217205256521537748731361278090443741222065272462405923667798726256992725588023256711202862718694841393563466329522935482023621070698757915683363972159016820193535047251718388646978281077341509102477912064834572024734667363522810173123980257586616234655565102550151332620879558981990613422825050910803277800498929888502403514747184869840294507527596461510416834031378102894618515889948005811557488910837456166164017359030676400353516681592823909228854702453730526450163876106323587370768089467570122676569704533293119102170328846491847857997743981503640730967569071541310577745229818895810754696767113714051028783263365530975965401945105203623074727051852286676037468338016877060842057149811558160087265424959453220473774592127834094661937724467796581725070563976648187615319402708205693878542652087790353613630140385377484375674958365103013921024330876212891922891518533237059430849054949372089973778044103573925088861214454600848542224661296013532786455451005482245528077867995479501438323082524750748714257192835467315564564754158585813214799120946252699272785314116017175026084084342924590639861674023277923724877431298632664704505951992728274159299332299601082078655585464621928043014414434591989300770416572193845135058429213991861485110506024923655036851571859866759779147768625651643589911148071547356777054494008275637726101537848846064176025328991156916868987856144064858030966139930441609603575659550455728318969678665080292839629099914058303603444832390552157772487502356301270033454491081021583622193973315788931521566520477412337087040285159390533915488096412346735739447362020763738013463394824199621170270021138380844094385053720643840955616671808678033858056513083101467200981426520495599637505500841377736687634963995456497669692286524427246080307625390892479377008697971014014731915201437995384810390895043608965311324554281702367190847794984379774872047440277518634052968428779280635139662958418919822298641449144253453361159074965702981512675468145549660709259853696851674425165778408004974575806526199059478882680970693734698584821031333237903067621815571904628189449093097718054268490023255755275759599127261767247527680703074575806901435680766066768468059935454434873536099661441029408662566932525131947622078689644037205941872192555650812224302931556818687229905564128334316698927406569323536682916007542783925303115573837145236492488920413559089523788420976896220512901490507764267843960650498770186514497102249354015837085094496843745015726396557031951684793267182413803638472297756082067657244123879696674163428385876307404240442326785190137396331845738551017558102249874460387950053132800832967190879929810471125978571603735521947467797563687422081109989449943529975786409811716909500151503820708378249711734024144150014947726606483961929465524233497347468511437133727179184259732928793275060600243774296316687311625500709034093756961758130572193619458774113395947747830167170626963199395815519286694532007455883526712980279877431420083400508345814613158015284057452452430033766397865562351523683652346164962299737006714553992351694215276526784482877424597233197590674050521642666940136333808549162389043203463672638547939239487876036168401428035686879009346116055945073424328818152640448993563845344162078931580147813677777734720016611015504454108330731997484819024543729595937257618174682005338909173018697166770672621066300712679629635609159986232495213157314820024747681645913821186099030950992281673696058402321389665564970626291787505583868240179282460418322312473547378914868620318379207999016094763424570722427846617609857748772697270567417749357975762887495098986009881932435546355509920087655251382421373746891577826613358645114937133659680016825657563135785099410873697600843545826063834911565976726830581701333822729655285413787093689657942456047004700997920999866401407533467795502203088330567570946303195115520182034848764377584539762098935363021580067850016096830910930790504091859319893075356276703934542350459513521492848948829323500158215855126211192275377481509054354536422701987984308485595418461230171852719068568025614738522166278384617674028503423969670520598436064281328026432426590661796316096919803885144614841903469869348121454053632568494350781669605816624340575191220328354581675725464486410201216616044959304743535658613201474233333136798401255247141136858654506344224123095199627322995207178590485771738224976200536947427996413026290767687855610016306483674734211392054320103843774025639973671139491393009066195715766829188053360538795077073756141902088838160722449842344231373419095303238213601289440266266036674019952033037035122700457713886471583196914204089039418016099148963016345587163878723959826472480020996641662409319251536757892142527281561744839294765422432289849033925044663249338929395179063820694892221868703587841889911913113314311144799222439040153146493897788030932340457073295397254118553187109822226675854132978810547348753697669479269417333270793479434305763213197921394159426155282098512942310121432764147253921601514545639936756562064026956981781813747642092807947307486710467170728396508722840390189776607816767011411689134041561088460842938888174358278938371604599674000497774559809457322578792881240456867535803704339711737071995936043213747164554383330449639765842405405195942566688815865093016311921844286878289200573373310143405620827781573890787587976836015637062437417954380609711097119650040017581196137848394238684931464958345796634980137727504794471277098028592447012299296043457351980549507451136683212244240931085721292336362802859583944762869104320732050414723412349648857242550139571274853786545310270847287329246088701252553682943909711193456629310500841474729601984753175665157343575288577386533106562013232614088963990444215000672770948873673975364804066044051447054502160634773462593264757839587091520443581837429865289846516992562286133642873652304411980492922721885713440708408320157014165138327757329132234579303931011462676587655849107768778541444852595786633393025780304376565052588021765878615478543436167190609239714473445647620033358937308556428284759885504153902935923779097199122679038299137666260801135156301722147807036757111580550773091977785589617537547190743990120896474135754369293730067706660670393894116550041513266466035965827115991611892102931963804821156091153012112689514410291545745761965593940756820713373206536997704462947916681682205444905266132329910143752103408819113974661522500117902115726891109941454780854246794403365301718840096628725583769758284527887244879788317316260614483649612136072036155816379579951892574225347398067614516971984872171020721361425187404741766272256416610915018065027465367383969611430383374096721776206578343932605860756378485050709589772445010258938273068465916937686619139966597000519799061245630248304670367514477990071873212105303152298011814454428066101514632270748791764642891048470238621223676921276615140097236311001526561618350307236253425894229755764519643071823474980991539487635109870164701933268910404533488439925617367405572896813725914394555403216432556191443110783976980344787789070966002014115073451877780304615391542232920726635481004590590719533195850848990653250131618586909751040194224033126435985869606517530630573490749232431885917355198596977816381583921732079941495146169849939917004565957994173152611662051242293264536723430004763290394211455680448762786715629467488495035316815541552762041065895985854901148926005283025534363102234223923260090211716270392603998293155502584797684317232002382139116292412937251548885955977186826417644092133083419652914426478525789941056202365393664768843457067718458989591220515558812473370742738965707105770888573181609744744068864165451864829235107714288573942464907544672691329936821786108897421151878112843245085174435367369626128235699005389673849095065560140816347358861655382643579093944639683622616133344960857560492223071706950006322157403742331381669077424932094955017345386723083223076134665718516432153367259723408874509550292997708728476075047710608393611100258840548797884931437759320115698245760996513549095302738616368251987954216803317253189252221734020404696286924514066083067145678109573699361675879216409512733191094507240816539567524151849336570010064987569489799882549747329213793177962316182301291790048411275213094715507055901003053364197281361726041613841349633791038406391374911054022065580082602694559254071314691497809087948536452460323283890573512567889809653754132585212468106245954024988507925768879105077908556422815587440385531791743854002563050181963670562315112879706861123076237675251699451155196301968297977707084766300555899841232466907402090995268298933560495508057148399504820096144369173032336058391483193664976796518399063012925652733342718293152353036530600112108871638263156502374818037754465401890115708833610419082056345785998152604469338385678661585289032566644366647940677284453916172721525495175568798247472647639776462874162907174758814309039383138266811872735749424617988353241872777763402534794749779617557134048924926997959111267157906623434389977871483811778837248697533327098877584698830189645918679177691724415150372676024776767249514683209808445753162797907288101937264215013748792514499053306654776160952302231014517171553975975996283642330294131174839777907927666821043868396161848335815451396331095497374276103288703932932155537578548722023899313011291933135803248023777993050196229459058740062060140205824551714437677375098448567516621564856144681436078168655609061275805286056801402623286799362185282797476667056591669963459300132682080044648996098671170885874920339764611244202011731030274773038644095740284634239061790674817671885070138125634150385314126073450072483757880207726565868924680795903063193967523159792719329955076651028533870650093381211916873817455713815141284515564380306755641238348024058208585620543748395147976307920467781823468763951448069178084235670665170254644318772350871165926935292628781954037163317203175222641420145180186224672264352107020930521846342384409258259297320269940516063536876715331489520120216741133054571609662021559313734051724660373199540231112830317469496010210034192212355703020877907439541673034016486004262294199425098145663639412962255865282139355173750284560693069646543816687582573803008650923688739430096479890492944438418816619776233494986825611385398685881440486159094696839832875961830178343557383081170173243215652986880919866144030696918121729675456558864935569042310661845344588251755705448941117784835843331378862599717650442534879485495148573465725499502799882319336231457345639375213756799385811728582769937102670499029469949735054264976912154619230400837683091771978879177554441361900250844983494818133479345959794306753982122290786214520298978387216535855743670693912861095272316156200557124112529287083114544395978486302033541162207750686801746522828203880019847416789830170193622499979071694632842421922341722468998316823329081682199205644716118906626486166211611652958765983864444278008541108217449571922871146620400458405838774838736835121706533920004871669929652146554127104831146550058813064291624362918574241986016023966973327731852257938398355233301680739910734753153383544272585905915155956932082223651842872069270751770930590624332532963161771324186939849624871911372848132267225643637080015877098345473517356273279772696677519426031792653752048199800794737036045977139445514591786808888499535420280745549006020831397118934725101015868413252914226012933521581798794803314988372609765531644540414157324157524920853960909933874562959759901908325482699833678831417550393434606729935754180310002014032899465231929170421469157496964904577151163480223197115186469703541742330568352590444562250504757911619864000665110869069626304348841676419948018229575457077748454185985241028537610760692801916090002310832703546791963571179226292046937804559682000015168492858964749591774371027899847588887134962881933073373000680380887815497373911155846263381359953590404133325928127255989459283284882180373893933790667489992058803283599561496912092340733196778774836786320222788965115545527079090813636565769166132973153362312361779128725205042831952289979629202767001358261766888984990722845869731488281303917510111781473881251841580733950831965944386858442525774389676226597964713600353746449168774225084012390665459995494959239592214563534810874604583078822185837068631610326260833996572685921319467359514942127520161872556166408504827433998359984760686587474242406382254157265211717615438729274733043995117524703952235369348265932293481648181276074696226176859419809247741467323221105594360848611003557395389980452210832153930164739144620324313143713341665763257391819077886985908793068568627211608275493955750792066928433489438641792047666483710269161769973608916594906803925368008570462250987582162002069281160016694781333749535147315108290880655538459381614768098623314537742283321508765614625217606952604344641825656117458320312933023261228429474784425606430384311559075604160360290892384339996867012618810900489326683433742093604022664510737806697887918317382891521545535347192401397143164351712579022950723547622260118010713106262920408428550778817836923675330761425621146972826879481196964511009178560388475943215236949205853386641494835633653098813076996256608386951549095404755184167468006345893723414754209945604066593067034099499761743640928097358439729982901491524264224777461372437417619875037425771048690862527764662697506866329412840911949230816642966546948203758573231501657687000000683789165659591032968261802151102001734920856765868285362917476422485797546268820179670365146328471878246053610399361487771950027857538581784403902166769741509413136432446725537626961857031100993616723454229417929799107563528093064393137518988542457184444059641746801819565333275684451549148180385287298834804280186350377030453066835084257822961787027549754088266691166160334021528886804552424376291916887387864082526403653480887367877362695678019503811259019832498344129253290926438882630857259482176606668884133756470128091845387442878856510862032948166974495366720118671387418925208016250415450733103470959836543972548508138598493313335009923906593508336136356149102109554343791156387816514237233162689111726719649063316757128543941234709511612608239552557498395230063012995363693084541351652006437004319391978527357435968133257686302709849983585159098876217320347492157550526901968081384275658176956697441456336943414408981515583881032035552474560449070862562954076911204553395319263928255233422152031179064729864691693318089265723286280156291218318492021076540231299475021720050467226293275602782117828947649407264474782952017505590177081255778985181258071136958756096086877421160021093473704736085071423512463020710465771051041838546344492897202206568887424716528249783540726767738260832738793975739402378957218768917596580829097654319663907036122694616019543164949277505844380619704525814760117513720228499667789258958640927769819715005986593550302126226726203382166678305030563010251056747976433135136697034762881223514915913847073461422939861564229587129162708393796492281637346287826081675880926167274534114973446171446537086739570857410872703961607244862757146059211464789872272655097504430938322742260851127264780747614165386476452788652096488039675802371718078185874057187211615700988785273908678829438443799549866846345244658811916175823856244472593893756173496932789730918045237800095535995333895429323606935480543939266891360935703973400964922637738987969743256748644516272844364774649046477088610164411966935210291580777930785305643414342210413026382766324312090602982877997206041305255102533853626752383153902298347542618722227537788782591340433232437067204188084094867256393390520293380003371639069174381767045044523702441800265806600683059501950677127382349595523020811105040273413239682024817813635996628627556433512942830549921623877866747557239949065376474377177618767512984407647449895356038738114692897454069588737461880802845704168788734418766801723776599595148610874503793571968148990411562727821404599259178215388441103118429503721578381602223879901396917675906060909284126382652206456630962577433911394666310835213257034331735552956836647622076446360812839659725906926031811752519593507189158413003933834724148069303843791442575966292867796290417244401119678776411887822846789871879502011189087944409439078105151548014805770301478946984255639778355430330762666735425186948759995954993698888244934304307199086207829185069687910155203532041020399761494892932961871998138960162666677276912183180664005940508369206181922224695352950662858889511205224599263823283071156503251111282135266918287868672487790651362995808750999886412456872030979021133212596854980401988098488239060989446398536726363509749259951375958368332752697482648242909817630090278230044013362330589514516959750127274932224982751401717493036938216467747232080812612875638622471753212174379311660897808627921888155986366855174678714810354781697178355593996444683179131664617445511186729645922941060806995849906372258120422658464154322979182623558207585767977632747358791211348877726585031301003507250866739242383685877991221003661598447085006161602922403671651536923125797222629199552888401094784652181189095213505769287608916648501612137105906849502176604577659538585704106207365053576413495945953671589057638845436033546906536444804067474392249125951346360819230020622176619038433219297673577726719303597805257182995924166950092184426254855991628810095942397323918162908227337574409749055026525355636298754873673777875623378849340813526333200511155689248626671157850669520013066687646214078965233984300803847259113718924939347576330180231509215367270942253837784415641517262502233907355931718758423145993340328995347274897021717441799818277068153429781294770723254084210576610390185151876274239021559440449378697013695996768652206719023653549875584864392246156721121934296821011775208076261534553917696248367234057639251717636930266118791734597787441274338863928173936402147038699059143107333188231230007189304489022376142771469767615154981576900952099787421104961198059530171960619940108209931164665288515420227343604356694506920259690311664723339658220533745052723315064544688981517148312899521718495828842600567080999973111806846819797949685603628993450378498214580857137722922592720665638252736486897488318979128514433254688309520644417237701992202222381801910160377028787599880435595466067115453685153101487099062943167674418491639413486252699045392921953967236186343786321611481764942786750939546581764222185371961541160467093557546284971180651552020715204508604853159793503004968807427844598426199772066792470498170829160070893651751886270112697761138961406933318536925409132851222864836449936404248685107503601546655115468939898645513981167115270008772789515184205100215248634634970540144552625300754513763975203014285071649713905227788723319415162186391462184714187375291194740160845732826630048188232914360777111959355148078021767388957924607362138215603960395724460157959648563153759278169288276054089284509627111155982205422251190749966886381365871442372815692874341050211905852338552647965778969248797611265514281271406895041581625042637158154136121339138197568446960576874368667330125568819443875049985645190842469185224152140372531250460601162057872261239254286589812784253185085646089865029595813773804421985784788117528381622635537483859760748205281795565284156989921919469224834928748350947799189932560674946305815834758633066545637836154553988206515729414026840735226292377290145918781685258608544954203392027468592454782722935655673794484413696729901297167021121422069662739396468497855948960112473800003760595390432107426117586966372931578307523431648397782050034092223419359640819168593607670620932074987000261975005895450605855375741993553631737394392326145238845213020119090787955909004575596158865766256431333195216280435506957322464208025653115166497044262815233114636357514741815455712264399998019634163781600471761129490553617946196878541385196755345112907390539865321730300780423753192874388226608332611993335420391902779056754677175728683181482385799807095051529279184428128637839922937764258745514484537304598984089204893708642187836492013697366623623976208991411432003229561578098484301659751362789648827680249986861552325697947906184479691095153470197407769221930323611912582926641224490466032442916494972517714708568996183953287232848762063683354715950596161525732225943046425876966547105830701390965657056311878308471941359179125781221444385720019481548840974201131385342202771514434328296805621112020687413731729239023644445467603683143617558332069865557300635710383334384972788455307762223946492990935087609850463463453026322278113617134746115370685524660016116896936134777554814413070320979901640912402840759644617439826873858003864232743449344337969145520797273656897348563488434696714162267506602824141009939076044851336397082124870859933512389462292527758088025739205830885747607157358032165510481698770820649086861024366559828686620331148104837105689779799642235990266867935333925522233540695576209674642197868901266377953877256052090008159405056430226107754706018040143076526355595024851761207126439138382130607549754514362527564795352192374759313163424102815645156620546915492320735544069180678421559738639353755885606859143893838202634035502446146328213292410047560563823930001996801618190585781347135434298692312868603162500202441681837366290846858685727299657442363750673884664194574270706355450038176922062367709557857672550511914616346380504780186658814184979249463949840141840717708767123145562287129453054999213680562840536359915844415832530747126619251964013437283779065225313464542056545771873341521254810253582208964757013406612366776747367698884392795505690676245814648129854339705330796213270867299793894657618130226393501341390036647640199258102278225657928767987705254996889471540734657752497735223098480742947062659423522519105212126621448005037775372370243531699285005954558610977242056463827239076019905506776681456554199366826447325680544499892590936871485058196721948212951492221323926724976234537163953582185531596506185638659659146321069207908382762218443468886984406955074649634559911221311766436282083968176098606455632325929370851836134254852504852078641767886548710395424617921770320896955448157520215191044298148306060221272485528808259927896135013950999608909298381618692053827948427821534306562841792750232923351976445874379707531699660589834371938807965504917125094034860946822904333896729632021375481638496073446805260848842490688391945389323072282690101470875624621997715207417295714388348800346240372137103149286587185606974253145409726254684055027226914708204911459325860508269059502069734745467863324019939171601939851116655702539842679457828786586460954264495566594787288090996190714193571171461843359769947656956962100604694369140775493640695381852705529488220311553171213718547109296145421030319044038668687544666665289220772207638207719053295892725655020696390489667441732940280589096928197701045455480879639201626202543292789676787329641860647682969056227147388934005010260782213471685252807101326018883880588336402767840310392642600338127199945847347518392451160233201624719753555742812154517979349125740645981755325642685093182651390545458203073126934652236272796541236140119239882821846139546853260026760176542007942302912632389060352787414505583441301380817371830592462361056667419491197325768679520660288382914412999452858198002104612877777097785779337172393158337036839214166011819972675955129349186533146195707848057719527295206106222452610444492198776009444073069066087090652892804593557490681476287535700935392269219261098465098716268742754360675193999295966452962805742661467829522314595012394258516257593503308321978767722297694617556411389138409315094855387179866340351879576997297610539037946893513670073460730235008172916995221982386598656007498601918074659663356020362137407869044290667006956570401211592494135110880971439673545427240297014869213704981352085819126990699921605220002344123444423067805720938623287978775627101262656152010698507556188031190091429312611638324128530268863536967631288443531293456538908265975853897980713854812117733950683080226217405190412847700813454919048726423935222185379552902631968406003629861469852658908367386327042928377485493168471417855262065655391842736633501458054954805960748551318096079599149874257645716513657669911507669984384382291738318285146069788452181770715666103170435554558336465942816313453546150315357699252301015403859331900277215309147742397762734612609473322314358701075004413625855633521137688675781186810761806929014191496871550803211294550758599754442651189328287285268156267608596112413768729364189384982047848790049201749688290764333351135609605449260931173002590247974515812469431607095517468273891911128724811162794374993516093511623086295860703534069287082650280099028462359783849660190715739889954102784974568614926010559057870591396786055769847949393806484875884064178859310967222931921063133917364507665970121016057488589416535749844162049559988310187333533391308764057979619604168097569240963369734704923802321000893808846602220435383545501331788227926503694698369385414003432356888421488918631039992710827318245696499442415243447029885056319245309427456227499688237074891004383769763667725806638178917514539794939026474984321531479416883208749406277780901540890130967444510185548600455870020222190640154956413422684708838091109234135821076289914245734360477475060734839471437584818998666313461059572137157686711324351154264321538048472169602427806057687244525652553954809599168092605070548706144457586401245628152255737859213144255635692195283823797457651807097105006247788038843386660657944319340336206336409876817166997998898436232489358694476467304192261610747911688823048032473070960985768086398526110327202430734299612992927112293585911707827110835207971667192489442023209935402872296113015260796368402105509057788589950325309007400802104248194127898328071492342502143134669959238974137247032386783153716368795398603895851471472955026934180777098692756630803702643669067182105284232760682515882399207177327547531064675321292878998180208710709036181338087884328896773507256919488696200786545569123689246194963881113753957592086353033613434049470806798178149285279460638385890260606294973815881047164205241849845313648896992669124220829797114749062810803484584725775020712488733217868047967311297035352246321966089806891944437660916062028495613077853530632996160968898650537703767956052881031839214995058809005090037614114568606516098907235241334924233597612346216261327381998341217728886498365758444259146547963095569744690504214026678661148421185690815768852392529987205101613129020078404279024034737968188091323451625255913222177482936169490302221637895358718746590639293300074825682255597043925873612542795577333886214028259990306914063326308000799362651527189982191202114923514488181197681734499837513506114770584997513661128798689209223199050056907176257728077997037602996869466113544326557032800619254995270808156953041017513987193796080222892248390368228151305337183112436027061176979497430406712818825453567417719340975861592233182551952675536540112865802869882593567642269531248119332234851034599324445560845184498347100337807330533704632514515730459415078832866898839327310925049486550980386241359153282001519927241127728208184918549374865879715364547428024501951896077815304306186272182701858117789794279502798784338599046328047381396945856118379815877589926989921318106370922031133400962659638966045021017003095770024095207579280362558972131125510504881477034629400674482950645330045998171910712941257590023574435408414487091924957685107130717901351041375575402396456838813497236812397193424612512785109060322716708407673743558191950141021701308927460466097621154733113132711276822936967211173730011172936274400942985344275905330262739233228520623334133227285998321210436886769166130771283023679946051826762436698514078163938982009869926711643553793002918798094506531763070664371769144653584893267640178798847304371174745475037039524072564804453131125601787853158184096814991142833890036901022185078408948363118228066963264115312716236899184376242923806005178458750427102811887902290596509743807919038405773354937458192898772212008353908844550610173216432711171653850461697637313232097511148391658859156642618742927724752277654763368198614384184301467806874901508130979933352752913052603064759780434377350767897996246028569090551355000412175993217427449240570042601437796601125387844946361365780366425774705645412049509968334236405512951706438924253759067420839393529569756869822902001498606275401615391450605951027092540870924575822026412554962475037040513098710322964703528777927065163341068977987722099418893290695037953945947830275442388436945706264659196328359193592867135105441137744693407458431503698825473754013475722465289380868885795106766704197173595466557509770496984744128020453920029222344910618421642697468811892195852567304447014928393955740548029173922380570535714069272174043028005440499603085324791953846840607012786688003911068751009586202351066033736309420369225201018353994018544549250045214086371865677127919419485834617319993225202031328069596596853012433923252179325280765562456839206922877623845346382023132616076687687166352551544883607402325089501545983065181619086883559013520273577068737242911086668952274012521523727962472117857699506359996630240675004660613511725015240309134695398359051077729688760404058091408172437876219728156171866444511941102382395409615263514200053809596207249828707119877748599468044411672660947741164503179143732778001046741997185255060205881023217394342763330260513975186819939646886110283992816498169134612915695977938793768511048762137164395158558360213313161835150532850966416231468115160362203407616468533031838683719918435978074626487398501124278782047155211585064832908004892254810631522290899753205451119134420897928656038855077580605048522416087719711505419994041037676573865073057284486825061947719519383925583299956814345214916517042213851544755135070329610218953308829821589707505736236088293442297494621788067551421201342953537464117693487714502826248797523846541419082452161449820724299118051144606091147628047837781680160143732654835853792753400330411063541642797766902187703190972243827101259777421442907390633707379853552630436171139435203283625624326249195747343919085538859925886836683788452487011556596892010496617286591251510131768513829435451861185085751922680198623092475841669422270063174303442140207707149155680987677037394230217223679332043729101847900352347095613378063053139149560324449270116185134158244563266961146053726487844386642841363033344064262529873216978077993840449769235734891712922477376812789033915471510882064640253508330270084211411306669846282477354074152181900391487224116215770371176952306456933623332126851325352394227738165579300929966273957106773927942875149132575243765725643610530384917526218068497516050700604139247802803304324668572570596985792734438871119358536417790482427658929032151780339454337562352677577603930954010468425597285521946042478369525645327931884021224136691174165952545667978378019550237426792766245563638957481750713614846771303253229094490634980751565825284069753824689152710171917574982181729077323564154178923795506191496408858196208160363619275447029028032174253972626019790009198326751813552917016613972974444890019867235064109312906574817498609999400410874458662240425842048508125182491519106063127170100546295788246244992197324285266562779615105802122633103349085862383790482769583591125929298638095655995884120134869793453517583930275186744799026331900841899011964172953672750651369757926521927579740428800420721262595323958443664867421694112116533529908610470529473309307389619258365854123108550163804763525943772118360034061537397964713316297364337285466308285749160057686461621180125398944015243067493021332476760612658027378578734600711065969706362933375122635220051473068867393732602409283605682053688076053948633559096758663987839458887541956058014288479530634863467337224849045087117959347518899717509966998120830958802316165589094807819664235831924252065157951241488470996001516663406120124299229930402470731829741358832170492418823954736031240655946139607188440434356666171007732978779388439835118217202171711802038310497605393522227028514064569952378382367815121567476690662117645615825408480722703661724048480199936059133231128200301770727078317987937110927035374447852863277192556604958628033723456235865490939421810765461964880354510120330645307788914427648158152222518472728957412883714312468720451322525850419983664350360877975711532934301335251558391623379988320223892665426042765660539656479402144512758572945318171020529514744675637642089284304736940307146963632572168681579053951495857498822647213893050575045520697266860607977666590232223743910528606304324289772178437753298131969960687884502541259117099265687968333145547900681037876365915695542586916345892085201232003606211219886785515422523237111450162106763020846105705012400570133359610696290655931183488798522482112044425278150798818942955762315146991044060220930074878578561857327671243800803640586046874778390209997139966727482070496755766064104719460316926145942133794937406088095035077917948753665136709221923250162853939377942642504879176758719486653985496174577693075038127847371600531278679411445704994547185317092940359808516421560074947899951558884865681597518101829817716968518861128240596465837547456065231102989138689894604603721594890257294974685493004812936380196481538722775075957495406566445238956638566263776528872101248831067312245936803455570240226122212216117211660565276694057989943169675293004468285301719600141677661367974767932675143408273679953155075229535078243010925588595212168341921800440289672887518068469475789610248880446109916740556202110436684334158812387633809600948953075048631574582668440307725225627058815817016648354751053410959772088079539470064255014453273555294096802385344813915743485919899151971782461362747897671913019546235605588804680620088171610703989730492759948577282850594498466430640038083373707105535247397555402519729364112298947147160916717783299408329148545844280358872476062764940094973585125373993137188904899110004998339001169611234012754215977370107916372078538083030863273819861906199109868515519909958512190319626414346940964944958934133702273006875888630910088074219895214557115145661693788174929203694050747259539882009440155177286268747265759836956671117080238006914102858481593120031447608656061199823343315385998643437747992870955767039168687955542830152463005115504307746205057535305510007675364224522498029619522546127031050937402855945784770321648645451906103963982127742421002608492926125781853241929757487701843248906126723053864623945521552518007514422182567691287099499864658297721870238385127193620653542874839736225947309631626471030470281979379590696819744647171107649780660798834117155983017057052487674947018845564142755670256037765490205585778226302650190334917502313291415510391079231399334136208689062050380120308045833342012486960249833892840297855507492834851034386721863309736992179384733246211623083932109380756122449515546672305407170115683382685745843826953604042731007561534747582666998625626009516720066672510644746031851316183927203376555396449827111253687287992282128745742091741547998624636839878049212612814848011785221086414633695104532267615944487885198952213987856349744483861980828481533207543869278702584005670098030348310090402508632106913901927627530325948354424520608797253083163525895412759541887843190443504359715696158499248746399925483697549365730504219074590008747607225533572656396688152597747892355595774809532686603823747269013469584799816334023534047001481544824590342357079724115082183239458490873608500410311892512948181296187102105316493913370312547854969174708427784420815385818617561867880553268516145545961927741328254405463516717761718964473490403697529532472668962336467613756469931910542171920532794467885476586366420925115617252606209239764863709581802450313781521466896447356808478155643500501996779086139173983435551531805988394416145167742252386302799403002289608529510641096653489861236440850910891854349269927032054478542136396963187543468424574532132870988886827430699659175732202809453293663583268557403507467259355959974866882412503360489342335386128463502153777257288042532016975093230861731728085343092292743136846081574129646827698524801843734752967839080715117841046141918748803874253388126058343952031600619439873982037456803240270704190062651788845659877974033223164794851734774297465826650641993940588494988928659214155747986648726600474493506970607863053947585513191646751382842142954127800771187411039992338508046405524750864504520289921263400783332153970598055893952596219811318955632655426588085363777257517756294163278792556978393096241469131002248896444522134112176179711949159910459017110640524608902930385221651517231113748862878296073075849316729195513742760007551068134656266529503485403941141759811345863938972306855751743645868207192887645440356046621236279437317150671218781336971515926736354786045842279968728801553795732919209798235968860704569171379554204172265449230714030199888276209538990556359746639205206987507529029737290524435722819089283699404402422486899100784387400332986458103826674519562328770435253391865875659489956062416613282033033855757174725788665300601593165006738506051069854497953191420608428882292278758665244122218563469383183517894791459058247575652792599787497520492852773612948502215268389018924029686333560770824152599178683271050503949924065553430805109990753656443211814366645540765615717263080449117888030956749020978585943461963444246075838314447416968061748892504714554260109522848759374271017516838928487238974350637791885567646914716510472953758335547640868799351788700299023887780975479383874581675279648962398867401076071462561151785407848936624654491668504911217748142222611183348189244145457422370322543278979383475691982568951077097909542686127949455679845974941075760415243313256663182915859746251258729770320547362116546276379881661793510802122945983071298399706086094538753018637444929361162806626632545272182865633317740691451588421958827582307478125515410016032080722171059983031936541377261607409885751965608282765502335890412105022476636570265826961612005508562052501614807410079115913903394360209454669487456312441983583442583695150731099476749271944082674658940322906004480293464191030438786463112128436511786797958346014838978581201975646944582430716188876823465396647787362398161514247191390547975901158111056365169114065450637128585688232737802991879929471702902142856380447894414963664105584489911253408713422095764246948657851777164452975610465156955361866191656684798642576197772470994360917444024638576749635509912248569064893597116341781257425815713909394999418362514932914114754472731677127778187632403349492084072242465035351345745585056083357687937333512363655474886189941897278717524783611810499182182457391858652960239588530287505717342756292974445999428462391486916018538039913462132556506220234727359660847300213467535907469045861375711257072587770124038339505030923017880343345758563140601311464473439101326783855929535789658115364406412235092869944902889295742464002831304168554253183763584359764162492749883466439216851831627214947713341374684081726682847238840950187627318258110164139276516334130376152238592022602761238012567341733414678960970512734922785115625622081425565677852112130123328733399263009280422777197229529078904916686435947387287316019232745317919517410498252397892218699499311390670076015064193691834998555046245555202074955084153571107916238448973718971870287315523886233791262936081222265522632214324223254539823929660835599280964315799206546513438451961184218052076231653692069750204412299041166655857341359871709625879143704520010633542868202444044438257376145522303692186148406552919569253688716116832012732976899221016491771552358167284231068108091235229505223975380387024752993263041602606405858213698113243006747835956131535131383178382056634212822867357472166691591148729463730067214960979632694915684851250868441484585583876901560902712309068226941729982204710394104885222443475390231108998114832941829774719801134644217205545984732873366154168583926024911639009066244251798486004139975026712188377128458982741553846722957470455905108393573091563764063179006498502954333981152223665253616581554963249009124291781414298865445141385339560349139975384165326423057057033324065820589157076633678605309476278674987838342411264358190911465411621231083827198437212002771943314831321769259282369865943435450094654420398101286830932193252170974666545364133178492470021731129974749450235612429564257959240064395852433587514901475755698262703315678048663776129788854728933418535435174645215716266895360978200983117337828070419286408111240458416110695791488060679219290276193230328133067575993701791343227265893373534447246300854099105521206670346961558500394890767924785524792889499226484906857821645896977387389659071764480814719199448416543855891552423620174590173806159746564428928894375970539907589282914221563882594090775559608571424675345982020845165160398066086673370151979074531035600739362141551443372623075155777341449083821442200564168556125565330301112956432128816770277452369100636234287369384438888208060513536674313152745181088329614773620454837038158568682504978217350507486351651203259097328481714636207240219242891595062611095298926455699607179759749169401849519999312657343347151411982439251598883988478194855572258491618883252697451825716472187366359281925761751518313572893296376512667615174451741865831259685916711953936495050245039688985830333510197680530019221368513889858425348574926780419813689551677807653164979899349391672555042599659148037558708136689200701229078033685956462670837439166139202986742683131016965010048254005158796520812670051641121517423606331471626925179049393847426595821668544694036608351590001733934348949378512384164018544860053226860080620515378602364967355591888134099489372177192185511436954577436348176820952933329701537762327411321711731216982526244203985348272342435993436946341020720474770531764587369895933982731816963051757182198461929916872469385512098798778100601273035951768395485703630777743906882779905822375052810921825872145953693218989846457635963614272651002567285744650384981093887073850835934038680575624075321095289588146046218418380163107220709102600074068907624417929488894510022840738220567114392169215139721496338779520372359657532319945027808241320527715997800388520396999257271962479963473683726127913104461101470442550233722577285115075179958853313773595370510105293644090776363823561527886076031582696145993316671155709391898268453315966534614312136425464858461026510865212272804811986330590252524731352476002106270127589027857048628702932296197749724971997493449506164990178683778574632889988805640840389758301459261075109727132860526973607199908165751334197303997308395212403812518788593916786979563502688139636705140325139704911442511494482307724254471767432645393537339282419964781899457271545384411241901435144155524293634772824984680619792665362364623299870390529906930697013831286166529093018864758809439956145234463392984085354977595361548552893351243841089747322874027572511904451225326827089834810264991994042605692409080853824030573953014978287879774134429873809192389797758215580528778615084763545556155140165587319381720742022976241305500137963738261409902394340081057466134692180948546117564060913521398647899119859560893451817602320769298339628044683411149550767808265024064591159299511074416572972848606512771161605945105002707833428954399666816829339828204232801728855877965542066581846841672135310938343696407819085600505682682965918021847532781622515604781658895641377001952595384863003674466333759755315235138585794392327350916986764785556736364744240086203558738965650868206912953110182541503923814651945722884722522430074764649545084408589319868091399776728088432204280200084340397398987032544030003605418858621603242130533440627031788984474873963083612293222423602940560489773494854792244002309306476508591008020643937506760066084746578955354949260193654260718912111377775463708592301788840409935769442109777339057200956708058237289911635487250494158166264748741568968415681041736944243164244994977723111498233653145733453910357900328261078426643933036419970145648502449610800838359825145153493433811649071579366739034928424842421376501808700588529806001931405835251233835392606341464081280454841905013902766440502017611139021319054016318021427369214981678473564325900886365149273763489998234122959780552715382804884419711205455607458281770164353531429082071049423291314932161461399768167657946527239960655066632859472749491494012439542783404098478935005388569555197847209400699003197727337766281111046252707600389396883114975476598356649678170349161736539556542254632041433679143358269366300205158299885854552604742868958367820898835494218583791687434153000415782042796116105019893779288236944549477289077914760383793426514446307798780046468520310737667336597242733005453444353920177856235454312180170304229920261796166150856056199509817358911604671211061167597016328216538013619904570159244839619541778773145464684955946332544262824015789729402056957688769146750491865347652694741926012157205025238286105707443232079545353969381045634590554390250156305594867826870116321312573702347781363922887917227038770312773581650691799900478125109849235891974387045682160944308170868878752958545395484855682702173978492314202548313863463532662862115158021799814868891769541177941549025508916981561135526436510818069710041708527379553532505107338141748102979981702950902485755771752810128230847484116103499883616519272783366270580628946821294107661324248811854068173779952700295198427943384559539049107569704694660169660570824876976639523019675184353956912006086087062084490677805703869671373159595910991440549088840722475370832391262745056847311841556763991914306144214284215581237472292202069099331109214529331874435919694978933072045156339534814126775917342732376094950056402186712627593015525165928334693174135564840173201163767059672125752487894491900258425912208938753244612505475525646787952074030424486368080448426907558843525622997330414916448361412716039745622216756316981763137465328645015214654880407661782881388910187560873831023279810404568550825177064134044220718951676125637283995093206730529338204362676434250445044810345515867602245174160510934104258903792592959062032128156877664653225843324938355915724497026806716225029015115725013062211601718178105243374644319163800475305591845771209898771708939539490556177225866410947951665704439905497181986242476569419201515372215121338035222458529091791388520816223434315057249108512010246269146248059381317165899774298420040679447537670094142043225570396113426106445191873143297217918026635952720813030849541766829429471644904147589409846456809099145041343575773456653594130311005618546353442052179004688235506886511971540651764998506140695891509538296115590221635025350017493318016845816438805766706356212120650999552739406753217829843768165932780636183947138566577592357546113799656168083977419727383793801038421458596560921613103655383848316123241008473543710163116299673906870084138864244944614286788675777502885769421412716096332213929004735956141593063609560907194287715032748664977141173753320077078379914685467127416913907604289117615948982129429314297233472277199881699745531862466851089726740767098331401138779158836319634609341824723272558629559275847051135152829035902937130560969346980797661521189782442775329630077054328492588994907971029826573079119897268874100621597577602914410628682544814998881852172814750854025226559111688011444445650434994073281989650285001509448849969101741640291439631581463062803098236264858410192064771615446828439053242652058456185980738949201890458818742407955841361350008706174351503773867955432041930877799409204861051545505845290075115801637087710424151732071681568181030423576366693928571795277368356741029284402067600903961411168620823195395042116432782136363786154599396926277368669239783255925990003879634854833953574817572836603799855481184889316264299290921111213387600241522995944833231740947792868001679303555202939198090265444866801981417704265813020336460908402198965386108717129391970753942679143483267827925018648228362389174042198161448014434458729199235881282853829131103575236156756852890669406723583445848617942949981375810925549053221135660570250387142484185513761425922834018268831503105556706780078575783315010524050792722385993218317592650473011576242180462582167586774553300885724994700953535015752439891142567949379405004886551537663735591058807065996556468422033764451991392047590063774525639760297619602191865731933874193884182393414073713453623678880692854445068795134099792366537304539210329566251960972673631842230133056349291612730927537950414218068306658236117243261796501198029596890347864819978098519803684560678260129936777944219912463383585233865411344225490779157027987068899067217637588924440847159080998818477376519584197822105234451209633587076999865948912881178987629303327913033529059462233998429987079914517186554196319916633304604629944229137246571004401959458510260499438609825764337719522318930728070424070391584089852851922156429521183944393294823132777980277772599196219672480738997182509196297730941289876320587707931704115956594584079886660830684600480803428841973085341156682155987769953914510737357164206483020468579451419176366238954819523595642133865149725082839065484741875822887397227397177104505793484967440331821748601026666939313479907669757404110303499796596299460432499621488518314704000902208596379099763203726335342066252777183186937013115128260994589975217525116136873527638138510763839664618998184047902270627094165376301392216405679106404348490720420107391864080523895746833433329012209168641322277488983085627835763079707401376523576582949589939367295188742420999321040661057493904690412821274364335774574254085852142381384330350230229201531755346069088985986632208413897959537665946461049499833796907179417312625043546546972719792964859582104998397693515999922496250752830436720003239035969858355509520509548131720275437186287386811463927988712193011887401502910409431691581411861635038447081449049016268278659771554614242812461990786583890627791770011657542319157369704981487579220217488563479067984988014311054758114930671133250705361057037182708247057604811997804570425642613461793241715738985430507757232189294837488448079620535803713970150840068060490702090463846174454092605815404113686094735084472687814644405291471612646839851460724457309436085748660598906685990712066093766744368129168088911839796852420102335504212235078945106563657671684072770045335512001091606461739124682346130345725945423008575956683586715178439626588659702121593344095926453187893978111981847927842937255084793868643480377137498038407620544591709570643820409821434801466021578486939851289938375237868699317606710311893766637250477907996493390409635577547587701011221426547532489758969693350682537643306128931130644339188710391178709377477010975301857087351430081331852550553045558332618400289428140606533687767214642657451787059933405116952837508200885955161036529166737724938616157322742790600408647988358089097501827291920497239293915774226818759193011773874431105828431564390057369968972019545017826840575651055733590566960778213196887614251533604374182915394022306628568924840373132713375364958932642566069659924432932331324017010190551074358509963079867506984291609559247541769057762019854714780935916922021028756575347132631659655151880118760265701178289660644730408589381387281832132186635377516005668412262530852526132779234026058943531638039858687609491977359848068825627879620850603631446575217591197470048740951967348208123149999370119140821292392976863555209838365249990993456764262285416057327488451417806046464265904758949232421281802866377651334104339674940574378344357039069009172087363689597478661357091276208625190127637420486579159374641140303104183349539125501800721745018441850589152215519018011019745474050925529013348115295264957436324130376502947824609327976878624715822876264201072441227862289255559455496695407847777644162431254857727129573814656422798424904679837854899693279872636907769949478768486741868836928216250283694672337245364141706429072877545479213142567217500847869933226042011439316385125972805079696310250912921754107544575827859407257414355604338495948392855021200992319172997899185875325677903959272704229058030888476084673870441378150257401592723668723291912880063791452792748861499620089922430084492044452268021382847179011884175662745042514980522670591464035479073922528229508170818348438073461114472794362267338370165378727566478756233911845713878182598937314701540891927805718612075411347890785673766644762195120380463718108284262145892355772950173867960812371773148196852501374862736095492645445161024241318930332295886951249134164533962946212974187755781343022931126783960907470785050179869864902744483916859013725934256273375689901842995146677081892795449604649678061062297983710534520746513307154843768553266729562048900700278195701663919747391553058986434997154121022756360746660077544028404672828014964849380838572336615183615132613280089070698988783686365598729015846780585226568916472297191581907623311686472610678217728237489797994234668732570675402292246667291927527706974719811025591837536243805944053190297430734357676216688766115602473798724872636411532949690894978244399373793269089234112443056752547363020254826586326226773300345446881930191926131814655627489506997757009431741633789999376757056401010557531006059194902469522416010555342389042637747112663988225256359855010091582175584985065049062520593304561956772773204165145127103626385587123814564645177670632687708781130529759887215083716719655315165271783316424051621727702054279972712013526725874510650376653439506423112854379018314097955696726012740437862520323275472570423509881621979663555398753609940674129067862810734411875444828663434095108713074047212255882625123272782598852660260401974008097549932140511727095791286611028226588807103658573041841764354500549291322880378572230063321878249014988567934251253591304766967082489239824393742358424402907722733515898637714650851286549812156563602402057796897092794504852764814176987718807274597440391886271196621326766653152759908404692532726584388606665239449223779858021598656440929845055931737710534829977945828753028165284589966606123599471808808816872007705142441492018011846420669051478672272450358434431105454278879409203058282199235602113057000657523186084476813148668492071715648038129352915357244151477088049466622482112606129587146810685985511755068116749685289232142558649482579236268448036208389964440247449936500490473966309829009098912883940273068724445322933753708895147569162760923759010851143755284091023019336797847110187586403907959479615588962935449555441051797624629556013218140994160001344422051878144514134047022857962016403442804330884714431475590078526425599730735447380171266131704194560125539483872746005811866888857854661298096281567918907181515783052322668040633567085415184707588109458442842003619107714807751691621143059663242241504904833794370001190704008746904480305165367888877636655308532144302000369380099659545716367259920009383969671630033894851406953803513360259787636997950337879046127440856564891931055105082082269610822645226148762353864703894338673747972273401090826862456154890802787215918663044194306867423177418870369081006297906509439729076002363871873233743856329715979639300694751091771332941646517195855404375533190408753986199970221980584479020784159370228602306324988943804151942982734232300793225546335655254533961820753121041074835051705326864543444677876262813947077121187997753320717421103704503989054447602648921782235373407772533600704151593665648398018766433530737029994523046385349908906754808507169704909717849492827885235293232999947315899584401472728568344666317300765881606478922026457157587690740172912359638653056579919740064775499745019314329061713266060881116802436887005802993322959682571707444480139737074461524274580135698672422118753032495927965059462201951454888486846558176612750424602559610481308005556300440742050169052614476456333085034821911093904523046801223090094679227809112023748410147949695482725409850184603009693033041242123070190619076590261105881731477894781307636335685112843856497951212399466134590024011655411917376813993991044435746280308771912478691022061434303750744676015589433344486176780889988694630651959940753516650883575644899432769261341310037853900338008669563462462309061185019630676021824898504168452327609027013653842844124697730925395715177031450827677778026894996529621063740070292406631986617468167508170982348838981219058305298343725999739477618184206443964124412618784294851898554443605101881456879186301120423066702010165982851221477320457788673018527834692549121613144096728059195936655283821475963094848098057785378475052315259506079426616533580503122490825819348954902209070848343943344121716062162024302269810920823772493823185548967520923131831589191006253484144630147548115168870078223232434514826500286415367487085636499837208607505621961691143186520742906426589733653037468373368194625065873638998246676740562046651887381552190722687356648734936789415306837906406883221905064908405997245185061643239477269834786125744116985193686859895395040822184809781267733542645785948337317328857693766681988096361379453709719435464799792138943732572840501660232465361671143357210586724785854745841862561544227587126456896843034182285242373720323770966560129764765867232483458298245219495722353323511947599435655498750521406716071857631518187735533299278630851371860650102597971369394015148857889435833762422489546781197555414520555041333380381326076078075431643969322407210503092118938353427065058981236809783782771055268637529487938361484704091379630588945829576246696920441893937342117206835522355515307736681125920849551592196327492001645045624672503420455022511960627892650510367842231525777316612893741890008378240021457561840652713440734140348996523823450428354120714354325361031862038883638457473066383507557593963515477182792116964428860273053338598887537602544412028534090548579165462217147480775984565964839926645988974375436866413695762485769312878409157306873050129682136788883628051087630747504541523310450400533249791685412694702631624285494118220672470978594819097807445918372977638939244671877528588082956129932943021445093980657744579673151955675894229268614988999092276487899823605965477896632773557985156883592532582823404807637898678336272978949578735337366754481302235669918893999594949329870492258461669098123806678485816052825760966783634647199510282441260172365393865862794269526320533033210378452412845647577666102592899877179705932694493283573524924125662784526502047356434578788157804922056322232060365260103774876515651127169170202627131503023496354492753118506802200803633248377015369437611748404545803659108361503373480060058826679092457604296355897425145951735005787058213273834022189933318078114565507395523496271197384578780688591241252243905614870146779796299290079798072530681661806523257359806869754433737685966857701308179207028471108633774827395851215826129701476018736166407425173670178248824740379059550512067788622583019403463449152097409587759870640194744932724775307814856664391485304611626594040628330152118336367137482808425616676835145376070806745882377529278299460905016089372467571467147643907277016315679593886002432787945137368315470745407789309235157708984173055974518157902967610462124922546226609712467454805060650202093381021365245252418206594681487911171339764853133949009407479736707505749022363695210085057910033278130135498496997570880155939697612608001998154890762971292798011511530175656723410870583177381065931371032181269728802690125364949475908654570281268380317642554341525996454417120943148417288294989813991630590589466833533689163584574553274786765324095263938249749223432056379256138310101554568329645405723637838930446246138849621971049047386149241652502930951674326855446774917229199671617914779824840707230793775009848958228204499861202305607142659271565500157396961955269581183887158373139525574599694612930347105274459280068388858453861253546722096917642493602854630239006230347583315136093043322366801195438889203672291746378362176222994243788574470037880743298090664269278441044901101343546217319878468084154184721819251779766616684688522212335082312297047682365352433264984463933739565946558013180982325009126797735463755749373075554790082415667166605821942464554358380250451456995265286967582802743257060490477523286636453480618062675480658826954800770034651404019309551019080597444971919381542220535609814782132985394381741614801855294087663055917765150800284312701730726106149001555679016983996031420866366066722969722929809248970226441899459079170391909074053546930368571469631184633830753196319892914869481309975246278555639977340055253876501989282304795813402159012094495738494865359120037550690049533799127411084657841590457225574576404418270826214505417865831773329526652338854494908567880536036546119817312947922223250048832293458813951472964108390645966724995913010050423382877596276436794193878513039302073957380343170206639819609098101165022007003979734231075404402576334145269201513956722202654702622613427634688250419201428837918597921210592642790777106317847452755518132234381684818140443758777739664872020414170399854595595934642523597747083641483173061243876903153216502155787823972295894562875401886659381360285294571295757550769199197260791260469484287106336495796135984082796902130930085587163933684072041211179017360511481594144346818775084110228901820645980298965312608889132218892334344453080156835308666677653349873781691226657010955185178190111812847968812834732934448473381985678573957079632348700551954697135971298259063185457742519894333223085704260893475857160528027467465171656264017593722917957957438132225424783235075314818889353335121604887840765497590620482462384587141895517565792996990393189644312138255374949040684780886420173848613157499591645640262170445804139153043714430184790304034692893573502524902065216381993478971780936444510721576481232828572991808984370960757982829985399986476512895316377795280947536586788351470542073845160189877186074775629020712301135560673137926347375019141276412631857889095568135637296721608457419643956659123287473426368393117101984607220325164322985495163668506716866438968536543441417696262741834016595690088631776109031110448549711341306884003184371157564079251464499476544288217698113590406112825835795915822130243777450108642549392763887697114420119763616737875425906971018623051077024693196731863988872564075038710887300437084558072721797257732041080684401159127503083204311209028913685212812090998422392107202502783910293032510115398157025591620717702066072668217135759220707479434731165207104367761374562580118863555800604794593400067001833701577455834424167343631827319468356183716905540917996279796457624259404646381011306300709154449886200644605220331529190586436817338803406831652499346268360322168569826032508413363652629529729496019221067740016250356271360491397577065209430243831537128196763390936926578536299725854701422262968271584829587086054760179441624426383902496492523067231075922765743599348971340387249526839756739703117466085983222108632681094519902907390185680618771979224808904007175657068843991788273234108196964993580148436172273340961314273945574676345934514220860570102755244459259965399356198355075528928873621065462500277815801805517182080439900215666802858353082504890192678614595759012699130711896282688099703442517324141676527121055780024258333692782680395217913448080161380895250607125228527664727704019863583086439664356614486986185447636700869348833447908452347301550991592873326134802407704493533206875150168927643190147708351931725731252427065252274130418641567484110926078633648329251386154323893400989052223266535593867223196716254976401844824503969053380930118026138736587345487344773413794076912325982288989406049680735438240543334871926250390424644892515429928919705126373607465025782077204637664539230900178700907061326386150656175426763536272744628353665743979494560915177029854604159751578286133689969365602360877122956053629796609240418845332042331944185966992084195011718698441611616882058189400931213408785742278615407879628668972835840273556847704036193508975601928398738478242961612887086164123611969285961146526723515914028149838966782445531914723885766999866737306231486884746368819081176833011110533555243508319227229813781595897696943111857236564303324301377632824464632637414665704087128169455916221853487142510294476051873001448692847072323931612358564889581574569647634115494566504706988720059577116809146467963965263055566251694677131208596647506368353161731023270684376945262251081904087688690614685197541887721982840784414471525829755231030630502189221881600451320751638054890165749488036444839830721503275157813757898280395845176947582587620001855105580956041126681793904465137221049204879321270674061993022306041918301360030076870062664332991894139328940698542622518092645478339782425789058819248242042121086324672854073761588087546825673227715747732073127335502908147753922169758208778498572095745149870044122969727027456199957700793137906219184060440107395207687625080282965651243286961519264725564759685556272990155295803626668773151743470659369356282561906889368995177190902218532426939401741362559231116050964756391862136061552762903355483187808647066202939003605417316155317850544959297681749355600445079328053444502708119147757397943708174541883794463922951388887299151227102354244508718592373028637527978095019037777480746142621183569985279481948004087653420918199479821535609054265543807956535538102424421137389318168809722874514418922304562311418372428159070269525880398381357546176973888891737755038424336541988614311825158392669327228117379147206175169498225248425529491796154805442352376839737577448714501803923592221665822179343174321396980041494456255834740209085731080479837266138247361950084998615839535572659848366201041398472092252859293363006808248764708154902296006361034155909132492272299120892646225232809886388782304418481809807124333198021231019881194462281388665287268090224276412585002111661254008143308081336454644233313928442054506613143329592384167970030728133130834808119449128428388982306790446994278598925754665323478585492762034678490737911239866169159765484544580414828662102911868766248963014187132314256710562170191005707792345330286328163674363102609520112305854913339927857607911124475856543847276114136344573431694215258518387370359354108638826761321904914948013738606421330709964308137611628094505298406265191013620767852734368987122929895955179163783543111887997307152685858082315392828504356810621773700872109286255734823023081982307125990400654307705280305629613027957427815389252040890303636212935602849923801483568520716895501828732322946626571901711614166321397070661946622346312656059486336311631036705331291348459054550018223169284261207263578315126195763005285012250374001766335285118800865369609777641470004497516718308525567705872307984928488078697426352695088777129463735275739771532700077310573160309495037621383862828689178263713197924037121715294102670989591274295854873911103507549527569453370374225058280711652016261897533485608098157959951339091614175439220542731772690512100416668230526536943410008362623946822152487835889387278980525041291773156004395163471626714565936594183517172664993796325205534494735146703040672987677009343791177155159432322076808389712988949916343947203203044631688671474358970500685080227302528378632064318726586179797312996941771044298930727417813903169602196252061559781718520451106119272341493847681522745705597377305865391394721230717198609064555006226830358818823310195916572916460776235912898077265033278330085205636002022800985179511397626307652236828841394967319966385020249957662025952668704026013648884809454565939141445055457481651064106229410001651022376430090626378536210563250107023147189509604650669676819505446975161067657562527595533483757684094919728708196079908873959770472329641505982012171957238875361477283601435126078738309993763147238385860465774542825467068177395755014681660894038194505911897517853599743002721776768541896448466032849583019714419070966312118932544284085602471141128175186575523103692927431161923954792215964614909777375486400491026831618866810650243094076090280665260550855338341220816046301695160919402307625329306951097549951473215425284694545234534378328146521764358496814162525418499315717123915805914531735920393190737900549610526912130807404399996730209564027208709265094662446235408245339339335747679091793145780660404192344268904111416642849554135608247195235073587370445621996640485847736120400554670458243910805208825341322939764416830914039039596318026535308692727037118381264309231164763474392905077073122628751211482287601197646062963799832567581562279318660958707026625361723744087339441076660307306462476880790303008824520033031261076656541656874017639997637093304409795832999595117008193998634248495318981324883628834577151410292390204422937574192814439541398986591751249052032098011246368752337264053713293486018731116143876055324856761079224247256125726003371820722079973816365960601678827395530121585269559602060862226393662405020125281494874114095940928110078719859570321499803250398996478632362839072710507596648511392801439224961304403522530154355801069518173153669072645093696091990524606599424688069388924481174557447892355075327054026410689630449234620768616685386248805414757855412645608378595998332192084933897431808572760182548123394981135519257316286788294526973216908390126184739371782093800942367392363342340309755660842020950065691454721406164303525624601581144531918227954521050542404834074359031718404663467044210556590076516294118751903687568024860084359281405700891830125919023166832005746326423016344107107593466710197822422729922235966312063791485250783876573389037142270733343989346910773291160576404830670728258556922630679009981931352261746403089217689280505283093728887736150767791828514650567952759606362191497805642086855118071138351307059147346222001795734764820736254390102322575677266395242172575661955980773627707707266813415517822794373602422901811359114091659508437167103400683092646985235632643966947699308997291885926148902328063496004303993741017775620449677569576138677965371763138628094391130576125634720931523576731393688849822516045211039850977069070634977561801054699876928051692496970825798390001575608791015102900069484031226044068248731184379967464532973163412679680536098205218043255484452006572789610890518178252081930381760250192523027439891929808642378172923107750496729861073093605062138795471709728699441261835259058532721104747528890176044500140489202173156200634494674928346009864728962695497449762889549682364124267775499307581781820138087902714636289971292392714901278659067279463951742615609356007469731268225825612699740458297945268352612843382259667362109440994357976609978196842428371168847875063711104066714049170640238451346345138795477027798852229620177189922470173271896848635960582544665187541514118506268096459635219704621098254962506973594114291653045473971673018258064704777702484403401608446030524532452114289781088282808454218943257268995084123374261557094303224000117105168511504961584408798264899673238486985022355648354668853932268971091368900656615891387504667620912169834144323219732882494414158831643852903518179014801654285800930795208695927979154218538646643221081203254209705917369213702671672303588412971585027480567558290179776066294452507774513185059404960901131016114026620007916326479371537999453436276298142802195882794745746215300091557008086513207755809861153117333758946069589302253853162494531974460804309686705120553871416132826090928678069213467960444350954911949352711570803435702336740651615803139669178158795345446408805168400556606431580081383471331000730633552267114687722475019715826151412472817792942683873597660224400187791212968274659499243096292337938953584509318410692909654823792946868961934266660435828604861813031690090456711334325130707255013445445730959700413837411786582227371653914752992282619331923519704066214412322354763282531631653714963378081114694006097776242518383038340251764810913468519347043207082832363412212876663772741461322871874866419148905146134079800736525251178523935569931531001439084286926798310799240138438778027710608471341652216666285523394712904126540436707061031816346208986214360167287565928638469196946371732716534264631186354580270792755017334825752099011632949791505120302134854068005208987084416160427189044640276679843864730892815097931386119604242160407438083019576393728181637204396548445260986408445656947245947873893950610274438684667427736453614532266612882382054193135880551735216486626191274582317213959802281616776170478228351933363356366692454061777060127332944947003094525071361525470677217356176686408921830477826810130963141142981118477945823553387779314450766841766048859339695783510458780152318497233904665396755547130238626982990105195860356183850928571829717439377782381877147377243525640123530098773666299849862777340480048963050823331405594738457835137829073950012836480304950580336522068907071003375519908085887608407467469094982471404267493042894621184281380238814658502193639434100379533107330697317512858018424352080916470344808304914792808280971906575978577331733738879724553298989645890629256422182826302443534797980923655303833623804008613575202468955588741250306705099615539331792868567958446344388096240494045005962844948122444826903000675376251122608078821431061892480185113358829107031328504540104961030061201719313531532403630003156945918630055673817783952830465572259129341618907875333212980869613659082240392262449237874220618057292599375290214744617527105092199458396259352893067713152732035542933644163356854511558228070822943103725148900086725131686194734389753577674715988079041945480794806752736453373093435650616475406301914901917029027606247335405814490313243040609775970118064477911509359404877157418969127191258340843915925490992201682112695257134037239591112481040633751298591864150507839930688309809456984244986590464224933188198681675541355001538674746911011476159902975358409923978009232188895486533515751451812553456364252889962399696420683015705781988841075907721443406075468218457487486830280688819683681418220788323747557161969837827087954607302003409675003540985347020018542877936011174965652159006359708891448943432242817796638202444472398446818766137194481096192093097314666981878512501170787305752476264992516409173618675586313174474057792680231077449370539523541868019031260210867698200523622237700606881234986208274876167303671359355140123667198811752512384003993564866361418830837590437788041065740387636255830218383007962446268739275710368270700970372123300126427642859569943082463068476355902136038830595152303111228283938251385090252258736921225912137091387358518865535335332047893327919205640944079631742889634165009163761118117662333695442104772987137622041048509960423975333765985388127619771891013797956779620218376914668772603388610742541452492856768008270106131485778050461745664155453778092486623907576232037474210549603162440207267204291895276791058017088766289876799784132601952818736003026431924008523158978607546742760061513688502745148052819794353431384098267975914048870133490705145431322662934192539848695375518236643806879588253166393889444032659644787431762681027076585526293037159388483832818286896803626198137095041871691844750224935004811989825354086672560860565941406975434271422127288661752044679814354219916792443213264366809236421771585654686590153641401571628699630555827074488636115411786858315996616095321569308235311168928530372772139665006393888947718767676140725948882624138587990853249135396860601570298858076647353618689713589865265269615240039225429021916494942226712368995901831834169356704335415024425841424951543715395274206126815917394112130352480931586788849645028135155192436884132687365602416000880801291774952709501020594894808208761494159231374565734478859391697116889309863871353967918864875836564336922445795093213689238964399339478085127696300670768352743674025822460738659414816932309396304132079908600627246438562053749592024315100599618856468520671815752718030588836587925974895250482353032726641911653701777090753747572555602250736394296195674843713178839921714197104498837156317077739072549807858071247368071965171011740107874943356432048821650154259519771318050622164821451983732397507560663608478233456391189950577191169134272704447481538032929140883211549944963066489596826311262110521343508751838786223411463682603151012826837039261338548462985066480132920990425298999095556230163240370696328245786413658918418192062217321006424129422881012529244667368665390573414538233124097520902118606116066036950721076477426810531039239527021285339852861519359083997785107607288248734098617189171187565348085616315373311130729334898212802313863268973386503522199884617466480993904959249928063128648622535680562258084915114021357149778956045669173950743767315679651832095477278342970152864292027954613312402784896384255299721544561415740081021453075584171981651738276364008932882989453609033738159129292647022534550789970492862037289817531293984058206144831882861321649375718543948733039966817693738906289136638599265476526090963600077272304021685831741881811763706448315729399601677753218231414615904665657964388574132243455792398346841168226443520046043003012387086291898136525544883212266527144204606201741574922316023945557376172791868263160881510814052434739780150227678443808318663839129930214292058975027669814595447261592911558010119868133699645324260169786090286612785901051986606330898632985514010615175114866713792667283979164635446494051855302562699723265840958841658411282270205453443350210872819103648597206966860798993563875642820676699864906470734966746360615474419713468102367925226560377075753251036903649671231300525706837861268518667185666494790488048765507844545591723673940354693675196776881135730500354954383816160445479242961198206179095641015172127690957960219395865498524611417218630174002075412594865366148142736908015586467815343348845647949707416992088331704822746651583648605880167854904997943455796996577474202452655655340528321916605624857254149262797846757260085237632846342640225120925042651164361360902040748777054996387056814425419229504330085310131279499164549882779532153877893884956342667692868051838990989938525883873771899621957074393821075621124526787579415263948884089472848407027292491732034717764476929880989798120948232469930550573558571880583691530188776489987887246432188644285319612015827805118240344360946134978552036489431507286118595669308070788026979264779014519996407851201540305075274566256711462498423204828412850346103371959564127845280120139025312713700165894674779661801716947388261625023784827436981080027084800749329118960128230685190674240505185529793555227756268315015886712151925533475964933008035670739723682365888241043902368371802697928374735013694802888417987061341981040891173533873894445123034441741155901410185894423192751699693317453040985306282964670901404383755825494860582109496911084731944661010857343376810900316710874472902024958595776399773110473243340790825162519456471557951321466546089202108550416199675337281780464414566280928644455888482821794638537756080596394824015007134590685032926755105500111298241736547202466575888537280210175764384991302983839074439535401984636897522140681001959822086332452059462852827549694678949901556140175789418827151546324026273457001100299070075746292958597271166190598964357686419230054019137805182964900490410801184919898163023712742949337368342210531975577138810971642943650074347550241480121891918603997150315326596817297759971417995795067859029125520256506778840665859471575674621485281767426426646104946095074139702570860618737001333345547323402215461368114229216149702905725875243100276389670810101445997528721823994176823233889673408171267187971305940568257531617465736436547302717373884501103107844462858387662262602269095187847811292891483294943102995478222340141503371508444116465719806847118735195125880639442752122232606070077040380589476896436187133534960274916385416119612776722489230804852204803786618005755131979896602964530708883934523104550366432416206891719549608509339114938478522488796019041125572888243622295948886463150509643633706885678128100185795430246290928248202805808940791186923099060029837406701723278375514673618925570422555877243361091923070364424865246014517908466544382721016358296295481384932211572854851929880486244463035194349354221334463235477788241289116395293504073911198201361935434097686378377991726343384913336450913331854369952296764666411313419535680471826311021464637017608465774305178384746253076786931867354284222344248436755128448561088422324001050401413624233800956983664240273634591116909305588170528872020183137609366404659272566222239624734871443649142119874648766353306219049889535491944827538154301963868271770368319720516036545310043646023637085482793199945581078894050819034471828791892404647044380389568594856021812108682887990481334924599411496262211575843269355546836048371567601263768856189359714831481917580631237828845625685256178900416713723964683469175765992035688241558055462887164640864826477955270602337561356379816232138331508501115590763037946990083097412201083986146276199372300845578492608365402707847081953921580972018905869046599392034255582074183926028226440453358453555775398838360055101728409206736926055217223214389940388327973769076411437908022835072638692935315282376460752379692696081391450034348236228584559538031941276089267512056637154477263974502490568976447936131172465774612505675685121566744722521488042911958440154030467550052372997083255566296096195776574527260632099091557493511263694221051257876059621611779499563167832456391824230366079620339828681492251725571145780212832416942746165100481741013581422589605353513585799266746275704911824851771173276213701668244199940038384018847245964954523908661775807794808749285390278115356332479483276277634852231668008042183772032570017473654473005084046233097970176088422400020939414497406799240671955401374868374530699186462800135847921212188140923854251425355142564513642900825353887849223816335920945391096586978302192582675461213682610195850814820978660663724846948582619113758699799179057246461927567092107248728842819126399228822653373379623960702340966825341939786617238222292712598740427666818405607692933810198459098707905888036775785307859093984285797092415572964264618582582925567760698606024035924048668286538456690722947889146331639928268894692261180449041413968138926725612338873658794966820675238536936774950173073078471237730570670087830327953044681602731814898436641849300623881689646978794700825034056741195422840570391906856609606966895723599586187177791024929486521564835000864592621630431225078574942716500863926777497856236285484857929449261517169636355179515590626983815597909371627560677548358104087796811083495623414616935139358656324891976178124967304782391884577386436340766544981024367737975950767130565401947699663660370229262292748848748910731187179274677350372154009627800214793911798582864114193719043237246736057740211255162384364384565440954426467128501528592489955202642822425013033737464399791306068125760017702660578654179507293763212751966902671194085403478731025326254059252961436240215852521640886211804406112980011118527929303012071600739969041915839536992011254337143121144135387408146014476489502207968255682802792202502915527351828952052779093273873746209040780405496427518427045322782206150519764906211416847357163748364029944104664786129911232041694999575242081263054689269914492030981141031615680564514706603778032060692421460757791497117896263252406938009335488684820169140664207453690082710307308556467186495729217185872055047779677251250126021018711025051877703826936034629116164363428258389007127800833221306458818521730975005384917659855974671838071910189036535676058195668705062076195939113643021436276643362240759452528534579594944173751199751079385741019150182760053112964945304464197407368939269981335763607075337010240645185725170518334340314708349645402367289926475235087047003208178882464770113500370429607825258704519551507514243043531189681255287648793673304511256093213067389459346513202123551301344096259628068289197769244448055824858239907996887129762281993270759558978873720614950329116296107760846816423390253306343864685837254644307212073671897929108462280242642777651107876175285333258711487614524913720828096830738113546992538849903460941280795085276981857813947152942440042615302027389451031191927170895626478770360940553436094350883700733699654866746329739470216216585331272833151668057858778613248393795109871018105946192848817580858478591703272642663602062695086612225224376584182100894153974911248621546282749852419324289595956649007266602583941093538956440791949938945247788119682509996292345292618975394130146072086200885888553897036154170019274601391948594529415527226769845438204548928821875916942611489102261013089787859965437259120802320452400043528332525756373557002640556059251683513951235582261332802272718366354570120633624394728656156113058090732382508765449020141359919655443397682508141379939461979069173277606351057142242868732453450105727974184828175435088062519963798012471690113597898496347268191391761547353480756770976680912472471639024087864705866375260592621123523997125676488888952327573037492220473012369264834600162937035269213893887461229894128791160741747860719228974686110255722023870912923478841465528172313953750124103444650019820844402526850027225381648996771622954330068728099895686533460583758916331847472349539492801672122740484161149000085356221874668911445593522657910158055697957098396993050634405076473364013058152595227273336757571535657173225914239565350525388821686370110487730805718059857390864358080298251769757788987122497151377072636644126213111509798562880582678279301459350570283997311095407398796964387103770979559879762783448221763240972540162481373509305032207605734918727153277212440312644786179061161509756629362347081562354152193066358235730218927176445512303869907800762757053430570389129687453202161942113031619353161663561763551577042841716226510079184971072254090885389210143154017006015982570637303516800170764820285005342781681222616121750230892112629008008193769068163453360572247924728226865814327981041927029316615137178316685607303650815854487439449398312562663891536641656980697344804327901475672878639185201839970363814726651380238052880494274653448855473981619946763814188216612366522820646734339664615213414866426521690829509780205444525779183742190151576648467934251177369354101976220153528011777289338097190236921795479651775011883956494015798568782031307945097644487064130596197565112143271754836392682877033187930199237199276352832691123537189103246440635717947485974974698293649152950837597883362081208330047142683273114221682979441487303997834458494400561730385412972184085969530116829948473824865156042336303188462245019556949867841489869303507618499821386059042630371473281317048745920406211105725847891493678789234192746640825553881955222831394514393241886955403382244260356547473298981222066436800172596142688670298372742303342528609811403656309733437679109010470205415970756112163269278899454258988214076600448313738878731532694231331790776133928854231039378093809110684014929916397316847001777373219676715119924583818619884662014685601312708742684562208723114858089436626424187973131298041145515797108131745086253400475563182361823535817519438525922700978118401675833054488132227970783221891118387589023733134315677832355562957908427376769803369749011563432787168913303686660551964974816420901490715087617185239650298808852458719806665265970313749737023713271866709017152591990479129007055283897519652890055529653131600481529853821722806487022317930561569650075177750950331453328997528665635744956991335243688268705937330003306000434681126166000979160939999767657060128115212136011380591290772877044789136292965661605650677487198522932984085588127293616887638679727626985466025481751723991609508814578054852310570005459845043526219452060859330969755108160234359938708854561046277692726169239439922407498534634437767051780782348459434933164133562117707241743842138565344441236600507558256289336290524655336400091707205527499910849598249269449356994490388610911657258551767305906513471854693948313255356598228402577810080750442889428776834775045641634572960124130342286491340365595280245972133737038419844687427335503601936173203074746220632178707567466058578224017072755787880855260660129712884040249476417759592802566037532516948590682578200032117153936986913668268577479384203797312342873081642301331960460877520900957635351176024897801201957795100814437298717565267353441405629191511274969794838931437423827297320005692025193031841957388849091723956133687192470190830226985653407218829336812101353649769097382217901486354394217838966705478857829905143903511304083224391208832116783439724251053495058103407517588391294298310495830787784462178593305566826892567497144886173405792627816633032812168596029575071074129494235072393204962348208792665647472880902539177869355102598378097897670744854500317959588285580054638043975058288717528407550085259709306806258650674502619442079121585045158171994732803774445127470569305430008972312863236253444707138511116727928307187651458531213380060813217535883148099819707989429885949205514994266521116113838017051827875009668625907009805141175642852662487816603035372273363943414606829741021452843330541380765607361637516761750870531436129532186896355574896576414088791572226141757562281997305872891704925947865708963632578281997320293920486565308658345858542763342426937972345200493876069822097938514633079737769815329471536124579976368401667099690224751608192175186237768820789725979257641825509813920374235485977756693847917762681318084319348447122805020165232805142723378177641863921163078890019280366849418453290328618524451836160254392848383286258302204933945019964360184657418759332344705910039761626469369350696116924022197766259091797015313263420041683226790613099382903116546299136636261591866473112333013905449641646597161881275671012469264208158460337420639832685336269612911035029673032067235369387005817804684266732860894624137530466017504874124679132691440616792969409251276276266675315115521525357876809180251056497050204785636879958957327366289478861347954140017033352510853626335837462606268788665768858010574526773246967433979408072248241483629416013175222015948324775565512061710823877737508821116644852876502656210997913832090094730778129342606545924697461061312289460096713142077496929602613743528428761038346035241858730601354120060062890628691571057469318224166558612870480500931932348163123315609053005092186563138578119254036575485010128294616270145135374774939387252659526077871455359204102372908300516154004846334823276723612781458492284328688149634303293384969904100594972126129644963817353714236667539230759952338539617162170593307194963346823022111479114451763270097609395434004165164037183408294380966449664489112099579153201649194665236539919289865996686529340416655760035259465629883168859315312658960251386703137658096083504749950805747095870988420716218427127514084657410772454326420347693707506582348843187874000782658531032052018258169183642250312902148801459587858058553206376021923404225782817481124734164427526851369041052243634066922251002343596413204075016406953249167376870940974658336355347604563142021888634144918645110833680788748447700997393767680930567243813399695545448789072271620413850710995640700141222600012410353860379460265741068656708305925680492163919306589480413567475061253225767956511382830665036930220226710942806726173294835383441579411511224087561170515911892233408866112394372333535053691285718722885282421860246298409975107447058501611710355986808905928890466282217149633587657100433813288080937378204721026373537371144458280259113536549875018899301708422685174197481482648287257010915359930896456099939691941731338307999075771006352590047174563995080208347620111445273558735351237301906584187856082714769367173779115160067375769810863320364278824747315239989897347591165552028156726411418176551306540507394598175198359024737472436163287835696552718275250913901642245575525238213693106465355240223076182042194619487610757753876071935893069572527033767847213460577947450106879534339405568697972453141473669165871769047131576222683528878232453571341512195615092084954934778609600482932895208278987827602449272719057283285033158018909039234233790226896442654779319796728833530929134725880850511580759820024807185826318369178649180531871116577755165605099797779890027035448026814661883318037875964629134160033342211001680532481931994266421615246711705009382511301528336926337087584125099415915008355695518056075367656407671071706171266834640796448981685337607900506455134552504766454732525008819880467434322582102339850488702963310852704569287940026656670760689331727283273979483491313136529483317341063749239082021804566066864523941733841533615862249487193313321977374812395001694063354607002239180548872717940689664882167238196628998357873820550171287091408055535140564934860015760109667443684505304431831363018552517956644961380869808061494523595668039818031377976585818424541263439245244446849757228510190039379677413688623884595218441908007941860912655754191998255610282882273589101434993133309328176566648216824707656831091517379830694522230029354685714637375281002660640132731687546537487207254581368215014633504539208215424945818509141591470974534961423289530765445125315469010138788384790559345067434314789125403565252705637471975467985927122550422952703677658684482672597943455495618750018995739414222319926120147921547840214758103930964257274618171074692704706722871238662649004983514108557239779428403770236643777782369419377731549365509355866761468212421584193282208080631844488903772590456546300626622325743624041706546995144396352530003414152799161698059938058077971055251688316031052833325820711048934327848371127918040901506229600479494089123847760985539536737984548258179780498312839487604464446589144535295993521065649797233420181054634906723008353785619495780860059376856505125079746200281099578226285815264366106893801561227751088667029329314868929608137663735426317169816768355303037974983242622093635262689552721075706834573037839142102277309978501120814180257971600299040302361223695201695479554795405709636086428175287041624692202229854304522503147257471321368446240861913591501003692571643042778708624268209229922935329541115802858301875039454672229545839241392832169844354513263686718938789615644331727815492939541058696447700026484865341518002174129039343973817742935351691231429008494127383818220408912622665627917829085665252719365331922686573503860780489198423830525647275641069498798445878988715976996459859406853576379356359351971090123067986998624851681020782825163291189705252117784832012834484326274493681239841860764990092469096795997791329644574315358651755235573956571722268040073247955823212085046558495720648533088009766803012224237097031852824739266092889721324720042999551797932239615487918637146474743036847619437426590501771458604012001648315774426741287704915346077130182258293529869579217955161594297679760173206365313002236077403563283835959382064373033379917107695778529144760293356675961996151930769854457995267462939401235603565921086111273725080955009176731722687475726282387940245892852728886780336119913714463579204669000886860192319199590355410877917571730486558839142791831771670389202678109990597423700869179034180278723774403897085667977967985386069557499064853836180256842681295731491075487966484033700115310350396430101260640707359704770701978601073422279530126351990742233800294031353295804796218913921519929807137800117458955076024444420738584950989487810922252191839864677100089070361876315044524110289501252206420055291781045024531738941330558078694750688301928393921330646153324059520129157561092265381522115379984710348435243640974860539038617533455844421430166906373615884972689970392844691454708963819730290732962190464995459122806508195376355175528184727556473776402408121467733803761492963890770256055237263393009006723944894833272169297453914248547250102033579500126963085768551858417902882751451869953858852224194151351694988269663320525324925177514144260117372095174391346107634532927471817235533146048253289670171819971109533487445060812069774827417002113615571525812678854465541857023385714159687747679728500715254257969439872935068945516624978594323845074767735403574370221642262891129595548600562884420980250070127992567847085846237078261310146118259086204399906862085727479222950000258580200564604394121243538593479004123009622329199509601055407668157167572249004841345758252341865518556139920501495939360808056475848271869060599685758712125377294550504020019895862284189389384742583465306714545142335126321737676456569372682329066864366524502680569043605996271793400959271768115646673900875831879437147006127534171685059317600986397242432980666147520075009583753599557524164253762165056893211834712447386813222254449986825516370314658883023792981794158040179084556459651340467942587389726326279368861691424797905908708816875227296913874125786526416266308594933301165886239457015755977703340213417410574876342565843687566498716834581132360818261882096932470415079829172293259784011402812039239537933399554111078844499857579318397851932960995706736357336490664862125677595933697715372161946482516134181520090183581898017262107559820821538468342713132380081422278435397411538636421710400330876756672221152528683743956846176354631461624525056449466316192386344963499177371700053223788728623810806542178939766159760386533195989497555046565790669655089441655642029474048822405992622087646461638696863014199038137777633104151216065287500681487654289888435010368850735771104360473403667701632460036176298529915207380415562878789150201790990145064652195942580892195770481800396985680007913745063897563494157915014809198052634160694506719338761197388373799246372292762392668071978295311910292407286921812991662627363468779673256083297219703377014381583350877899761268196360748786708601711824975246999167883766365194309173832238063903718742590982327175221100228798574633040463127943242748362340129106858104003469878481951228720707699582514064426546349696548345991726489852186648569920424531840908233065886573655289934436564659255739853198035328317456152910800330256481112763313009985933537680037837309560731850753844450352271405962160453601524874042422411303543006930512477629934435778429277570438937047162321676513508178385350362760097300062130029535218484490531989213510482633510288070733592134957268943183714765008473627293114375147342233503893893115300710062114366541743529488433038330901164672004526599919368977547403372965528952416297919654900063430413273973936729251078657077219428552849242254643982653438389148974673820307890706228766456830427797645241654402241799973536849426338910346304167926132208896274224954773266632360651099223741845652169324591844338451350940870261616219015397571617122736140662929483670136789895147573565587929228200626354720085519186384450415057014481231193709174297767797737621690121949574716052644139725131410105372560158363410552422671773225183583680557605094144408328657917389148691374289115328983997036596732990168927234630776071429208076876676916507395958787519033813516602696409043020399805208495434179386108918957953959044383492926268538642894811218802576014363991015020202162560979966742040806417153724519241690692078625122678311624549322626376145288685180620298804421423822940762609248461684900440545757773886900303172478011728779860803503554189751257272319445828460510663826443567682885130342095193914165830292935032603461698806761182054925193889114018041343908917594870527337880783730882974251420289667716668815860896305361440335076693950340512135342839575714600973597597460841598130953527135615495368976664066588175133555194984224554571419376059010610147677328710142297393306763164477147071672984331651388301241278198328727242460032093976647302372034122501720509906883990706488209458801539722907873663863032880904163544048362373509094266222672363509559306836650427238653488749580748986600118151842143485513958723116457587476031172241175399046219330256091284293379090445305385498684147590359935263903704178774938791851078458644521267186267635867659022093575525626481045465341849434132554550019443354210589718150344837413349267038707223382709749457647474196560479234783075290074796693133516093094634836045469770251146531660305209279159986357289543926812246516419523328469373830003977055369724728915118986587592127524707615847807352003506764111849723626057216811374806219971229205009522675103530719851151311010428460486718442891698368358134916718944050723405970482512607616475703156711904362576845726280488601416792484428806819909073926742557780175817983559618679950307850356290054735578021072848728082085092145227324861078762498069814234229560046574520359557054707725749881927803754938381778491444146489894095914492225347717079736140682519643571895046365616116691048560369564741981765807553860414022766340453739246273828942928057658522217615570712350691257393707788499309038136520295694707638326588153018033269748345076376202977931594797105848532551022663079453709909477924138630901681775581181857037178317275318388722526099035172510438251098537491600611174550058513248209037784207319244883805052821676175386465340922403899996231689186374684014419075382136269685196205956021791409739891396230931052800647010368321424832256531606778544656932494126715940009297685847761429580534776233872686783257655838749972055981301213769362624174474431858864138640740149729872280354037267546850498407262084419082947387471180821754908475859091905636509972226310231405115089718638000291375671547337177194669487012334257269626527354563086956046491097200560402387983140252353055466828749983272245437696122006869334244098484742685931039439725513438780654303104283420079934173872820021264393343755238559894132376483712697876633121264690981906978122349967496313750472083958825982195195909180038855856722535373256987423842588243899409762281607662729795993506909201177321083204808576408041381196023043518218719576719028469502148239757308230477106235675007950446078200813121317155829880680735581313294034846280754156630182759638935862834771216611363696603541006892382598597619139038739598969377505252289329204195218709224665406061989134097937864755994766524293011823582618139064438178888099022808393960714590537011201903844704615270482990785768355365337473419820173414304394829017835205511613529255148587614074621290591544406632311103028499864438781505286885034686445605372764254664836861397304825349620513030504437568734449683775093755122645275133523935923536544134665669429804291457550802553108331788040558950726038901441235568938075865377858204195263858195933280448453672317146134981968585369674585587132114619197177591652285251470501697754153986551190234881901641059904593624070891123576705905450774638576534402845618188215541008443138393746137831547065318484384746196603708770457020897904991732386484686329133429288155102008347099700468698201742795846031473216971332698965336495320351820880301677282298637365660266188022003355344424001986690190286196333735509597754044028118781007410220247572604786725640085508838340103551929355163020496046709872171258337302056919431053050589830672881137290857262810396655558138075061977825257374997160172775203419328716138258386620930207147189867798084481025942434402538889795634258171083085107729950445542856253413735894019983840741709126394174013896478750301688307160550166237735135335769474919660122364458557634640910846490599589270485821019651743349370868429485277656931210193907344854220274448240505165575561069696412672676587096236083653592330252018646739325116530100932405254754377851372006418312396424071497552612893036738280192548834421222403144273804881760256102012276513912129945387817035845339686573130090790357062266340188750340725303672119333520561216268249193659989113098340381810092028985930572527134185105842218818059670276620225433986761194572789405494426642875176627288287842942323616493876274680774720996695186785873252054532040901843379935889881906144304434494021698476862618815624603818011488547255047657399566131061826058323036031289946274680531682142732901945267828930989267827581644609642472753065976562496912644560389519868044699203275854007184261366499880693029113388012006299933995225723260624913298398472169379320940687446852381980421593649340689632909924138665814706137935400724461211286091665656803127746376555559256234935927395601011656911438324726335552858994896837837407003355327478741937689298694899932685454920244108917842358031306759485762524115583735550451216049504458854319941855447154604316812122580250189385703711862609031202942444847029023098581584068280080869955451527449066815926466913867403265119265469770691023055287181965858477508105017166060295970335525449773580175469440479201996788494233117043393489165285029276579785864510823113974805277046733825890189206282785233514854830119291610299909382055679053084239315780559493198382575019443681656545688492882426170876671435240097268509981694794763087824080852836746253027805840467574569665666597422548661057516266563759599343491604951085560056160238146784290878461889596278607421116072174863885562768036912935993343382093685732430031889456539809227981622350745595339169474853317459370801357941183355289902505875688936147562286597269510220675996070571642655448458456819911692587575727772029673787053102748867239092622712199101078468472317303068514773230624941134542914783663429148209199316780871692125008802658800790957978115684047375475754481638265629989907068252389081989740192948382663792784749394562293378360797089231042787484652908168629761488993935297206788265964889067139780875681964784114122992202066232398396041915366061944312396799888949032702620758858920997377551837225071645512465899576457863246620366700952344072579011515875619723084956510041341357283816361185138315826780155783791007638494592160721762966921609736517430687432966948261183654310428365139041208158819333056111408453027789423240823436295774665781366589509577999769327708261764132899778425380535730559698467328668698729928936554451048401671007269009361876193844857589089609528213453227901100320259232614105463658942812773689036030604604841054215602686628414764321506852506784023875208224202198929712962369783399412299892697919483005129958172482094127937825535151559881889808623384868133902707910801694817364731793532719157779699894377695344468771834655832418180645994460387274274937354057061907834874788221962967617909934849937142534408022407564164977128781322601672735396760870132871455433666579542107871972524500494238986563078701530969983875387884803629514015367422310043473336878388852179125329622093954858671443913382203922097286662389159493731367119232368206581961880262458203077131416262572992825803046143624872492508916301588027219588506152664230233292913335453237822563649167943125688698225461189666911153669058898757803813287252335344528215538557836377618501315100807393690846987723015844302709742603629270675965426667221868773889404622806844478431979078036111014840056002890938520372311784383266388967123510741531466662226326619099555179892334677392055885764626803063196640625796808442256439845157102431415557295459100344182998323725510244122449462074768114782846550405285289549249301168716568192694057677555816663887726939093486472927701634868619991865728381802349123778755812114908552674856779075517063699334247900117339980970641718411935707119259356221264079957790359024650330273351834594505193379380815877479067277622304754428766766222436404725532668951361888572814729892137224097909301941318562206359120080356821605812787614297979919419860523998681757575652658347357512655453351272037746887050691326083149252268557171696751238513508922811066284705691592121138007650941854672527993334987230475775624104885028030678460061434762308101528417891665831830118483144701530964758201730501521147045088814677073867078160219682382265340179780517577099378556898820380887721247108610023909051280767420827118399903843153509938376812113323402143967288592082665259135441481047730297817118834376746430984922800049996873481221471125519244824928542546478624196024717515140286881849819094368591217110191752657169386403545004001426577105125231190147323047055549311054298348641334547609143818361834761451450466949847852132684782038387785190136800603183797764394453869849938529942762767691665966064534169724269710277223320577852400231661022157703777421652030883237972328823356232345058023204631626721427259288128449347387513829865657321573292984852877737064066421603998090615820451200356922702910552283277306915159691943282121457797852879253069616060033453743661929975552886250252971534220033699184970739758952580661278856374110334504028410154109528734452885392049261227364967757118105920973065858048321942567149171017397719807888780870759407688520484045411165148878196575687695130613548674324856531192832738833337348626234109381455197434075604548325860841910899958085790554858644166248305912862819413762881114861785593841001328427457843875777701709791707696002939417071476377752776268390124791664704415456178600742537459397764370479264736765885366716941681538400369870624766809114840602472839559535739919652572989809014934541031203533842949738751444381150724044277362560021283108710957137768264782861303214261499432972920729112002995762336668142687693909607462944799389036671975393226495261478038206766204603288243646382864657415663498919161121807743978733088925302458417773274927099535267544033111603485113739736929724318601371058677719803915150958194427244794078842924976367659299546578190663865922123618598150535600391670239264626884602118544687936417949539420591674137283221506931147212788666386643159634730022375425858012950972114130060472056376333110493186563748613591034950969218856950705513058113300604612589140656748422097658882871276720242954128044308924928390294089964391661639715908893291198182753625152093591538259313973260698616065851366605083141648207855997494136360686493511381590242203108247689744903749444168335692195995480212679930655743008614636265250586977988064158665383171060175779817081547137528547059182520421844304155220757017111727040756267539108925220910407936428944073962435304650652762135398577832881755809875297228133121810403261275063197778839029225720637678998160664629385795158050581796614747682816201918191149196940397983461489192884029746755252059102767536049434080102986479930733320359156556771964101182548208274275180371090086583541784023467798977763714337237946428005198312758613587693463195588029268361352153816755564871696458955960925120963871730550295042325296317577001644086741717615134958706424117579656692551642458406116426862182561680596119609458790302930248389896106425416553073567668771076274690410874202162951578862005864407097254323230327463807345175983528693764602918236017133224772639514566519440628105538680648511899621609495085903402152964774227818199829094259272319942704047224298155793690619133980387860138223530524007114109754461828777963797884256547050019311836831348774795093736478681510425513085413699146112264410012434045179855635332607685327921936281157049968645864016593468398674611699753901054145141682803300396985846707150439663541943821558063619995796886086604025066320338041074649951034715084848496229227235952362449521238568321478203215060204387895343099666745743215411065283970155574949977402284393412969206057398524606038896714578544452293579394148242059836880465802563645627339487944265468041317192152554093165263190942547800981255454998811123667072960979025742110312962842251980661662343250632855891424402483148716796408307495602606602720224423623141670526501360097770363413296608291633648757066321690852193462895104536468811171367164175670803697483814623841825108099410832069842476357161499576087763490470159208126545069610698923654607316681116786610784346252626033794788312602784673517141725805025119833793050128620201758362858685939858521944860860273532277345032585943245173872725553693717617838617144461796424490623445263179292667323750741784800144635451426599247195971004863268144663215612727089736316249061924321440647418570197047318078141728983959702878489948276887863310097297634511570171453579466986299229400854632396040890390610101979512185335083896626185569574267690818373277635765660095686516025247025649530109405579215843772233409290707399601991615838214859127229880586502946573431827013571452845796004227783205073457312072806444966403194568164364453786401847623445677602558257237561571737392870831722566493230158940876647060620411760541571823751665405620430359379113540719432536127633736910020694499687122546639245071196200428873277440178797598369205281038008845419449493777230588113714514200492593741245957887035051783175349711443094983862976276109002541658825371510926801654275797409488018678874425742852629725822692353188610647138796098082036829175650216889374072910103114078681090948714530771148283160477875793353155862470375545328459734635146004414343421959609420658140885926219079862915231809344941937333190452832404768922750484866581770588807868358534483126988123277050337808916584400563787449957101019951984851109818389953238161090833079089959916190310607045798559363695170895068601627760797986862637870831667091116027376092155211931301461762650629892024524600621067917811876156598542547793451157364654387259027284493538511541815852897748923649434103503589541550489473601788071814729419539539669439412388062461582541321112294487694519364468497766248935180451396141469980726386720254883776645125609029075713547136841326858254551546240920468024668458564998086570435829216814952359368643978627032195488397910560113872901116721113951826262447357935404527473471229064137432126663983134118827603078202635623424819406959568570473734557364683049051960071324265204999671887632760436717175207123792860439638656926827307307012036354750530422901553946550717915097049713226571224494896961787980637522927970747432122661566916082388750678669008854722130270820989312563499713257520324095764631545829928401309754809270019929018798899736620487129413925107612535147704889591075432065991819473622501935248077678667220886982551638107408517390701197939180749076820239542286124247665738975647306770163960720109736289479996869392544886496250469162242885716446287400649562084678248889354611136982368707891928185148619417741115784583303685084861018236240429660883929311177900661146998730028240798554451218089547498469087468390516778128307125832061855209558986726851467059142151913535911370498037147568529514015735633322751516596861039895426628010040232059663697585061865171842687293924852307160171769255552060200368250296785684167600604853573165586301323531559399331973826364785127524217331656341136635100653471772710909646224374360263371802596489123620170086233434759801177761333161491922675207501778383992232582634468823349321191395102084248411998795897585293295319011157708860860673582133241462096345508498937304606807528275387480978390639199662066703436299302763274730585367491328109215687329103177780858921909215914064369017821116583583010234289808203001208479869104832765096323234723671952614159973499803214343488952967703796715996888342949939936114390640743516642576318116186367071202592971184989403458240679862748315315669990744880575218389364284485061481087189370449288065621289676012965016753463793204026029077501005555357230140869377202241328030310763828432248453051145379950703977084728218109546205078270620679155868888233090436046220675686775071787042191229469283074380261045816734778306661877905452762416503659706669284071405537318243947614892899143967953831560933560832874514782444377996568286539213633933907921292084438632352604364807405504903205905035148015507845267877822164449908895248483614215872633406823171791885962104354928360077181460559577749652186642871171190898790217438308954133442271298274991143296538701110125135834972414837835116564977201864198710689883134917088032403632918066631542286493627567152820456341287596198482196668507777334743339665895287278341453017204062503236973861827145111075416184373598302609200192689750011462533825559371379033697290405651851491063346482863726267847514661574975683512222842167634774028365217633402574995808461716490282241015267685067486255965905363515294838467155002803000691770060844526907832370526452453864070479099426518360518404494728532440897906158482796029740079632124791302486381638625708772560876689834687580884502461223072111354688613295815426366074818852737989720056271934044417983471651744795142842082163133507990928347499978549083168089739831578764171124620501191439104749190846847595178516448964512846248277673856405470402044987594188231937889487845590145872625718350486890322767860746798793231436432711891715281741956473276332141957964742574989074003682258539918568140583398329187265010259176670790077929025303798792862967042471597758874888179451006136796845956559339411425767337483513636427252240020955640863488697598674200037709942763556428723560729623362822319774916772381540881888029989251887279016626280045760626820644815400278445656157162707268964005746725839660999680716653350017019495268976183928085139675962416555778217346563831163803352638655681312396887580567265264826279294392810849210503279708011842222063160739175612784489151140851785272175483173518003413886817062196226025066122636545068760296406422052558423234235701742365327919911528586298643437681823273995175488255526558895069830876462417093168557477187623587478979056498561804397744805003095546187755599855343743484000306571904767710835962930005881931027065711286201506499750880742896129398400973546710046726185490834744429064814546984515706408022932094142659443627873847968020832191175763724617270687376842184969240541240059185230413901060543363508078712839501560594528108411572872500424720374693884877711684990828970666148271227700797487659849995194706854996219459354565462249755108571300083868938677665044487977265726592162159811232528496399614220437756724922131724509963948326126868867676201916522432439653294299228039944975164868354556250866523017940441329059863972459490976450193754359674815615930741050213918133660183028768802749075675454109531433041359263948150129859138186228749012818476850006514739866954490355523964531140204280613997585374701181464949322331308341090252757927487540858809418122458895647398074535327321473919163959813018801886703395529009244102145155041736885202827049742735828311709531162016012355947207228466794253048200852148930763822229801245535133892505746179779576565363863246526683254909336763806571484198315617098118902569961760221723914427062406857924213684264127876414671814697591360668315320365184853632733552321802521215818167575515614618207954345965573788151592905238304534377301293989314365160356964521623239044353968951130322874062819210636750076428594793197439661656331387609860705604761923211689664014139648693345091593986383826841375352609288408057123713071202737209344189283277082103106976693944981450764973521392316334452479903468118137075635617520561995165432235289018011393903059530940988969270419825413821393180094891501605559175310264478947502791597639056016561263459793669682574943825357394986710232943318275345686745285079601302931953281104106531518672812580170563806689401950201063741988216528572012844105717909788919982722093393977274839932366256318217637507475990367741304008292088181481091614746252196248456233037290061599158314935164474609869032586116827457738733090341124288511996056942584379682428401895623248061578694722601854441315816987307755689052354750787572513274056674130903715966853717989083426245443107186358086463195834198707652882948037736942841077143440227597945593730817393674359221365142774950415315979407074067376797191817739910449515661616357371834752337888609194176346348964549751142287402156863194540192526248262033486037413914262121363609279408663773913100181504454237637192917991042333423350447162877954638647239880622093470860260229669927777600213833192472585649545324820595742014422217550455446359829104134647805456186544757889369346307908596925866749921325704772643297446686942419734786273458289154865683861355245876440361746390657268024012738935887349365510005629260334813343909049031067476884667845575540704437715660055733892780645368597762089887207317493228843760708129380206104334942891004691491490530991128444964418458148833506426922586609815062858141505617321301666028802176569448114001679477984704242315410093148338084690951517645309536455126071410929534804875952303537196986809631315528852887716429805113815936948647195519933052298808187016303044667448964930142250806865021769949156704285706409442372607485058949896223251681683031754990941880806699436884666125785431971529898907576299693737216826376996080472662953020160846759864386258907441348582361464176150818588360240082077982903183250407267487678139190100254577322675356132786890202428740670511375565604187347482939219120810870263258776132020729248006200982283211619280174866734216739888181606771757760748827853109222704516836067655068357770525164731210036257394164883373288827592217187036642278129756676951329721749162591493443812844581469466643518608793832224411696975131858912133404746524635698499248538981613961301613177432938663977743745546539928079767921776065016805643453944954353495332983548448349745098878155912803143233112135270141236407450091483931772416753980534228143305480192938468501466216049960085266025145571383284440129982409490859933803289610658110210057842409988342740779002076412140027422004288126429736502032439000688515157233532148684334116887587573339411555212782201909256793234225347059322327387855030815482888565382800164883998946910792346189949601930797249254951239107257206871818727076388908573935443407006605412933565867039967144988466671964009567160989508328787108210974472695680839151431378898052757197724425892414210462023922228093451022129888701160272015364084534541608186801679685443089759519461866036521172042736280158522502479811114168804594000187131697250965310115555313017354044716101906472459725319029732627974026184485507475415115898343113159938086914574474109951005474360771332325596277547455159096610145436008440193317722480956548811620395401113069673044186580074265025037626705773190335599778252929352659907281703006693254955220526393867420434662126318091382354248373494020036289000215252689239983698923353402016515991577228423873967560966891047076583237297870428015853996780363413113335833424290250782104275911977058225945704559988165669318319074059248043544682108863574858544547726490203308262858017382783939470889633777078828478575421519885763121525210162369239847233876952398085825620434443487424135761138166354348109510938900869291235405991089794683489030064350078934321224826872843374536888712676299945057280288006794331964478377633138475593670019291086711584100184750467930964768572767040598608092162019225359242674158166156434194057671512241957017597527856637014385207739136448237726904775735288555935979722926797026265835800264605208195191229085228004015688855026120802503833707672508968952684816682509182629644721916439801915331470342263512257659078009150067984782206037134331983262154231270323831609463681350655433611340316952818882527536108315071265337823367787181459935007924060789145407471921454453420316909321791392707200387516039272626490058140493133131766522544590995163120929286491717824019262110523729559501281630796257513322860756066443809306131939644247868884249826213563537783475683055974403779363634638531705692649403048010125910726109059463683708208143865461281603096687162252772614029149079561809523016507077577374033217724134266933815327389392150353691562220176271391946551774617140731815796434422502224256149348808645954067117346133703340876757962290996096809397679064582331637273225699850592032895743845641900210146865317231944021810755661466212486800762281632726038228805487974133664923316877330823662319280567095663562477816609254747415858934259363324297589467445059969729006049015936782276288068418766976977511471363341174215474494136699711582837970143472680774755365365981090146805131047484817141492986168861169555905989706603159408083660507627121275354044509853388099973622227380687387992792369547062342566849328534805564426948288470948361029541826171048254192743028426463082280872901749021135935232050244583804369142971515870491663066079197683586438551069605467715654933044613828484403241031942936635562558695580418279066202035284738096169461917756242023057673125078317228030396975568532995272825064099859949424143589523222071345112119920054898438312304060126626126167374334696480330486582155508475524760292293226164005713940922793210285646207230012844264642046803750052453780609431364235091895649687462587043529104109059395442937422684865234131552331975762674566785592152220924824853549776648141101575513731054914373725769180758693106171903743627901453549070442376713065723943634280574029953260734382623039813067291964776246577983854964507980051346315916072673027854082001389762956182092846702792164704169514714433189759588329959733622657682082008747344975275569241710588799587878725254734208017133253340146920006500369900108230824839651008911716504591507071494622017941810047322485481500129663538492320725741172643380043401529390728595935483780555984464084230599186890405976441696603997091616773006498935893176345513183236909092193135856205867138259457084571608376152680121982548373282208090458890810317700285654437724517929461914562102526961107809135588343719796542157862039764906301856001836280770604048874981144902797897332044719222491964563961887632209375985447337013583922873725583580452672116906192657826288006024529915352657121460161867914895383189841560500363072376442699650619113731727325399918140250804513763781443085100788902592494580708449755375358100684274431364873547169617129525781395855049666142884541076186171548881251796034439094313383012286170908953440762316409441424129776556763198056315683693278549855092665624845829234394796951415229330218108518041830797853797310476996903146928029415047523640305467827372977222581605382860418259125444911570228635172125104487634718537284325430434260927558159652238875306250703460890640776675593476959870354378421708506532193893398332978019822024704954200976354053361375223578848562086101077273776411373761030400607861604352650353759589566146351640795704758803633727767316055310914207537699148841298777324105779533853272067055268793837726796581005063294356519318088130845392786457692033772229621636301715193697023880886444855834894079628692314903083610361388216705628456701242178752215860132662666925791143894762163988882123721752345213773176353675549562792357478736259391194287292569928265073145548711170939701782658650098463236591093483010828275796440113139103004485358625380664816373763956109314682388181683185434542125107635995819295342793824929544915825562045422137535636544245102482061619242344111440927860071452482250380742256690801541112351447027954851427450104494431080298425700745656574121322121885002519210007026608823346454000274934756661012469606639300764002604822918001922405816605355691281220949669412629508804339314606596533203376120988893381511819529014913150399275796816752102576995706610787727826750448199179000984355056148589032852868585962962560893949471551824083354115824956447450019304002822734227401225923652449778472666633418072014842902226868804813176941505136827438441516938024206821459792071320180579091657734080678913413412448282197601869401753973159564449443674293766313926817556483342441538931384098229066611957535930099611488787395420015245704511289223858897947153264065232192174670719173117899725295331748245170798530795982942550654497145274434000104930916453999162038159119051849384276067649877352768936837943434293554331909312217404474772588419776694252111380839957971366988285213993277543463228253353249233787778363132526201423473320870702149988284969600500380549677576040038303226660211051204768875509124389109457041968152318848751745355334141881882338269478187555420366079819227347281596876576044701747103385196499640221322175596170776788225187813033472867530176417253733888259583306994615390746797668336979292022092984059342737726562065379571832849724047438491192999326279149457596502353625769455354930169915518473878626171812929612369306745461787860096979194535574064550800371894576857537385706745318467681077434576428171396105034507735586473484692280704635386135513383729332752859357817908027156986450564933336333654323933612963767306399201276993969024771821149574620743031972709784842478814503942477989879059386277105619336542021163072206078960069907445685398171203427980988678296701515199326381373282802436093894877268017570562333492106762079382115831407104110242909350441245149166078205062225618729867946473658905743878074654813428787857352334202214364049246646489783871480082436521518057640295722761725438968190161981086737426908804528464883659587528620291635747827942619102340163813157469779369050259243714438398096441968267203607979961487652068110722010991047166100845733952068088565827076779984497588760738705609094362564574631708728753794620486937893502743337327591463912339088826280743993311591567205067771274325180467370836134136457597039642425543364512716210139281185022868938639441770298756960616884245336616386408348663396325578764205415408567059173645871860830349570671320469427225991143599586954915843641887737806269757016295324469718995297837863845883650262606832491798911977313224145015581779129158770386320819405910082028801106195289037029133531295525521100217427027338553414209606810398900543218041434725928440388639498741675339486222401765258656422737656533425589946241828410159181703391763656137338167998676652995410350659311855163247750043105226343515674457256935155398041363090372918519713133903603123240417662475998724935888255374508523747097087438331017853957861939730445440166418028460856709223994562019248978274360008316530339168567662212310220632880728077094936612251202353510762809179433437424719054566928452421504995756170775284210090162693493875728512328258476835935134766225163067911709229623019963386387824266056270027200216229606849552659654778592748913581711659524024677756728302448740762791071457423942448374365159304426113016885484331375083262225265672015084800417930911701669831201917953337617107027196348861044108268419219970620815018576363826051993936536962398435140218609016762445481767040158644940080218826890683058676007868680405338820694427729461182091886534549378653864148258886139816633941766001500886763923959789293603506255515540035396824244413040817523248172022799132596451495655540250534949281184060232351616227600586846308977633941153874112241857915353364913012647714817444820254668562207370869170479475088846468792304552436320688852748581131803501074853880994420243294219834453494875684479843998400697477287746193030793936570704339655603438357521515572210227627900436858479876562535584918206920084294885210208681720748666360628073064819278158607304433128557814281542668571305713418093370847196352767959757000448927860602039881483120118941221296847172094140557972677335395403167331861244445187706255195055555966194791026920153585582906194650551345432817366827669644332533195609846972649153120856576651318920452702994611081354866018823648825154712981338276710097400936391405482435010612767925628816913126594778793089740376460554833055551704479565397720971303841339684292531071998988821278127737296447150650133579470875291856089553244002844876869403642443880977658280533388971043733359206039264709920942413443274950720160079744171255934508017644136896871158269744304001748765156937906210251883914146240808754500009236687119034282087130466208247454469984949509846291336470947827970948789636548472747666478585065301570774155128135509329398581695669306814810494098553423899799538802486299549190589926107252932345356230212677273657924225162389014928899684890978193012207773768120570174376403247461524537973774516475553284453255581406004119239043052052930070178093349046178975746051353795424995524000062972826296186557820775494905365427240929949569143155156595112639759573065024721085544795998352599607148431585378551175163011407808691909435095580571048904784261249453116228648242655197381619904202468726035630240158515502921123591821352515479715697451526005249865775323518200436799405537151112262194599232608619282025851880227516457645061931531022186810913629739893802845307978254638813534485767199902564170787798889424694512312952989105546137625492205920863128236567811156852871631074507496479755035437340370941120641185712743656171058079586935985608634529835551044545919067485186810341670900543453108890202713194808388801443955341967767421049293384293591833190685835152483641858414898136909853277837847745163066727083848124505679393849235497415181342897667113960101818830250916826296724980262731658277247912195476344422340646352662388324830941538940959196194986041753916212430263806286412889948528320476951712739785062069594979106051582618629756564079874814318271365094340058439458540376627582242353038067012748342698066965882949221240577273570678244889969017104175957246617203962408218597098619442999626934212962517447093594410563294036090025690340448892787642362563860277167944649318078568318077855533416350174172257616706148628824162654571908264189120435284386080980843201010775936942894802744275049181984604024598403849384181332248104801623282269436989277738907901528168390926950947361474236008421885419403335380769800764120569788941194138689728186287742732149850337040119815489296931447702787389659932356583826049267381252620807995211729112083134890389160718562995843428169699810539276949764785331171464005326098501320386159647641427076979715678430829456454878355585803779158675735876695731559307710065080931196991379007183291828022201280330424347763897886283891911883295852752951240463462466056001076891692263935035018509946007707618383859460683741738169290026746654141042884674966397420521046309894273875135568058934901711200902086498597837245464306877983913333843397210116205268121293490237700835660927457828507165428235767025711198738436730368264630763755187080659109968146655150952757432577498497014123752925546144833410989550488582487848376942405156720637835438350554393825567541449450309450597523456723205973604552032902812623421851935776825352562327064149813076143571742425983205833368827106957451918427772503617306989371013057634848120300564028251041806222352143071503057855241136399443671611197254009304363219505064837228673140447725862140235326932126134689884464481440724208094077624076144551616919035470905387474844460800990559277629533451261054799479039936498027637882891660227458438915145315056969285183803904217912457607924839705765596169827839617667284346437928650462302617261287619159565860081431487938218033622286480583649576463830543554586352871789972440162391770696167233944405461668722313980792759009588169264352321876239740563599859522931044098262551499191284179618797317532789302029706560827846483130497766866064278779334643472318966458833472151638517054521012150330928984973176687751778209632043903207976185799502701305322150079231196107292292915901377116464738518201501082408307167580727203624166739957638668074482621786736496604946513524758315932169167362089556007564974600140285610973696909429176853941492531844171842366608633214169431224121923116065909426740737342514486084812693677313626526207409056641968884159052950819199584728397247876987489489115386548489019947285447508563756966569555084818125430289243828081170287819060111178357507160677374015904436515878064923521856308198002484805610257466207991794800865379390965926146922505024832540441348856665530328908902124014843836787046526581636455059087031301115428281500985523468359705435356688475741919358786658140339712920715953774855211250684948734391340558967009793585976476282340338625753359676091100597448909390859853912057534450472417259587210851421169270238952112984157089391269330206081065303226910969864982833636688094487799002474427235476932005644997663665919464484512322169666168336072383417554803221394570442968564043546323365950363700837107431062564352343382130950122913658779824320804323922413972801535898999951605726663084545327426357269633600983246323283966936787894669625149868738986822050848308817439369237796413159365277926619552659286965659261619759693698625868444008172891995045549152171667521599476933157776638697642806117422192035347730604461787300775524167808359444005837911607131996738072848417934218165889668752836072433684230375914690199882152039300712882718400250357464813688804359546665180991347343737298989497760015378868097737362095065796126735853517187489363940993890824685007764860560012421129347680117061996270757530116413457120607628452920467943829611526357060433200788779168571369557696776955114522436965341950084555210091261096914362747445125927092740775378214352149650663537535462780456307720278908396482945190889741737850523989633750343447353679890190954853229526129248622537503750604462641425527687718111874151914350622777256177826430338980733520238920016458108071488399072903329320253061592972645573570942806710396042637756492004883357921707369214287940303387471846838365103831089261453121598665013868254080451137758973134262779937662902596716844906211121733034401182399253495130053189469356129706320132937215744659568974168668747446116842921924634428061557691999307517816410804205342209145397616160500305390163508473593206244227107785812682699497165903940263856645853574861827551085759653552240599881333428389744530592184000879895200623868939934777282693285968488889300711445081042450611944893708907466494771664143296159408538814328207205768123210785501601750430433904985746599128661209885385435506099393287279831494885019154434319708029213733579856998540822406180488316485080509307301864648323885661387161120444823346379177103263840975550075261143663826894289789378287124409258662269654763160913543763408201217800800860636004313354599718661733169540507493676288635385799603286314292725192474870134529842684016724019442883375534800126431143046136936826250788634816462291095927066153163978212498416794340850293167730623854584906236929613340412345656713887377073477673988708392579817023393577328564432161042359436253357602592157645849904537851977497444962241615215613219751047714252298380217033160073069037876882303206798209531669331327958039186048145795625870038265454404411330363530923612747241281390781286964923664058608753857761988940547524004083362845031304771070212953100799682184946844643341392124133447586643632271622653267328088095482007602698790086745681455848472048842152942916930287517706981751780523933786025802842827693552515909839199024343277770218889721200031919658184241891644584243397534972494912432853145241375219411976180248419642041015927517671441919555582585711015417225167825380878858456253728793885400119067942911649219128397452122192300126099215891941069205439525952389604031030316722930017170339598631289971324165845842845701892555706842693659238519939947486487287178132663304155477117882598267228642980112457529058318494147445978181223014429832328013753132061349635049128257778584521416574856525787885662359481991527557182538090987536189709342177309552104879145484102855870749353880057413605067526282031564644559241365244847669479737379606576015335365005045442878727302894278634272772430019167179749832281377562122772504204148592218329713680430456054033363502530439305310089185790791349103170635616305975142051785151787945542939057156553300250228232132945783282037714404879792697422603838188805743400931186560152222513702519419594306874999759521151446220675009269261175658170441626723208856674803904904204852848898694398982634666594674960603485001704155063131809483307293512922367036629306097328090613798456956507714562087483988346663040892708111684789381353443949831590045653376547908590088397265071900797904930577656739672396580433691514383394831425037292143611978730054415086602380728666136955678202185531010738249345924787885997769198971823762093579330355299744690923509926753703595189685759034503183894551798458586256730968718726734075909893289872045227431818482191463330679004443062715399648644804612941681516826792973951045813736598412267077511000781593228144208534172488906813535806868273670920859072377549147227932809853353494528486648890739656386582189507991462425687754018574286392490078713343844970057137403291486879721584776393278038276881204965651804718892176607962823431873345626559621462841518038708776142451953908004965112663695499513547531644797104576652502165046214598892572237671427246833177531616905530367085564859669026175052024455371979440541201463869675436310297291676209804093137692145451899721989069129762737038151259456805821564376111738232775985391817170544027254453917381295699383999658508329264994457137009353059248788156070439444583152179125589705773775052537894719509956401393831259858022144792924813386176652687970690824876822572733060103092838798871474915817471585986262715735621266716996556780303616002694308694370422142311621233823469214451498544564844585333699146452291411902482128666019473755000979418497783115297105651246766218817224990303429826164480891233380709781729148096826013553376628553174271035577213563185545151849554930724154520047858166053706972364372155602881438437316509255782261743643357842786385539743803558648625454482421725598242400073364745904086771666169127021119328927402448817152617957946819750105960877906735554707262064225401368844060713577102791369662422974402714910049610906688538049299831315178701977560954693603591222675311446242998866329588391191620329946095714713244274763335125848909832518109377578142998018940763731249807868715354931330149910430896272449020092939593797999118383910418966939070546798297048444359752229432437381682991496110188266778132075485554608877978984394526950030166908720160719492373707211533957718960513179873735635826939774312772971313771250198122564602463207717154166246628089170993324589906159671376666118173609342124558789951110589856502175127070793879773108128121654212663222823056461484606106929654535834605670338510578479429385691917277512962321442809220011310789679203995699080467729226372119355875076701996108103714225905099199153433394601980460853036840490041663566478509937949209887039198437537027267949647245882643951902562096374962928825118348072841860702430191326934937327616664806294212821182909013575306755221157528047775231031356225601735655249755264329111340863152701670563575172203658972750833832210003819090927336542578342753820428718378001357785221516490902530620029902493737545708938332677652522016475772474321176637214073973247091499137647094320420579561335796955732088598992241816770967667870060448648925216928692619170972906619509241270016495039696041976034579649651087400260843005558833940021391672108778213812049634601317852523732426049462959170554271731864447631906508914037229850324210856451687517325791382669885537420154777209484445997014095931733956840403781999193239324186592648851469292561580799621262296871231536961303429712235924525672110982045458527432446882608748157093557166318574333129473764568231233626843821462209061573370401166174196343023930423909300882718748976555430574117051176519142755682095911204276648500687184250044874025752018993855922961806851936184344136669113501095547479132953226969955241580433756573169441124533137489281940615592509350480370875546666673567955148318239479526475221233859687124038034546196754574465213723565358525065314388789237429065971470423420848486627724083517159321000038154054935308034967169686969754548685625407223730088770351507695522641127090042924891484566450457567146992174070115255400841774585461216492648785812064775785608178896502822488527618680706761584168844211714042323535726265933515450382525940206239472026241250063269153131182849767614282582385474023826811864792255266532484608623473716746768592851323285954654657162105960969730676240215562605379867608723490640961993783544274756385165234868826655884450642131492625911065686194919546194044405831509599152091285833673572301722156244961693289769690196899433339417371397556329343768494289692165038963965461415167621703977749204777950362323390880263284063017077683288108467945482188935398182611495885491563257992674318352416323299801956080229581611068176591435216181872484396083734105273832778415997034463809323878835263050965259596468952665652047367864131030000039548489949221722408213487626977274832773032022138127283326361259997940389044678604629780803682650987243509611193364347984047964884418096129387421030521061111938454101210146683405837780335114572590447313428481467934715129449447949640718223637404103667392337699243105070583408142886628698721993996271459247014047651169874519325423805378550013035277672526888551845801114430887172384841088269839660925803726544839135538395380024622945663711265982651327897711262617650970299029395125022148236804365959341461796452652678501388513021377145608112514047895216254192545778661857008841297452322378504273074992343058809896728169845863802320374725471328693994221584042738762986386061946341739088896995244131439240033910765902466795751210582553285323441305075526977437138417821936134382782016574083086017305341316075383920934259280710015996684355831790928793059121674648671298446243978987696562316221216082891153068458448081797641307226425628411621400487061039668533497544244241085145971881438727950117622967474739086211215818720112674135101578202469489956709485754141072980464224646734472100392716914791902461458917285820739424731545734472120897456315901494690040810269439656928509915640727898336701481547951623446286156673835686102974920084807520887969970628731078211110345650629425972544297015968783768561524395417800136925707615822968818509750998003400759136225565505165240822237832120423748255565883909115615603581581330716103851672829135004225686642328948800808379508453294656075799611329966543738629535644197014854991109947312338160266594186728255382169627375238603582277333123781505199538197011138472591365341708342253199554113297836715186448591275823559551729416149331284043992224363563014890065524332073880816311081568366738775388467955665515675656344670321516224872202799011710498552513001212842217369489985731528956094883774611872252397672162406472010711024588422432970574876510705696854900990508175427698687199458733527998383602444231502512645240226599468120615108769650762632501411564308072999971982695403441541107771562801827299395279265733826397642607822350261500139959040449101618652751391234385844807417604286093606427976698117853175295018541755395986506277890455633467828478277174478197154849707258678274952372245064804806152712625503122255888706170903726266978234763868751150576388974036111547107839191162253477169377988651904094159302917598289513471221020732104067920709801180930723376126768200493006785893512887687846341086098913084540803559509953344793570282741906030572391176143418241327255523913889132390681537815847624371988501695499251512539457470023657440202866984350480463589912129054453599948238431675012480726073977160832107840751356500077844661166378665780584459511453362515559386393520514397019069821676610416588903440732971079804358915334186061825998206590990467175698887878403375728242931643997337007273630910022766787169372130956491885460234198470978848828125675655297667748324247412472662431004112860605970051587123808197908381153642479434294806069027477164859073596190403184805154418860145949845956298216498196319387145899314173303455887093789664748438195283531015256458265420460216489804890446101395502211587334585851618142078867698005294741991180980225251037922792457358593492208875513937038505428495133298307350864173679241728262848124908848629076218247814623255129251964203806604412938701375648380892539045399425512114912387772818093789293418929321014514279166575463698029267721536887722994621617105349874545302768248176024109313817097372783855860625448950971508069675377506601494931691941552548853370448093407879815604660782862854694205126690082573670210344868048398933882997959361101261307949185421000495531483755788707393609453654641355178750028041440048811652335101733854347550305205732146013442168552277956845320274108155162519446730987166511589280117585665951205572149620011575568175395733049588571978077170149038027037249986129099879030285648754571384011166451707046159968226412625032961007579102412331890377717274160210991428546914739445395094919530444796588552656652938679352773531361976344968422096556081119682286727643814731142707165424752100664369939558590443685982731568577640604181031681173873198745722687870782227735741623429563098195766351897930575639932874407398932592825093926388281329923133857048147519721616702149516197333367284030694599014048482820905478864811896069012854328712542045963112476024996536433357491060842878901105970912628126171426349342620169239798221455386725744452712535663386721035003853338009597213375930010049769508065478575828220771543721907550679220231934774900448072151430917876825450626926936518282126902169159387019817023623218356417971223464458970816853022088574050538811717420444753406106312236461230987469972238701296724354111648801092606863132948902864642221704552562722934143305781979641610498573010368052727262009150740972426084205701337838425523939202517278140982793575098948340576107706661463992571882525686881123729560180558766390875245074312892070126904460877825179153274844545416368974075330634490826057674550712797891684000798373695523055436992747912238489522496767935907269152133767660646947859685092096593174214639473682845236225654033707337745761844443600097113107368754831772127149858512333577023461695936673547504882600381849318695592226562639941174521412244290487346210004366287677269184020522986105778965749273235274655310382319462107767824282306610635830402502791543969730949740719162461537180868930540562879556352913560980420748453840432204342838860034675898112354458979378329535853471427389528312779841096057164038698061628702339396521032832161166844365910471035152224910096113056434770543573354213627581943950505043714189325478307564953529918259076386479693322444221570537315350240769415449591820214623958808618303667343505066110065407922811242695622176427603032536318794332820915634530919925695217924437479093304264156567704202633968222013285261957784938795916381265293979267815608739083784835535102730917774220138275462263763344588422941269469829868995088981708321909999730261577569206135129268633288671581613451355871520003969755729212761060065262358239201037016625627509115592861389775089991523584353880972773073172875598863334053396953140800775228521219943143098105302879733665231236158763598188769633621329329304002087703662223924292522669379437023031453058796487175613636094743900353421502397668533517894162272539201835246273344546068701945673091098242422627616729445601924217803368201842535022641235127085360836096423859369366661080769997134036455195881795533426149995629750615644477042666108458528256249519557272979200203218614414965674668297717148051181064692159644137416573379868279809778240251939838342014968097476306963732644971938336367357489842279058893710768430836051073778971940779404634567221120147272424916811156545742833368652785122562455996188901562091462981850439176810104975485781814825691342738917324729863067739389230893658382490467257628111213383252283570528693129809978669027913899586455340271154611805255913866469582370979898588576259622487075808994049709944453326348396678767389977787230354346063173098818284806776975116028447453072217434235059274146754217262143021271953232135276539359100240151187056691692427529047628128048263507368532136228756087367480969913679373657675946679908411922913293733557866387419249631923012334930665682905909318465482283702653811642181329348086138346103078169045612202137293013083601802525681540884930056663671439357994926179499273675900834748382377959040722144221183074007786140055098880777797107550373554098266160056349495047736079808046592097232930972256060697993318957318550347197713308073030060893722236238905785696947567292927096284398763163284844117529984249905109441305548417781493913108960940717070003905562869439757040144212466343900396431314856121808119060221666862510848478453645480453281807863057579222419107863027017092576042872408643493813050101642673454621015275486306744596968555391196361384919656035816555945886821728078908519847748392642864653686275359204572866447741387874709495897920975367838705576063792042962342173285010181483588823463561397156182154438879178824491370850810371916520128843142435508582704802209975151185567115813857944269081825792514497912454113074048134853852689690924059781606271567151750624038040313275016527529171538583336810140455515344112545210491865757996106369808931091725111784111136025782525239974479101194241354014255582039631013056133452801892137154317012414472101396812606527720569763316387863507543520674225421145485932057653644507020055110964723226869147661024113422001358423689772212967082850802698644180648237581332351657472657114556497767682384130959127548767278711041936167026558769350081059647029617610791081741901973309273231840531732269193157144986435303782429400815412638416562648975308247862315401053743332928048614090256249786210090639376783735160831097811161659718288464325942021993797151000402038685564887819936538739511206122724630747692758755004883927599473463673958342093016678078066209732836949476128268195696131097521853332990131271009296825102590951468295245845009797814128738199544679591630755163650002535656551907769456655751442945518230350979298291892804875764470500917370541158634003813488759639222565393709078703462436897945685035408672708088474651570940706905427069506794148263842118484676021723209286394562622234420127665310790118472996259115497906390789101649397820103176865403181742159247666463643434530782695415610012939653759573620916327035694846173404659076759450596557057405752078197906513172899041375024365822550032497535576600147234553977328145596383887404277187283484323589944841107181069655014452535965818119928929570492080630567976930138596116731011600853011665046423253834277588933822100435946790737903041637279705564613208878369882663212904021362067226439857238132449233157601317524852111939719465703986565843865410664788904035763741752698706414548729151935141561326862148389514289702162809359667976725164377656780129047659278664548813844957432185066166598643797141596006862312188798750997705129990387155104232800385958958279666512359210903773641363642882377479570772255007331337484619335985189482158117738092787754015461877404905541011585142026169399545767347303672117513338028393873909613702058734448881658270164913138536239995341194307127389555016923333159825741860257349430911655384372547572492279622998814341447247669619041257039864309691971714982071084042472191536246051637908785497457721024036160242456443216100460233802896233204255109188823138422779466868184827471430590770826811932456033616296594330951222485208091638462468652297489160482583623239599949111037362462104826681692735812957726814792976318680815666350064795648503852729799267388936037050425837667323716078017579794349044844454970717552740764552917189619954006238176881330269869732055570797714759398210511238383284014861405605095097905756879123187621675469511965055430020493065350382361582416195554109433743963568221139854685275516879942901252863581376261077125618393664058085621471022611936229803009106275961862189460140802063252637694175021472487276517895672889407863178074808411568479019830111822935250490965096340047169846071593378095145216585400489893808589675551757375831257976319478593683483095846187409447388392762329778005913264416097362461931577362256865489887333481053177133514370280819319735528488504319911638445479733203887548557283491609036899356678146802483998381871816273798717067927933458479470736289020308409010924896223566767521802651067532216354597968717172250553811896999740449807022351294137869257883073849765372211345311068318647381978175396342263192976878689629663181411485621409970352089818247332588940005424212412336349904434378864100349819072905027514760822546481782405101532473965827943897510236547682232505496271555856805127429770803372571083922526248944929471439009092524201725972119950446389637750681115974827405231377129314696315736546213165015654144759876787952331938961773528110738538939923891626149907049519255231554220131452826659977197804432127966387117578116725471644873153707620456797112735772212239110451443899508330617145687918729393228836818061059335535172276751920828096385669032907402011151159791813814721107477774494202323645734751808553869494106976848253924407797347884491803857137607941150662562736908219835230868336254411726085863985628262912295353238723279652072348571914608940377502324111652999710702151888888962820709297269338588947530810103098022230546357791288405709289554817630839599609145716759715045653995587603548536111579712924604152947654164514701048335476011956133457638020495986812175259921199086877556803613476141351869099126545258111558907587694609611618868391429793267398790707951583889560408478699806999974695733475826543842585858606804711168309731519898777528525499925939702069788036073026612612154891495092089541454702736803503355631937626324657956768010514653611688412326913621456009622302334703583730124494360469084816242500467091938598221828668557411592854030292823091129808506393813947749709479914432591746488374439958559130694302749648499719951127108461702548366540872861282113158043507216328640282139340876803019914988626913558596624905979267361525775022567819663051706790069374078484068205847152838748574905796527601945746899204107131208090542612573506572251531359333238874845509126172919455186599914919304517603047068193305996797761879594337090761601618899671739432977103314382572019675955611074124431716987139641246679390141281000617078737337033885329124287743501339164564628577139845882731633516173022521601957809701449348278787459409341117590771596380156531951737875653212184891420202943255575949556290608205333739583661154575052592567917818698396772651388767259777216252960880536863138029488776750344214233617808173405956928218364155702338253991165563294757821365012249521786061661666607396947663385834510682899828998881639343734743703751210464478809631673996905407378874942200712244200039083342885773638512246474727135247758502356621977780397656402320533716210809757857891096275266833769592819893591779415929382447947763379532829219143648792353353819514201089733481467657396050851218024430761540687006821920457207404850883578858778444442524898532462869926307754961116983983223656538535080375600250196323743135729438954323444788030923022844048757466143493040037151703335134595005465330951922640335908716999973574559829809984544825674930674045750800255056646829694568497087986384221645632752715495151902565342679126620879716770915868227258165827022124260354137617601768797777311453253758865267600613586770023836245329739459938627028957185886301234665954871526090348522092954769435765838456663885525613357367529094107797182485049309388920998607611339733396076924414965820343637699699726081503369645135915044620933867259134193956177537471986126254993139757900047314163666828541657982282834533503366717583605883953334366181112447255397025667684934372101607162260337145989571675771417618510449831171892787398377536451423898713613153009141309232665424402926210451278188562081681035866611226825829246102168974530548648307524922624993092875304612547346639156917638836252831486597964007403754145438266742243639069633856211243335017956121792892623632173988096745344725959686722492871640803506659225282752736825797363310507731978747391468835617289449089457345159373236928186788179788553903766329508281391495626846669002383982866897457051383213939584774158827992414471104611431710175138062267790061314563970110570624563654440030329508938164100393503797980311128645492029248837576460849841046986249566243107347240415759013606643431083710774539424257700410209426509236085933546516069186657485931198252383237197984063643545079196666643576278965203189973525432408520480418578499648274528840829012229436778084698228705439457762906628121030993898300953950611849829185573218287261912513705986296861493194930871175229675577645272490030315661876606221072099456218754400663009529166042755994983359162268286139071693280610441884127182677797296852626901932390146497950238328916240572714685620660483631020895595739576533551045996843903935248009523584769475494670068332381043886940961546351371019689119158245862421672596392310938952415771348734698315582505447063947832706649258849173917935495828721991896523412656282850502361311332232494868949949844861568324801376459768171568223145712493586609989234457885790146532580956247013022465785085131903887193997570754183772869094950910424721561857369618450859815802658375480143206524507707369500362772223721336357234151944386983516500454276335033935708254949456556776078523054413841488552459666419440471531244670813790671049628061586900194872846569884249774692945264057017702799305790982858138185373143329504968700566452754059538284409987755104606233160885273067452249939667174593624287706538357285963216965062519540272987054640694905486295908501816424448746655501572734058216553923142708417534456237118706232497533368133019767894618510223735460451625213719619529141997948785681711119874208002839810311494145471503672125859540958240743453173449270803841346703246076854952794917291530834498307044167340109592123877213638755117976141558607334470834329796160194839751439724895804993253532326750846779287201871053520218655858322330757977530587293272639029765808897403307556926559721428122319172327242482391366087901936915479681449319387301756521740532264494222088123148511298226633473958905987014974139124360714675699468548014177262775943175548534403448020136598189608434963944206322917276178677147567523613125085327861522743114192365814063234727802303920958377970204532299934082092980096038571029438170195025231052913706791854183552848444344203372416860699477722374158737745994493759667168728622552882810699326217531989317387933118998624095363974639068167388651682321497817297553010182034007807753019674927863014529095868431801366765034818315437854613597298380229708783953308107298420680658201385071215107883126254381293557613830481413173204370756735790125633999010663898688644737499683828492628225273901772357998163524505370660349670623306718590292530765430359144502303420889916943843806935371758555669028664107929560019937382131937546413387731698124550826862281222391029982390123600338213404576034424428960919336905492382238640117913318750358438765518724203509592087607565415220878504553788585282903098052517374958557488142186793410401353730363196328052529962630990535626432004663673003772378526388786053430576858332549689219612145020708157220944503895589109518053919708911613960443398396751851845806927611511637932195271982400232155866974647669343832088097685996463708419501347230962217122102529396370906775455431952362807823388802656930400286436296884655633022901805714398146662065155631249490435022443094999174491454711720906421029194789268941528731234251568909919360964085366681395168515286152389126818180775887704340925567645033618028504620099809622038980837044989425064376113180247373536730089142408101531516496878678332072191157709539362405477542297397312707639814311627252124730983763796140890974277938630880142622984593156373141826175415032356472619840051749958138488455528821192021365135332413848784544967441605072847594973560041938612549859384545885690202789667265169146665026201018034794100137407326149905091461350559958817346556293136134831100472350710976422186209047119496354287917775085920349271164908963029649938805212015562642383639891187860788443401848970240279507996187943160437068096287640769806759490367170170253047636800096780311402184777073041917557623543850509111289706353415944885118731632247862262903927769797881220366453735333723933269391281135373091795581905597772274746299332203170381814644188258186423024584329057619157531432966079155470615829836039333592479038402487443900551678178564722970684093962900556164594072971886943487179896859659794078546850588295822722690207838428154143324368241505037006565766615380834186773910681131008007479857311967784704757353544771790441619715968583897574062342012388915698054697723682856191317532006099909175576185900991757145760461463953123241850874664413066316162285202118319522770366218397113987136162260788540248556836156690868525112458363785586364261561633712764598948958983963521884594012985525189561639090248790736423245867231189801545370258742041489511839640120027949131274891123246904516308056995260148001961969807652172003605458232244977867019992571996965611336197935027751838812147810605718818746059905499107042738898217219856438504744850527603194502873942167050179423984779728230019761170123731973746004485568845606121532477760738373779589414135779192101587233787087783536938367187008937753974538261859503569075946207061709057390716697829916649064803576698598073730355106798545095663241626998721678372351128214800125965990487133355313798795118432942039592597572007466559675568831297160993207723964866040090097148009804188107636256591466584222177605506332861142102976743471114522371668958818463631219803054700857768173283717575548558934729616555488477818439749043021584330594465683011781501956421945628365407816562046930424516854061579063549692405214289082768468266942498747055944057384319179489069672415048878541164590403230963882296358672840544154112301377143973910414277866811750074128463538851536185814362127603458080742937468768518009753161736489020721461624140493842667096687180337786518664963155499149966426465298034099558182128030265638807391321564641420697202329409910326592612774424354178088074471965650800824081161613642625903515027581199574203609381691600508888011367948341471992002273032190316784219901326234422993284036370009002680491961332879432922561877741113888281908914385189038738568125767479345235328089949275279965974076774904765932393661496258782824696750342624882315232987594848327239014042947079602769848266842885495637588582764424388377391157948879202030590346915686563016200047402277510234150536718714132664239376933671386068591639019052915507590570425467495671960242108063212409727241408304386208973445652677518969685172755263802806421271918532501387760396962252809758663017548888427790746897290366941699508622957750260382875505276192399043657633003450051230287398133393003236253412024358806542934469162326172099738022144842242424120365814247409264749414273489007951223307661820000493911223522939528094399823559330920663151352178680081578282403204600852742774901953149622259762752738393317176778475358817320117311816901868902767471053760290751507271889627635725025621935987018183584054975168783398433786400159600344228293890965927791767336394157143251018762263135175336257660602204289993275987950451142498679487899563113290633293876362346865791011169012794126985432747930995869805658744547111081848000850231074165718877774402887550710709876320650174178863116651071940023774159646017081255203989899791751458550530834650701336433963770761655513070762421242028642055241111282654882724891947401223218865234597671202797784898412747910788322994373974042279693296066615418180028440612150465489812424792873515871468993365854875400569685401219054180669943551426119299804082552893630878170644948294238451166282308971057360659002955556692601388015736071235940789444073955622245946877808700164376184606185260938828855235625305768273086810812926815293158053333652533079554489280439624718612182513710029461480641440991303144170017947319277320035002827168124357039406672561751474185506558139969614902884211942400930810850993531770418254456399582687205960641204041257077468560753635850184664873421589366229599859801706704637570727930508852481006660778433580567829983746971084132221593515410052210920277122423843226040527992637071278827330455850515558940276057716922897283640823713148400298536123537775326821476147819508942828732549012974844515890790130691146779716253366159089313772363563149124507297112334158787684487391564619570713383835020826612187358052495450083742318442535489780094846341495299780420448959088850907530681940323840490469872572754564598394575800274259490127614174069498322640332401620613907794500662829609856796766076186849370086604896142733398294351714808148840394908279640181693388236780291796938330422554553054478758348322823213387811172988521925261893339622420402072601840884090914033069311072511688472148745398215918944634738892933952765397726854406180588867417088241501462692163044516178151203979029129085119105314939962880624301086963554722243112685553793561063332564890264489840293556199759416815567339652854315704599928197801868881338193012470763064932835938324318464030659819884795721657942591983975523055964752832748031530910255548027036888575424326882883902769164656089425674074264715809849795527010132507238046952233246911540924191045530924605550451883284655303534878429028496868626717641188093723103736724933957122227153776598647395246051223052157780657177736307711724760117023746678954242043349392023270574843792282820534004637623751372775203497253525212451608028694426018884444529881228128573549112423650604808155952754418604915672707007679415172643793875851741496272988131760663716174358734636513577148701570712433561623169299863930192480151133238353137504385215911478293668000463691767369374951502870223462026075855663655546394610596250256702880490839587541018563312898525616716471021575557116467170780073735585519422294248714893790702874932240907995490394493974375333086988527210991454225492194814676892975075616337030110581708188458904497781414568845731002942214836924312495413194493020540799405691447611767160236036532925736782195328144801481330491223139711147059132036860679688555616337845618470397422535886048912989586376610536106913379036442223254357621947454651495169528219697837661790321041657244885189750308058707046567337950794210715775575985049398563230396061134692736078075383548981708434775070935517806021015556577690288538294766843433849189562944921278912933454153679236139004434324660588811691926965471667175573474097173122977049289249268838417208808651194919291135889023873777994290210801138904801094633964777102525371522877143100080895092736327799963145757425278911237162313675704888987915843979965851728286856543715251118897365504396781001760344643411406035417625926219648333764996777866598314554782745542991030347929347409538344591825790916444663756063351249570537835995536971216938789156433942711838263187229312733991763662849609093324721243202433948528818719236295227152934671999295380038792871297311402413569093314136640916542557130471519968709994202217542101308388546086639496549823789345933888652159989225834854835172376677714912751117095700050224238745007570555803701559838870100878303919438177048107347139874649328182619369914401708912291927432412105146043134414768022373269662521844169069883227439472513577936595898015161927439413704861025470075061537436327975984260875815474504749914222822493652311036691835209417190756444717481998080472239777314034591461640382298489305389689826068644545011047138505143990858557915059230928288939860876013111302516819604498002840184503786931598132910007655608608708563443870534553446901211765244412636126646397995998901398128998663198215893848398271416859798729205049796404384219252278748052627695820270021822164892857727578740671151631370201984559068452443215451574452802122757912569533700143505362331106216863969618334274426586263371630781068636667163695960078016710276770442229782529995470405348356095712896292371145940227098710544203418896919007195967606960878139437179406749775909707429968857310188325233900272579207998255404447861333933531653269680734174827151581444938481983311035499556208953235785250900842978128510294037741517248920803201266442000340106670180267412698997967062603192939996450651144834495868584124453800730672731609331862462218327592862078212812478046029589315024648886414024440506792317852089737959940247672061606059685803749368407042546031318067617727323882917969858785911066945992725680344900171486742103387766535962795429343629415151954473327948377065363806655981533591133247679036584213738407323593432573693034593088861676937870314440803380397068884551729354503729550872764511649994039318357920222942330423870719540835941486594209874414421885242012396554376410040943541527431067963521219128197041342085649403445038051399799230340099423417588366639302003299127380377854590149144310579023769484358719578363986501962547751333265069345332803304263442346569220469411833733910652656662826276495063761715020070953138117659124365948239337556113313533422627490893983508806920103925123805281109226049375928258567430956391855262210635222298473808142598048731663729068524151960751983643069285806006717295672469960256846354909562816756626577149627250072496891050677660021233927634221737874163752642364450229431791933168636454280774443520700002386308250951661982033947429693931733382745017763872084087983743502514672063958839041872507381828939654151170342207155779032196520245877091032690928474246140579657785479105915926845936893239774095138154401454013373027948067029726199830616133274470813179303350949741302192195976483563698821772324077821150158408484920691907928138902791485667228345609154166058987565708582709063191320273396277860110467810588439328006560130602860814387505164095809263900793757530784705392879699532202599237558683480498730841526756383645671621502564728010925382870086305600667522964021988990947585162195047710238509724192947047904704706099304485477212624153151753084715686935336900274070171272934302738150832581720279113814228200542853039236469113802230724439999784993915653965706135078698777671660123262462789387027171699890431916364294180470823830666502148518787656675047873274422914345295492461512133321307264143560573239823974202207962993541632217811208529573722342362514334571097507484031479906317584444336651449028788008882062190026288632110292569023990612978114014653038574328111502727067417446908441048469759905748786041298819822387262653887755860660250970364004978792111200746622446447694554615520990434551472176061613861938432387036342959772032267672839368587431086046245469857294097527570897543663114402315565541775144493051588805340236541389145517425096998942875147838802173170315177571639272802228358537129470773287962031111782297644549609705880704332028162960446496448628020080188796202041944832552264676028324598706669096866015139598626944378308585857080015577257181293601821255668244041479247764615407436812873171915132679762636060473870565347877830156192650596609199265092986037432956429718082056772929832423609331242954509059750593788351620814301284723676218849643110908725408878406774281814282645752593404898947739962229051133399280126222273101440444963042510220536165914217785816743588602974540337656643124751480217045896494951366928532947454857517732991504177471095050199892429242787695271679461200691341893067876491089004360712103640487608261302630030964393800201067151072583546948539860190118030552593091913752314667051936632718027399345333273396775929527964924379218742001997471260868558177112719850471631283987425511134676667712440521506989683998271940963956397599811747248329730457447934752726106700924697742340772276921958085250331320220258320141546284058368116461666547012757725923963960286860366256063917793112081470910367758451171989731794851867549313000468814968082613175435039561856952271910715557027859335794429083428055885122907232530259286752238170845411920268091030592157446725609965913919097485226479278526678053816136562015350505027080206351043678185657505099701737747875373580178755315671833924511421455630002943214475283786268935331362065692961759968907634801058240614727339791364038249334614505647744234354036935772377731798865407371303226243896413043055124633805121781037338064568527447675346317483125836712433199757036003657737388919561566169939289893742956860927265047133603578163847768024470482366052151377091883332354262769625685637979327312762670417468636478769889859723118150638092770091215611838746223397130420110733889784496498445728479724653327936117063760538818704331332182189344180429514761009485046902105046075234398363532969618659264596552455940875631498560804499606261233249301713705877868577344649966511276489403181471667367180835488226491938856458791568288959652181427825940712972272201138930513122224407226755547877744594108493639385056567844320794505781900996454370437555406271962120333528218227492415916489691282504886133981474841615794991339967592519693717609245935619080657702730778110802020652619345625527578080566472636868800474052001517039072601135958279441647071101801627629485729154929314679374731348905112335575775042420021571314120186992283636115983772041271354792273998609321586546696616678872040187129861203585167521379139391574960294991533162262245946775208059208691973937694174854667358420918499049174883353288303496184431860797809710848627892386911514539433171647401558758012182617942597427977499304718442161996898126076220644757894841457160998221928182171790047709177165167376534407504957949180634132226732257456155707730646667426929049265255595448689553168343012231012683910252991094189039970064495765026074537115318106028813962886901107032246708648022403315958991818178025812183761861055736261775311340949761029251620033104350508281007143303964637718597119353500481585686834024764179404361646082059559113840872678877737840074490369938683687787215622750938753339066606463787892387876342401016889178204275654923491418621247173290476971409192398087611524977113319660770239913402393508899969462995344499701009342883209291102301029667405248124761310712480110445544523861568857154211952353517183555959912609896293491504585725558008740055123076989018282236029516987910216658311237281650412802561402997928660445975237381203034966475036413344743873550605106339153657190365050430674240198755715299327839769019196140247745834235266698475109339421336746351805863145389053435196261675973513461126696688116946698234307499829340151291100576845104024416228662727194325178610171935338331228961235773510014120153232088592013393330718130948519771482658962537222741230447038201038019112691160461303410399350202498643275710452736275456947170286359558518438174645355646222859273220655816499392730133231190709821627919716040623792635768057772091867995417334037072753063001955992963901515737771155924796187770668997554983512650915632534912353689684924401367222535527805287452715024352485956224799432995375213024904865733035140756043121013158513139401366969362560620834073131131159448525601987569543551569412348871376001973229748943092551468103578140176060718649688468012247713284864197344697907025110299598528505433241173350524380700022888636327841196136764721283361407707457048789550909843116325779845050094571139770044022298206844572568968007436246144852636498004751905491641254021448639669829554731908098538741481077378549972219958000594938074219795021043527953858021153898060864876239182732076663580247518483342607620534934919649984956688194142318229204341969682453328648706828066001342767075502045755383150245274304493510981533457171428646202265717849105786096652088155044875728607382343521581106504778854523448048845691991720106775417170158760887802124753236908168414671869709953890166787708989495730657879253519000227057438041661865022172179284023290517840163732997087114057250539855575226479261261853358705325626753599924393528954387155499241904366725407148472087692384480569367918264145198177381807639454688350125531665015033163078229924072714122871263082219789917389316914287089741792685646260471164133400373493630059420923327485186148992389655992567482861988780770196289985966194903854203054748123333937978358892601593662736000647804043497011536777478043277805259553961906340232941168205680537500933838848697272097134279287058252296406766749611994531369130799250913917534402717701093851067039409532738805881979586754366067697914916314590172157365075223251864140801893640443200378931883241216588781859314419843096159376139235909565413042610916013656133598202298706331402654101767001994440457123507775527073731363911962121299187518886843896444751439868634570911418669556300518436609988470769679079642505486940472752375628047133011818687322489648202841292097076550561055732464592077310056329288942785763274385022481374560637781501020618596277274430900027931244540895736201950583947204328600011629684676170256944328453881154629051227500359891429525537371547862699858066069315293702658593342469285871308544531259541565294009449244941129962122285456708888480954034741256649302860187285346261700741514513600293553543264120970004827687258377380248385726584360984876621430729019421766759427835392014281843234106899171633877126139005714674405007096286687413286481151971769934338841874735827929646936765741240588707709554692091131165912725772740472210022397030415910189303932877874962360202447965835149686919479291059067548660731540083362212070147253025382615760497143694240334044917953660603020271255270391492773392597697275470671011289562376739299551041536910961732868290285130431890770373380170591529838387586401671448741848997827814274889609931035119116034715523970869851204499559288644722269846807063580956727490710265741599255263324643784307140241418732019856911190816401712940720750703049829506936077579723070562118701340807265797785593377823337416931541497448562869248640637872335578241112205075445758251630928713262688507574543461526995435348827973793227840616553086754714074111737878261816403261461332141456648817125740530352885392288690207538076852791323678761055918981249747331957622391042008358859317709375164506868226485873438720426455918427616667831617931690597501908653740750697062807581201277172932966499657120205051843372996483522672868397896367830347026486214558715284189135823867496969745745381025237520950127307573176563782465766773424278896712501194031336333182726851725709165613680823930060600155063843448042339059327036730754887239351560664549840601646225729794348897254933056022051890408709801516813151449506949444403053199707628161867766870016788872795287415289943641731334339302283014246195939276430284242629375039807701735772966297780783919837754545013541304022296207826320181155414317569558722864423191897678728868119800914109081372400759523181582926899494957547123754117962022071763735123812063635221467814451915886802713603103386626462283294039542211236738144267355357664486421596291496320639049648308016461317682809691380964857763972671035813512381453158014632322424363925861182775084992773029319595974307043378662699859978019602327574719163478659350616965097040909800214008874766286119824038785070794141986639376345281105750979254529353680340780571754151355615266236468403474512214303128059128544495959031330902056997117995370898610946178201525049012483873643648811155291681282740692818287028563562853485130638724332923574501720040896755481612493871696337445577033802902773086268905707062600140704802644710137775737827833083954381425292077292769726359259673812298491584160478224755583822779063313209061622569671512747827435576060080679977366115004053438899125299203337141020540034463432777555333507486048542645495416634880671947861037208582775924586988313426790792197727987624242922524860516422315744669857101865273096469696301531545141382533299773005212331860433462042594419540713460163160933634116735426992547558461404610956409929234636319163701779763788965493361129833817327823295130292944310237897758131417559422032454160992782786442622446294394955563769900236674378592413390385294482634522129815247895968156032737507913171203581393736587009925327761249639799437366317145190943012357337879695883629226494840429007491108978853313697851456940147842118355092414167852238284121059135248896804419280609002128634101086784111278043293191162346931102166240783323247857622089381057183969876183817001222749416249947567649779066910774071920203511187881285968353289313442137750750459523960539204211815378132671409403040721548779293369413452608988288790010131885288704591713870324421565137949658461174858696234471817665539491874104191974454597217559410520959416124068369269860904199629908725116258533606261290722942266475771037616901645302829606736606288091742824318838872238745351448165878191054430488115980093682446429680261853687259181110102120213035305686030355884079933842014366192150771793925161000077936313398170509682481603499724073679384818960444828115690866460694828185727225829241324678136749849546635628597384673036931036304585432918221399079149485639146608572077142621929028395426113321362534183108847658039273186167378467279742982022138245410716284149219091314339545182536662839910103252932468873227138614970198030081824968900587678205990361261331598346946709429423662856962324920332453076611068438363787550740451197802270491636606950793007211435150911883609585876512795363344733247254949559604631056671858062265018042860881342334819189220138849955296528485041762871429668493392311321400257761306211244953991504531253757066845017108628543497734879052248518354269709530996615931560424846120006592074776543567948823445951998393283715921020377456749710049070702269248865501279600926924091721801781592188604435900986625372223357192711101374868132519342295795716240287787635967686374867391591058324998756942993709760327811885061817327812841915876059544881315708051491870805112933623046579384054255348833849128061254190926422588647242045417539697051506767949642438039831676599539036471983145127616454092629585766486664589043972316860199716474429307869362789712055300805580805526095437892527489461692556798277884792734553033092697364148894770367799871785506167002178513261906401262005887723282858324303913557132160792426661764814402094828493182280698168047840485718785329601845106961197557862121267465187197408543575761292512321605749101978902610785831569104675105282034441439699392686504794520842587269649987194444215899100523108008685016951245526038073997520569396593307184584331575881493845699640731662759421254187975869097724527460306423663311615032641216629474586858890626310450132797835884037255318949460397141021296602729490481874742040132814165295878415663421379979584011267376084924682026951700635460421801179717016241684885748632868063141212335018933919149299361419821866848224810681781221834388764690731273496691016762844915452758980345067705628508434390561849638263188074024899936206330248581323191551138719135183162557711159601129653315946704808857664453478770970546935685950505258266119004641111533183854384061506134687485302533279869456367970911437874360751746964343987087846350792324732498734694968431179147845084663010757369491904820462365414640851228886876677617866046259162155479500569320380241143405269027799218411877813890065658383103381333273932521372102372452135046790166923723849384030873734945342971538795015427633215831965353451819779975044997976177245224538765566614336786731230191530481397651862203300867837643200665559631472304132023973212059896441802507529905394960270504538011524178932470214021523358382630509580329142286390826281847707937555196138027343997342582684771124464448744872822186991864057132283725689815345217823682346720571726603836188220451016793418416912033257989925985030916744319760200710550721393106456606304043166818232843984173033186386465520592373260337080181518979873288063023122623842279551070182078115951746276079593110649257526310929652549031004957250020790836967139501414005944937536709381061686791179422906213963345872181606597627169085716220565358195464311040092450502272531048706530077634487206277325666928813876806576184525825366710592093181206246651659221748700127995510650797267202446709490236115719824074554839287688633929075410788376721366922377356073681492034076366128788168232401498401740877299560874488606966550036648426411184266923211299966118404379571795208537198638964149177526135922196574981970255748872343303729262251751568027304290877646946317134563923323538870727066784941682722984097692666684136227786959335200377962963989644924434457262398564719766903783357998878737408500976872827345494220981574958329011624737824354076674125751967654436824623958251332379349011065414014271527678034297861368802209125571107793095822421098690924124761870866765907807229625323008822209441009727310348985595898062288998748555333277091181628014876358634972762091275848908247699340736831929117169734553360137947116002873919973650120798454407842165928333502013643125893230398480584394051410876872427903797802263255120844188033173760617311577019548782741171780966228431651269737758854769008726355300896200114331974361821302121398634040523947540823452109465643786995392839272895816597638546025120099081676048629894944168757702437644004346437641021849228536589104721772323157646701321769284409142274487529046809198649458486615453290251942654934281486917915911954352340885479565176336223218399645839400267944882504266689396765119818964179672463076361867180135788433408111180550670355403569967622660615258654294826604028185147570385048657939073501492637729680805549343842171089460530547236764756273451956765934823314805473196421187541624056511375129023871944877965192713814816360313403771912044719233924711963555554222021589300084918484626799049076998388713603846868026000800915041964477293818909190176872106109609158265144183713609700444197316795322202061928425290807025486399987376672859016067766376378405905375354052596068140149235461512544279114118904588043041512254954084406851695440850955764080870268167937738498147913074723013439808323033271627275753831429022949010218817478167382041479742234007645287003882137683024079006873498265888612115246353570667200111286700427448417211600716666691429871910219511619703717199704703689156207595294804847545171912176300631772684253134500880454483922269308838571553398708952403505034096282358487249309307998923426556377753541908209607358075138169311354695995672126297241368783556373473205427906649637447427075196975881024049160774140476743224999121856645342372853542056625139346597736434712093961493525260401193887597388460039748238932953577655435227103957957011318217362185014791961381337274544811641268534106371108312788631562184241035818862307043231517608444979045041643023907310128504625416831235199758631932234795608104420532932346043358473941352842224948481681849604483559557205812604467801376756303823463446469777274010872602544223940541894467336334078810533232162825713734229051775505071454997564630146195789525634070067191452577870734152826539674238315693224321786579621146367838092836233649556174172749782184625390880037082747290514021302767523749272290762284847140114891635577940926603154647072705589003450144418357868442852698556582112868680306912180389394181462950503811170272162607164748193663417664308713986543156020394570915980764168178692034310213131466275719619869892807959134750479510534631840895378112344365234985326493958183942297887762994464795721461297100302892263013476977324227831345374462138517068557219035804823579749695872985123560317470077844072447501777355343835480150138832630867949168424442639964702489481097503162204807629001673233084506662943600778659094613245612772169491615306748647086568770308166156432455503838038457709493418836214794441451974690488534295641593057879791012945877550394728431786183200552753921576393576303373364488425371152956051490971859186339691685554051540346707646037394600831909416809874533620981300923174592150725642000294853212448782432420201789143436067359929412883356022848454422911500212075463863476403139830983181506517216738670419413123352247911941895410850912703147598477386424429872997380776386528086685068111015573106865475967455559960987782399546101553544249561473853428406627927885870316282193577412454164008574940965953612327288323657489706061431728032732701019285811707008774386803703905571682843152108505527380156138651567354638350773210042226745740228878574081320541402993806888895461396627437970356242437505411098403371482677834169844275099120911482407593439677391630626205046669510434325112831569047434364970885775069617892535219088870081317893683644061538619394791107188364973772061714696895125923018617871350542490825441056173628533029994369488419240109470812577116694846801484248343008418664217059293484883123580958273529346232944261311233151392405048168775872367495784772097313224929703886450011130921909961172856154855089988798979637851135057121113602347733492769668185783421008144366450465122077457409261098058201001033671019292669090639337401625456839069477024884426996089536378858446386723216901055194069655700383763113849553140897890003782898664567610017636945060130919226343177568793277986591840755687862291509798968317450423749424354480298060080310357516005359626579828894323611679035035166037972527471474244473592422972570613471452447038047026214838302563639399717842973276475716652651112213359176159557622962993438822975941280734697781025416489439986842003062708528740476552718096350789465381601101998590340838763068050747117781339585706028586224751906000416052106035138242139309386033919068221129278781210377224647392391609340627999323612706647109082232270140126965051584394789307850973777634757081986834364255095342288406215796436115985102513325099058461353424067773005311463914208679095804332635420049726366145902377319172854496945320597453255802210295584573786414148780927456001015418189589431509267288181886791105068214662366604382916718605717655683194648500970619803271149657444946218572321538011789230565308636799366848046469425914007755647129926513047694907138958126330065188373266470996892493004913659493995493035878269644800021329951257047903941709125883611987537982456880668741046295896662762204378786033528156571818218223303211860561304234505588198961669736324426481733337274808857002100088925452606157757746874125852267298652598039365893913826720269899585781105644543395815680681314753600715616068738362056668416617624299257193099343527778599566173719811974997540012555743041810797668786575281009521756014198902161865981944230041921365345617434455186967337001981406854031861464647260634786153927108118630063003007580376712675172692451169341898311879912387134055061720831584210451006766124899313814404759572018405572511449901674242313692241203253011639662217263519589952056510374761377458801448314103036204826490430431470745638504113768396639248805328256299155893709410017610243658377487477050091301908409189353257117605225133814444702867955946063877760368314957134332170581501037345977381419072320637268216529260116771697768937395838399194428245386906535603165959069267542243636585988323169529482171217108770265600729587507664071866582573321361800313054257590917635039850022294598485671011829511661299134237413912906317344257819782398320458068634366678272452252865678025709685944701440207687686099305938311307333127500218987201880242448252639553069718724079691015944345205925517072965898906058531748055700574049405597362907669344897604677075736435044435128429737695649683976182868211817451208480152060085781595446463265292152932899125647237716105612395288457322283397385632035784326122407101068100895326850581206501854886554551700274544843881200286994539233645162478586357410027308443554269661765849461361314369006977618659096724697868201039662924097548083654379782519235851896180044796841637195412944077373103526396142713001035757344010698579979100171976318918159562858185831881748533320474509805726042246697427497952479806467175350249704962264746660950762930756737508706358429997829162851136305814269707241631375064598404076843465519127228316861506877400768282670405392622161747630061406170722464484837071371005658398458971395878791929017080000331448919820834832833122938287658028733990699888186154750224054637959798586512694643686859504863666791433495630996437910171616423080970719081862785348834683431343366300197184687068244299435468452761158935249606701030561251624521902114882293563847331141718797938672009524550131895930913852311901729530553331807474626340130479087740187389603929568337832969533669532899922518386154450629355592987885319128676616847474847596437691921759487746483746510911480229315389188449105836935462953950529358679912195894264917500877940621965923430668672005960401380256262874636833042612668045821859630790166505651289500641081762946199960924743621670527278920491986417850589444804584987070743413288305864900714263718783121015395326444057781254008194530698099567372841070884520030306254497311743929120831594397889594589121802560122853160335631039389397596612011426901698445004138677163878867663342299512718525019423973080329494494296969587047690879746451604033500505335851249069806759730584041005642785325858067573054049909198504664103276218195319214708759811032565656271235812823442668248534441298332237345357680813884860724532614850728909641902558608067830642647402095763612539515697808827383041446414824817735195833132866871762369781612204262949084250658596472907190227657239687075555920644725802029356422901519557706932515538600775549168035015279868741995071935897459928209696836368082191675485828132291495195727846843672731770498582676738156782069049977819310890131378530351858056056426336875881072603890856188621170042180794049552180659916331436222172254368895741172853823716570448121467370855002820095149425599780569095974322960127827335786865685503501569512638902458285239718810981920776735687464849919239111157593888972387616903984817180955443192240150884830630051526713765915964610143084484229603469468373246674770620451975905209357566526270725395562834076276874023400660758753718430945301608158584747099487114017394226183668150785072907512067763558140060259813085269386638856828678739696951871459609907536755689035052611882925447983859454278629365336478386087387684632698834833091098045699867642030869882886748100628625834334094182371183455189253291507002043947207218697135486669205179231542546508636989403934108455209574030422082807327568298025722732763688304889634229135599217417642650334169389243199124217674780802722575071899245304249707423532144107098452261278069947376578078032371872248957122255853014710753669712535992665065926946505996332785034754933673673768533457354260740526355352364063067254707745337179985920210073201357251999656870008518102266433870841913300500082421047509756842878101301221168271369176773522815326206112578215355622078734797650775584612816890784795681522606236631596765180376386049722016680143765911301066107660624527756353920913401886591696345466781560270346050358451436744958643378102176249839641672508359908639574026197805771541221419543580276832841476864796081711965735930941594556587732530006360577394504481904627934247918117356732620170768444616196978521242216601019613988023790971062826960280322580074242208155347491984722498951154840014361567745948007538677890305643957212499371611806801897991531585594214829187011780163200670369632931005950130455789448545575677227612045911925807285194457952450551044417681808454807163610099312355627266512365198065667648071609156629672926349471400117510333079526558887891726560159942567808290628194110447649116037706675103440968953657187388296554486909067358114369750336949277508267932210168922786097723248122702434575611003978870123813381366996785934903359147511410569933715795727384943433719271041535125958072705649667294016883421083152104959770122423424379648096441017079829196452530993769425044622401810584266668706534771640042569089515397947864133958708888096158274670567701788924453402717975188933136382834412499650458521431663881566727910719297032186086126383115487991037072412061749185819998578310694798655668198552646398819844843875120871441162377774649021896682014456317226073351347714952578968348337770528126883903892569297591468765332138774749572443707823767780390938992662386593658825287815233938482121140896606044573345272414621164139727185186565103789279289495258795050276314866103257074874628959390427260837579624909953434948055093709684750693519947901332575261268165119247859534914972036885853363167005820871946593340363582695996851648912241037468338573255165479226728456484214305853233927074119330472290851227735398066084500521037198235317826810860209299914653281202208554912262129214041958421187000815814436470586987268192756817963608234734625083834506788667532241450134356239388395710553953987589024761183159867620487467579000343492310419731520457436772204434114910404236706985858224399506431619108741035579410014466738129922131203777007128294739123431179092693182178295763451024616898892816391735103889279259255787347055617774450903745498374701891293259722776492042757401444902781907833637808205433383988193436127479175575363200868696265593260903358904942723942827770070454255029825053971860620457092502082149269721288427323729678850372287752845512958731395940398197979136179281561547310364588475588555143591016068379591519507000738078279539145961185977975149674409303449868791753706882871739324461146903137921396597597212548563858404202906786625360134276459136965318651809823670484628960717477224841604727509176633073096061335464115727974276763648005777775476765621891180645658537795708753368075718232512999783724056014948196675205002706677549298706625477885958698361129262033980415679436493446956294566323249272380663345517243079080217762282101134961999963934300386905397039905788562643901687602007752252713254461075956544929101698530408775477819932380667503752693419819862723165699648837063276415669252082681265047549123339483218967133932125304053220532238965673050352602689157814352085571059859629411319055768965973355086303578335444812372718466791214936060286263700821788231649159112180633539011947792417357901105766354160917191790431746531243318522466505530369299479870372463366390201957946279880061595556055910612811220421818626078006774239706996368263185681018497377376061705670427872142421350911769658014393131133827221128554927814745896351738758459396720668917329127130082357748877762134189787858631688566246857160319366580250468112518034347304855053131972176175458828058631019380881803398436262174640628099462350860306100991509390284135832407420687221247833178779226251811822610972413297775081090191186567874361295937561758773669247122339723770099874972556469925468201619727637342437179084774399384038475738376710529613111360807522014387068033907892292154553250198564561048184650776588557144422090619666476304034108362257195984241514308534180785441993543519250566395110405669414069355949502566445383307484296287060896328596975883756683085255704167704897568114163519899025287780822441020382429922508007701497155327434633517785345410386164061653377929240893713733774015524675691887543332868499386410709097127269840521754637586598529363854902489764064222585149816496211684443268823478385257630740469699747604716672606558620164628988020621932885880807310023746609600421917480572988299754713684670917822927137506990595417526448325315697458264955071694331417855236909112634373079402290444652040686992894895373900970601533339459801540668843462196391279075093921514090694223641619709481640334792550720989931897880417519037350127851076386306417640019891006977272461626759240732280479756992106780527462341151344182244532692845103721903719739244902133406399587239453826171512270526610165107937528643296520172837176311995267721539068006900492629401148114774398438954304369414190232583248235916688510258602722559831688044078341527940574368175354602669327678574006833203447323721005631369926570152440574846869946047918390521950035276891236442430333031580328473891885605018941044695551454248703012685568862054766309750264466370777237344503865937537194858677329208787719111004305827597344106238297456266849867840191256602224571553130334288752055861486960953124506835648620371550094979890504094760747683862692404480277026760342186922090159142594442125870150012707143017757830572498783258088109363999168876179666140424522936019344721756601241228850504941257268308708851118726370271287539776747658933911614996803847906015167371404717927045946461213177506097631068663572752552309451618481786258596687681847860431005255379718301753683334991680736321419772808311104633853642553262220754934947577545511598878902222355415502983855959563769055722085923671015792515293860429109405049206649782411618347424108328373810964070435642514781019731742882994557329522586115079341090020323841533251550769730432037089935645663265109367733137401950520625228978015894502295355402645428633883094132609961808123239412846467878978121489986566853969285572086954880707280592761561354993414632020684156535194741903726621352945645280449407827703896589881991376797669504936303505405592568083509469873183671211040092328307160445826601417087173522219967961782706248665124310021199201298708517529981666974417577482187014783478639862410657465141573678143084847107856053755856375343378873636419454969968752208814469398346358982763853371482296625888712086866966251338688616771180770093621144940838413069395168013611469244311069699797844217766421501670166468434514277629954810555725697290638323525700599959626822746220021010529061566981109835984050076085772264320066757439873899340075274142210450210653150927860716021688000885828834317449502039208666180836352781851441095288182473118200186667607701966403670994230768980396309986189882440821505117084953566763592954204552936855503027260907641481901657994537630332042282146636804300301719584799591253225555645370035396346196823498814232089457920690908918560998838522779270254038585284032447884534510888202625228643466640709672147603355828242990021979703312618706240635053768627368283327435595135980577004527443023973586367342330730268431894611064010886355924601098517684270326236268099825136627004244647255555340370891131036172919955439413386278379376911097874740153547764060030032069536964344523158371366077967069904092433272200200905084445482361195183540739386847526197891733189375870307160715139092159421944650460426954074256466795843772207036464106649447323476756176562050149363902904960306004315550735352940412940889147611256081867151723979579063363065329921976812450634401153191052605818776048524203663061459562930845343823405359024927874528840817036139718013351529862697721687026860199041223134137442011854209026608107024026625020307785411884780588347293390521199482455714611031452528909021241476698025751621739103101310235899976510601490738587700136246250725829441769090247078035913371687139526364499724835992958774402734028984254723366148354768558747967201138625085895467190063524744921251338365388639800302139189945473872851848580848878961568177740873935161225294287155849063600153602837957471042539536373783224470588447858474765741291638632496808375952572477759412582185335543392130265704112549267054940251952061770861688132736354687873472107529819468221221241142991355375117949017883025927293823187422715140225764227244140576119209348231327784170927398024809444439463350819492555604645162351937229363403873035303023407914254058231773531733074421985605938890279270171801484259686512711361507257622418516801103073326338483716884874969915154008566493352721010402371704160513714325756307765579817234705554530807570465714239025570065291214841098350633616955403839177021509232087095190328297159202294390409088775174947840260572417226086944597336005503493225356546573516301770094241296199138763707107935656491418506060312918307715648517519631037403008033300868031834081750431444369385142129088523193951453207517206866745748566031852130608575691059508983659209926893309455045058412584058235288699683619323515818063861481782458142717477826005433359887559735956311979375756776078410911988610946290516970681483620128745058564202636991783610946065373429933327011553604806266467898525840376145404070193463884356780792790677288566374199378585019605461211203973867099360313928111883599083193739077468506256649552514236205082976431135085259138916980033542290196338847212567229320058842586113152128363306855465051759932697968430914852209312584870052069215230471452418187717433431927573564352537845839806734806679381865441939393508519726437671011929418568042805555894928975293147130972126395736094334928482683886557986276480317025955607151437748644662963612150736148157612417366830974396320040419401617584390998969902947488704792868184392092015037391444815940416876798664732401832557866059836626381403567065047543217835085601657160150626646508977260052908609110539951143177067988561746182018416508333777089137578473571252012311024770304823539989068124208674817742353319740512709997693065885869562434570754303487852600730679951622019552478569198745903146450476044631104800532888900889653085344492677270628534485046538034340665091794979125033510689253739324829153589270340697294706830824945727360694535384960148504399126772274862946318150788068141297173870221685253485068153980089376896875181295049368093698473117029600830592748067834090795590860084257141528869357943189945258573043585192224749966396512753807866762425575552827168472321642340940217986113505124553609174962599639011663942271944936653401183886742282011632996043863989879581814737290759250811421394581632544122973967535446254274871220918834702377810812336925042781085365211864474202302993042644612984462970935175724928314975010242047257171445912610785536706121275371464712339181169768456008332083960543767340557954238842737016148298584443761675961541785691992099796460570598023031846708249186060059227521566253774995333669823368882387733072434973294361919626954195486301694850038825662236496038091009531702126979609564903860588961747205916390362034847661045693729132470163311602582634734718584407687926117585347279723067895290234081875547702578955902136352776176717024980466412836785208531007179225369325188935196395242220232932990592707233758945204451537298843411376734568044072516988812471563868057376084710492334890393767425198738334305631320657152752030101224661471916911919217131477151263919951771651015266387208015851283456803172005469698540343369518278439757477500256634718248209092094770534078246476755542573443266514193885310445355569141844151524056176959550869675751361258630699405380236580473172642220963157436523320431605568147271539221681878465008895741577401234316443393844913325221900415809093832484463252268412460503068500096707373311001917315434983606114338916857642162851376214416081887723944278161837626177397556030448375809021843513643196390738586726043424818450657254642764796855097161318691885749496844240674271808941033421190032030854253155829898796988213701627482372248348890172912336454392746814610130766489201676013780140759987211492286638249351318561089769685186670587776343631768336270647691514273951763040360660834975061700931299140014480792249823001662203501232457062228648028832300292590464231927879030698508606417616212444465490778288249709786354399533604755328269563216076831330808378190663099558077948550527712690378422397955747755299824897100134839512847395260711437941473746620133118205718537598812334767476814985779875723804991852863659100862824220094726935734275409129286003493241656155112739162369976748248539730604630790218550233226627458556754568674123878879304440834408564020013519719573161766213143214811030721777724706344505128387104501972275081229879000708001844318962455949991813862183421228723892775094697637054324217985726261896973935746429076079723420602006888067481390733070659493516499094860885345394886472412809872503084745264733843331406813694721031854088641692728952859542239377391323541693811325565794414544694440501906442812773964122056822875730480395758805573245287519420455856690273744731874174865288254521604415051431307568068390723720833793890025174727112726873597583757997311201592110715316191365191879022751461839117252121880390641457796802290367650398045901093343293770624835406104088819844097593172489899877500921669335273418223840492002901303938231029646164731104250984072947706479772715313787681394400621282072264806398647137365697074488568342587966643368321160800538747037199684723017130249846944020008946449957574658215081554971350388299908100124797749752454699119376950622401024234147601409438400291496623041037839941653671873015982039826927428759288882311783625275437023046752328362572324401939962333257269458643341885555446835808177200410359869099462689845069085254260129304626549584514308776811767095450529162879571370204937001935073005896252949993276496871506340883157276069345771280849631782542747965774033611286023850098016269220459564808681914733611515757285661202097862115070467295607717848708607191792704256177491029004348618120552719550507071383803797933864373789706927477794097434054432343611968971268159364726557279106850431110769585438889925769602904277596883042419295938769165542346935212964502550277357871449927066420176389380180065432888392072799671576957942842268699082815368298013219948765251820257279823305808275155609076215761348987464965701414529826370405122407965583828194248621662780832452371602976152737619296203668092173812374717898955239474462729354095728922923911911726413551374808326826501496418450617407103371313298746940299728214090011421749354645126024870892074931253472420894110001153465552992575822209132962478214742060969448412957571381285612915521801600515924193588323121128902492538306265272572974875007478650359437835061011149346761036273619408957336060719666979334630667870102134150764989723491691555732802929718175838399912550694162733595957658493640475635426967722534538130363192501850626041246358747006672159746065485995282449935644316366808796603870772292777081908450649237275590663430227884307798460532244123969293870800085640414070626744582009167942691762666437210611171971583020768560910074037386270621037890827459230204009257384800925736586990830409363292169925039017718906501162169516661372018870588708909822996286478637613874164696498533401932376516734789444094269427143414487218519621764343661937357804835910704917727072393274054989649525212604848981652359144563965230927525449452493959870604392907288379502620487075097051877278425932514646810843168735501195087411321526881431748755087252332509097201664244821882614521864962557970601022935153727227505208921789103359758122371867358107125429946192461266535270519668859501947376743108396417239223830932258794490612733464530309193512960176336285961680807100331182331265881858478626876279558705337100475740294111961339770889851533458646067813492313080202661810259135316998506007003103252971589950692419059630758193691172475566097890439692073099544309758008509066856414201931469875734046469592162935236022143914158041438674852058708916493506715762415517914075542936071740682840453786493323445565922208264449357980922261092243127173697783877722181251606878189536194823373351966994921664003552476561568377828154938263449582530450849465615245433883003219145026312444262542095941501015005558044195195619047674353909569029515856290861688267319984138696009022121965866359017177063975773015742936492418361009913451089220049213464711623699390105827834813087171496920055096527389569985325393754159489295723957214397937709754269287137826370655828286548396596837524570679183642405822673000442342769183002154435544251763232901399931227133658315677824249408998953065280659076108207389780455557900917706818683256525578314908031467184742269196960404736280401853252938565449798906588268737892742980555682888695234917472482433994761735982461515506090300841613201757885423080701797254465313414940803881636142481766849553822416003994428629623218985433617049648603477163241731369894898447769808863600228325500812612230342146229421587580786447238141796087455708408678990452902629576615130343027254757740722529032064490911252283369888995959450786168226724691998075228551103300599350655167821806602515474491952934542484316110423053186391661859769520014535340162874254795656029691102561181744378239600556453248007206324131937320691028130964502446654372328169269540809717555145821180721117686517785384800160907549235373908383981657817588494517509805590415677234479556378736738914764120390433497001788276347887397116438043096015956639986473048816791439363048427969404451674693824862201008964126901933229978301551280243557375303572018524852735469261852361696826410334422711475400117299929247445677173355083707743775520642884291512699912037342825315126885564426785848137543326086352213589125264453535403199783967962558550852938030700232104564253987724047815408608180909233061745126908773090214382280560719666161783847359259944669933576130555198015875465884662343549427509280173215066500865838669993807911055293070114536309799319137560977531863800532013713191131954869506901308956711731073906315282124027879563917503546587247686137774511888101034201882039461594751060273053577976978955631744868268621988216667723654971602219902199714300512257442725398656196525313861587612562152486089674785236046998131585739750692819242938672061095789319628519073426212742200735806202532597691868681560986107264547673719304148100364323084311514824577924548202654868433320192756477260344544799369453119357420903232163430887780551008464986577044171037920412803241113323773958727573842373679411108706857641684008898375658658103802618803220091118381770643682928968246843066360792424992078938951130798812636991068924684577524055975290419145407090047281753313074539765929765937115662472481026079848596710489677587723431229603668478322837170974425951780283084871596169618366557039617657680074725294771326352305682276118634332775695275223972236046952516734501776261178639518454329589484043043275917284530867559044719626565236308703533792425267351121708748967754325340446621340315748017476279918881801760735305718293283404125307038873996626565250973651532381746675080278397520886428399164454633998433297490334244528208512820631344108575953954639444194051517161196926730318421030698371304212299977577650468489161484473705371282539698457629307316880980987908765397887405222334565043183670036325915493137019175391468406671748366474040035964752041053954061586143258987369847674915955565193474132462995774395898503901112575562536967490663208367328894288369461219905006941688973458985459012229390707975143775206619513526148761856850063901890319794522975790910028972931252388482729491745228010337630372481412172483694456979836730895320919269665277412684786573124197577505220827006789425624305639570663562916891503212988529523277792571120786550550938803243166693868026919818186865493039302663355671127544435939537029115890413326249926487375738686208513460486243784634268183840793388807002435411809418761133639721117901436400208912968629840309897683882200551135278658643768413188382126476204593138916809306297615830990395300258875891974544331406784369863669787751816613904036538929429834852746440641115736719765150196843288809458957622182191070790037244429827436420023816165477901030967616978655228205442014992631086022969069703438569488351498149142281477034528746004748395337334448404700494210834334548271681133599112226435153030996116814423220596555100768569684207908422149719788448206342250748627712155163412722666789330421822255706771227902752063902131354790038115445143858841780283572607630657964298192598869264540054959412387787472177883108675137545843940407370994891680100105079204882417894383554829754090693145091502089986146217291771909656140168241949575262697172437775606861055073647835119650377782280164142949507275561849534334007475011723174561707144605207433714231463715407032223919978391604910232112559032438232874046698002206036311079325417579549872039895998803815801944036689290625944567648990443890740145753675381908927697225918033220308271381741508382362488905339973743861175499614928445503905704738009858613892830332711833262493780216436706551727220119755096955236703288053005303561729264078678937356012679248132202189656464754582544394759729147759824919837202353575247362406024440528603049971960433031605513753400656223419535005092290817346064315911215471590247545296664714898723241146575946740454222933595062288748027494012585697505353812731268915994964193982618928851628141142800521901615264027287398367628755539722647018137090942303964999152315628547243475870268383010852668505077659748254243328193613562131262154741768297549782865035170320800438332334550181278129476073380792422633678034226392904148596032921000554164767781865418238578362237467188292959676722910831365191718357779043304347852570032172858092837738251277273861855129805065985874750870974605684206518120617688606983941048685748940154371963328293912630311629819778867929772628334333614882597482629362911172053175765685870507815253276647269907606204339827666213488906888445663657898377905062837594406745790345494147227233364266294324349847724721775862324397572282358017672589852151591447761160253540468387116047036630032789301218833591700780787605024536031616955287183065069993850295932870629845753928796931169809617880733500878797649584706021675907737503256932653174587931755594638171736850264344312664576194023219463007637192030196588628565816380183978263848478487317317892592058414150658127095784245151108730694212003377244978039705048120918979615024813275105845212061883078090901180481216755246172386733428328791359604036083037200398654613956936064548296282673437335148536544782816225235759205859521755068638450091583293353748582948922177548583889837327995756879654680552953334538570612155564436612347653704517124617406969521610918302908318208416690214429458232487670564017920500211871256011258595853560002388119058213077108407741747330950461204118174137306035888849774727808608669048331696866149282485187770193720681416126811421404135789324612407074837943444153172881721015207605134604768561115488793864183598110168325356616420501479976738822351686261775650592844588294514080298936859928988102851958961434205694246113195355293598950211859434293644589878914764684174950157250634574767459626116856351440697348693575311329552444525246334448826402678720092883833630737510974220396357517831848377013770023046848133732990429523796692756227619664484621268590774905378889590857623438648631090523912547695858040232181463812593008084303778184250161891444364390770169042705998269486040774181481127130040295162992732690047038304486289941406049621332168008787876342605912257185152638205763683547541194399584547844089243717233450895891188838506079747721001634316448356673091472099675145414151490764817940785725082429850004339006917671611811630664169703636005904761041132121710087380760774288191322166730328869602390496460752536423818158012935561607415246964504584026100014169741918754642037791887385193325426060604036906655401095600543864554834078924978295207745670227310576436268366720540513257814426564149274083052077223612871535843283461470081480772939743883851505185282086078362335583710690934147152247548707003352546520157727491497923790128540580563071300813077827728251110184769299634869321769745819050937652794667128424403206417081227010756909639497435156299930026995881457046799579442445662714504995294883437202773893571189722228810811942884538537860015900831688259109011812537799909684785176427186545082681966351662567348474251364901147272916410504222935458968577019616237102269099615758643053530762088840574423861244783878980862303549738336331137837041583738840284378681461598026345720894670793308154748446281155887891813914757512173829093159369035314046276779266897871661451188086344399747456867042485595325177468718288313911966539390315447771508896308335721267462483143693658105088245355403921371865147054804295161213005704716199584228602736983801258185746185510783056180586664189878739058487618367574349462926930708780332139706987528618936487850255567011507527074297380382662125561943241736818587935655964744257513364546155269840066053554420893841792032113209242859421262228234093162247221200904525992955907988910217289463600027011492030951793984204010424891121951673249431438350166124676261081962098062600902856574056137546522692739691607605274393838435978840011430465587825349361715339898810457874780278174890507135161993131518310434379347385827483883089561310539863458666814788533268209133125745464584827178791269731987495994234365988790342619123796692043458477170405609165274062691642993876511583007741262038228371507385754723731856531294857969345639983234666366504725650367559109911645578776753992620999401507631213561191808514958752765410317050267751385160125461943788861737708859827560722029500990891924148631060967734687627593382021712144809084632007390112643877988124043822943578165740118122677772097062072234374070282631621756263198239615614970744197145311328094502750226860367752554038142349432355621514914968580891413143711102788091863804131102418174516420310750389784265927533885641977167617785201823930668317851601567567189245155133897529222209311988180794403809936786002950187006887631817057593385302253953525597780379021471635306386891088190459296432779807590654158971817711740403804919810140561667508683862752798443586460359095157376604357665124320034369388576044446279915408689847048474307844550921922442860535034214110355100359267432228542496789429520829536379971616400024052525245068503202047589258847765691918464276605570794351040502369415019248846811079775836354308055921563687827192777220572732228517090448619842426168359473236475034730959738219620380018637249967706203404264585586794354452610918370224658503166691181677820149161257116159896460457297843015062973838332313813292342211464149101810076660999476573888601615899765753952699734769161342803802748324692243721705809984405698267841297094991160483603722326416598905716616557290018492988715234446444684686643030987682839884151035304114195941329771196822016055324204450556613182215774409741318539859877141543349299407171369693640645762291550475781606035094524038750672331463289926528637348061585374413170437783741163189162680893522055443552170543109259592300614982455011485708406534299439778528999746012837810451962789067425719485126475411864249558730795951302178659998048914120064614579724901298712631126126474588829546960627654100194232856808057791666311904516819794975865006703841364877988509678853634199436852756440482267970513991024010909134874899153936274094000183363485129529975162445310531349437647081159608989512946586857225190440161935186237758498606022486915999426126048221561938232616075371039697728339793214228757796224019713858963457844244403733007640236539896717805235280091706998394520916216044920806958081535956827054847087211484975972422552344122165562629312088658659964023502559438558875547864489573975366522642234886705115009428204405465544412025429424113683014671946572607062867912466568326965391311751061314183545964354999133346749356746327927571532257849363245675168198864655052600871786561462204303022173192583894341943816392187556488330580872195378668060948249058957766407832223148957953459376025901075170281921429765980454409932562267402606821845083191099747206975854799057638377801722665868957334313974241807719971816582080930100844776560016277174733124132409707869715993750286728444223521494997971666360594039571787511330298156446832546012660580656093524320431184735403848711642772016303214610090890691246231207725275209851292035791335628395327293773648808718074198132410816246921110173150119949986020187871252592946311925889575535313298200265940101681990717286533683635790892608399380276420524247630238870775702192818932269602234360702461121046030787196051331153572059926936640383487714316212086501127745575632390656478368054175262808858149031265139567025101789729543880733698681711657159041405726442796160197484485316496753008361052889781680060709029109718288115865963646475588863631690268036999090661206134451983144592265726498845304783063499958477669581791925013579887695681015042990902735885661176447133058758051302444872039728387117519245765408055248591293530630383296953614573423278100869431571900676147969258560708569759231829169194502771574581345602762838495491902857152394790000422332403748345148064916233806760483881528965010006453145314422553633281600243338550402774431466020926767852936645852590540907501386736376085152119080841623901835198465415247583621238091919227205715298260467510487187947495232474338687071751717504635982578520509991490034009596924606594570171921159527751442916145959983365057868770958166457589769070495868705286707995965811476444634493622089402469147106756785434778780646243230869264534062162225891085803308726752030074937109865274509811203209775705243389371007528027759171716303438799567354539011175787009541915726289464466737390146630585366050236883479479339798766316774315263864595668623889953340851729214646236151419222193700287842189630480338415138041831658879005582348650180036148232391630712731970785554495944067075612439802986785015065496244764793882604963322901687568674896528517564655852218549975955033423108085767861759500777851349886140895758295865712661340177254493820733519440847921007550008699927377660394292502400701965877260148364828094221538482257708166327434491031699053344810524509503629781195426745711705173879071313009759937866873944752709173152240909922573463824263988005706307513414390701255804025337076457652494612051232787992457827320749757943409015509389244305995008350740770575682826405882582927393022938524809888662732896078887880225188252686216431320923202982102588607763535897395915994581650523952257929847943670304428526516292939999148814340464998347619514840498849951947109310501469282234778403837591039520194195710612313021647882695031812159319940118220313441404830206546732167186072558062693338732651353956120161292557240599563976406773815669078445737442469549548218465654468895456672307033378561467346225227001725587978027024809690394705187689491758468987572296104591145772122095124788946312769990096518487415848458543556402326746065031985680925539181250276296532946270836140160527824080481490754152937318830189130535703627233796477219780842216259971262851365348075711873384807026984746904707624981433889802323246375114880501321643923166744164344351945809857183499747471577963206415192207893496100042011016164870902913120410431646322931230628242859251397896163437052256769394588039129309000731701668478165799203528259941958824609267723050093781046095479654656083592695401007854963927460826810477203474713534570138645223334277814650373893772542998687987946743980425600745766210562702832913161877645174747504270092521696196981805081680891810652318559420957228352762490321856225424686285156160937094678556150054295512168910829572442716509763209903545297743426181546533724108753098985888924268259294398691165098502796549924264131735015848568144143603338821963272479159953849049360899754223078479855996685070134370846738883058470070948308630282894595866701609568988109231258850771829472837946236890422664826499765980674865950505502444466914863936108453281365694637236463453974272065722581727894707687390424149385530793214405100283379085777469032862262247448065006816351874303299914979132095391497035227328702852727926790293726564037242359507967534291815845853339126266100695396077825701223821655585601168706198588187008864347093097118375412143212898903115648579291036432390062946157856083030789630536033406110685456040254881488944560371894501912022851244591481643122831947166706857375710385385057616518977006369840718520215135955920017852858051105075337518776504436059319625699805874041166857410515045388749876447482877145486325186668281586185012952243704700387262812960359906905156458776697816687641353735230849989459919314734456312399165445408890527212583115181745345498932168630958532909096982231285041604952363580261286224774651336936917469012736192049813317737768051000309989615820226874342182746894971053098667098478368827830641561163202552340538953317660905343784463648327091866753143511563962142301654517849221687060754938445009903039533225271578059744869892041245692539786317021870854786431217215114040565521032697743953509223620758711815663354701026902677092142730610783411137820499590977218932721313891298489523981895724783637202638839377819075581697268128600177567998256818488957955819568391132547142264035197879794022598253282608077298477933965924287935081935533822374412822009356023473736743796679255496168872721536353629028491657833184663074213018936540441874875153766577069065116800108682858520657995392636769963043534484921949288552684735809911057522478786351733638051360119224293081438862354625498136557567145750411165242069679286442819690731982599108039418016011062543170540585022179527359277728506024145499552761187705913058911965397763871649948657141146867296464507330501782461909866669394974829932751800839685869618544297852212112528085427370114369196456084421043713393372120718333321949746033218187236402461491348798052120338035927161271851601610843917118775886111606772364532406032236546602827052308831816884808424497218146584167515123052281366284677618974056351676083350742644687303481075022489674648705907274955289833975224302984290315191056365089831663829450598951177884908015459798282252438474428240014445894112038790427949200173311534956060067689072517132516191508128849222718696912169315503244700844482842942775960433456433235727005102887532240065530426459347795461191913705792357486424869631674946940429086660043209419604760730950484109360215656387990077905565393982210888877088971636328507191335504379181835179590255543543670968187467656921521266198038630856151942944716228119949867477897961479756710027900982331261855244950089984449500647078243423801588510110406376596326767201629960140668344435183876514049707191741682308512350243745333582565974875622042614852369396106044200497986477985269147351218741604857219659058518131033206737208541424024051993980871798685385354610622616493838392593453409842181310794046415929789391542334652624771854829103240677323970191581458340124180017474506269880799009368196117858709445482891999889192704378614621213886055808669198657871994618239655670866257672015227252677012082607360804196102934645039093186307181159216610665913529938756461491066901264276887530460253910353916442888556995168948981030502710735311654987251642489133507851647782782984605178741996607238417336073544181824886945844122351508044558709001300453334288071235349853639660825251320207199703427270001811685032731673837291411751469652150331125280214850338444496584031551809343331768357093042283163986141134315717821736561352761158270529885327656423901822083427545509913472077167414968948612429942033804665798806406496315992383704840619329466915015031546487877310103692059165844806034770157099213424957711356295673500875925807403941200569557724848178735724179374596971770276924471282655061885644226584422202919814490414198532463388411664673996807747704262624670107559717229626317436763222060910026239256926265494549125756867503105716978179406096101899724463898386744438010858143736503142281873969520276796084811404274088298329091940772730706490921842275280691449754527209201085890860319338818921157267458542993425637298625524403462386766016008892674741354079462353441676154314554907963560230873098239673455361770664158677117616017778686175899029239843307600472842339858699519011954270635357572568547206319458312697919537452564077617475166149810999840698447815983947074680613149642648064424297681985573779906896398924132263895179146482338239807385788572019298628654977278736013549359562383093548696719579405713652738018492954767692408990569101487484608056396867129116918487288882658347874376669542715378070527293844530560960157785173035327320129603752463341496861444913020217705004974168978750471808587555264140656080569219633604812689698981931703137285692204163514119552967270393261837095521943410896762200251862209065053526435212716113469825476825753755186316627300261276782127075081656472740866937320244032785319212096546390862237215386191599774358375826656422671857298213840987308614694805260755202416025559343282359986315772947579270567259425342235723007448199845086320301431133598931185943045766587917896891549194905291616761867876289107324083224032191158687438143306350053044301555704596706433816283608349294318868943833114311028194889367420777557397227546196733370668641465061420811478667451221229414396005517708222958982379308180180639165542109907115481859308027590894589481272739181311359932574355773891520672546778400275222229382426291144340213614545452458941397806810804351109919301337121452171089531021206403822051266601162407408869722381488289702525470065388883833852984955730723771867881376755236611143476421913836975487396413246003095123870320960980753702364955681083238717065165671736697358461501733498274608505374627975573283712416616991810619648656097588792351625256633062347110225043156143840941243057877152788411617914537079344462202296774847719842866336204587331849360377511958307542528805715426289612758585267178420465774666558587792049698044960516326299107265335356697543758221952232833249636083849452247511069564547978097574302109078896715106561639304225548423819270605891032761526452892918258518823876951396902286123610625395111203934742259172417900604993738006805821812864703183685618142419215024038321681122688218827281251880077381117133496666661112199064836542316313898894533806244376993411702287305373158444002429060737722580472417520816374254838124454606545317130337729504241163403661133471899793486558247568914792685636741788438690303570573310851627811412042807947845244893442945643388253085356554719155729921207567118279068017124414507014582609989212895811182540517305888031019468405207877399390724758145742847493590727901135719464761913826553841929892288947942719135786109828596654580081823882654407983062023810105493596399293400772384617051043804204901397202821124002976247257040372287593314921570780759943721066434387888109806341269762188262973165599177497663993327240120215672943170892539379881429411404730409800552208428068945354410087327730763194309891619384893633639490457668916058140978136978940802449643396015264816783839990159705450757051483108292816805631401295883098181707576239500396287164406073286029697514276802798772843172717449691219214669471936505912052582415652526220734976342960412388544433596793629263176462289815235336469006591640580785092218265706132952791518876347080422902232438549502218051461189490691592901618232837443194820225026258248084163991092989867548270926538098262158066322232921688568075911966284877909301856214456097560033113164633361085414954217306501125396643439237295592539767157409338727757286327405022927696458664612435081174120002486881700063757583402896900271897744672038865184660603062345022863777772668763098899037720705062245923177490497723628424351666145380401654877884449705105830413136797735298047417879532500970363898323820380146556134489967305081761803967156441852362768696269094515397949609774439527118516276118078001582860478550839477951601137885282856769423285739103788602696518629466230514755092024158565364863632600108529507793077672682406866967596399231681069811644970249779522910307500248146051417465409697269059398796038865876947485189332652713799412501988611139064040167363563299855771131661257208537579096446098706092758553124919558941799657948164169083990379563101117428927857504765774124895983850390688091423214451352146874941204498235633125258824269648012878941771673870899702358142337980664087410107024071646835153095983491446446880901872249093182181616833663540889094296056501795431490467921568310916813800078880859814445308254641038901108890914221303816180167991005891014782904427730506840115197966359629925703414117338033953627469823367926116266103155967994381114820075514391397389161171979640709672623416829510714588004965549646150783533144841718448917749244130886643830842994098871379232900292357239311980227324438248793203196747969469138738146339347561931955852622297870265750788322943119150928510564215554332122475083222469493928097939720361035265295151414023223253788592149530285914291306790879497348233308457649387097022832158496836898373637241761562503873724123896296509596485244070328075951471282162981937025593402991462621116538630185588785629287452015649894985481046279064109710781656690803639814745545626197380886822757142561247256786411139406340263415370914226043674553522473691460141639460807055372249594310095296180586774589509661989473999371851354148147074977291914054484647399679702106752665483657511137936184464357570984255945843726964701441964343705545673490951285386516437624093303650201740152423629333857149958127996246592896871286102955071107908668326583370919071773837293020959386651759873666436604144805574817099055427194333728672922487237652585527138511092879623268003465854679967270533377201890112642050998784799087177116094755836309881960348744155463120505478959358550021023342451497534685687995832007312099071478056161191078643935566039751046610946045122448465611735404545562430193296422065777750084702355856913323278722881159741522706896519600132341146434888778468347091429841613874528221521977975531528362708518247068898437136821858675026435705453652755978748787574240168876133863304412848833729072646418169319353002239314389835627353751389567109421326297837504542842611560662903934550667049243880358048590931448779109073494357148653197669942919494926404704687090756347624083828936620256004355489234451162338002752141141670381706160029141388478702722611539413668088322588655573957102158212549028196827908131540879542043115530695817779299211588556034963009217834965277978409126623631827610996601874657778194306823279448657494344534655248227085258020527050299223787412210665377406814657187337816149107955513922981367733982981222258049614409317056462914653439454448930092871646319978848648827275191674325963735904476384199157375256900623736482361791793248617702280776365840170223923961618124717928511191018976998714488802473064766391239421035185482727055131522867930605914176713979677014006690891464116054303886826147738011110470416557514554943337033654309926836607004013332154896047384041866429166627746031012822594017147362247347221026931691712326807494164761052149597884689750903263510931345061295579721368093200547157210701198137998522258541113208396596605080890088271488812900367717402805071897618796029826550293438064568668322544474585182970413259629452893691256462974466918795678577204436528715397510712331134963172311992239322862159031281397521484104831209030036466523496516287508976184249552661609716449756128359571708171177136502738289266925742472048184784110414566177310348380063372739941541554256933030183523522613742623626135847784110684233009849645586723060274266409473824895371558120693058308624312345742645610603577425002835404364738523184935444473993347743135839327835216733062902658086228849275085788960898140831443839064901458380088310343594642190570225787257207155849142734273151042237565801386065726341625205419478521941346357463926545155822890255588114432743749136529368878791265649339778306174074871551432942364566976914590684909804299082028953731873537021045087958101875611823892715243550386385080901037495245291644153678830745967582818905513807408126106118248644077305455288029282130478836963914354873412957933508265940347443823761104033541190620672438042657226228330699976428008636628541214872844754938983169726093290148772166357286667504990764546976206501843928542434036236504720157556780396721650962050382670849806080792317653150993196632757322672693434123173586937953296445974002952459654295931880711278965872584890606282794692894952997609016888389564889159305287046954649934838937343107119963789844655958564223449611619697966974429470173539701612352159116765110448379141309424794224994149161241534408599728879840658238383469025883916726566209263256895848091208580616241471472357566841516445103509846107553563962106528134475814267819957864125881069183413186119502544014042800504165615344100974619243560523250180647528766919077253728403490713714370216065253743497557202838204750390543179893472647940390232894540979069486465131238310504521945267500263517545862690253663674569130179940577027296505696997055242274451527399928213538126046432773709156635924669670295607101186294373870739925619051183866500284277982948179499803278914395956048982860801198459168367722019502542669137562510405011611389569395650493176301602198880420286557382263955844038414708780600670335147912178306031457649399070285109575827666753052863754424152736156355292846083274747568779099084573095923723268816255237808424532224543346565602662102704887224462907783193496569765165996163648899039195972056902937344073823582509873015453310042505336934978498353129024620347551872568081952112255871646965368494951276652525290846335488729510676658493721991662895317855628556586898571523281304182793355092916589142973280664374359603300345195305233039079619952983028466476396265245305742806344497204547789324263944630640472921384191663441182605644328176964300620006383921795205126029846121749663827038722160379538919145959902892381320800668447613096840538992510244139430690088739331002667512483361551155911997980011710832071246047515732207181443957452130122224304419715826730442969258705793458542058811008745871416341567325352227567359804495952507838038433292233601115932008936432727380260226485132440111402727292382843227087635873041141480962195175677867678037727237706818862460097511711249805664082622698190440088594897282692440011820905174875848342327833764062026247777485383489693250976706105628154108151170665983192538974039532083603891951878699536335600500856508366229246549867964508113644970932706291908080385368694120402194516882797015818794803073045193101802075322069897712811181711655790916539738989695480052970699443327399898645896219418730405917296814145359513323214645067992907231474149211689273300082384073024725176467612381779572985024638809235435264240764746056179833464771471270603700497675771233706280665023814882099300718643067449118076538370615736336901504944245075062550964329419406469503373388318357516511720021931930171632734174883254989543960021124208372457022195057600788620703520754423744869821191952405263452299735785085180275696586218772027078672222082559211333792392149833586183187531267419002053093575201835130751321271563347003369078183258227526889592671093017294881739361861753772662222690554456217705329687454056978915658909765350861225230486900365038596965691887941205008860471162912397570970207802185360462236927223115837130961831011295396633771001376331811170355528723542592352266620575569839266895747274831909142675926343442641882614943917609833192697441020462902622693529525434000007143389108591981626657138537352278065901314424168030426444682564912779014193888354346494484502400915401397807677938404093336703663398193442981297954468902917826012426506164610713066083975588945859318581185698666463251811558953355057163348978285445627795156895704040635282789725686502957701396206916244497941652550927067483841531586727988095112711316891024157948157671468646495181827383613391778927257605600838756798773846058426733397703674803486369752884745985048712494998565100523065399239301299903981775936032785100944157794222185105027917087486189686851663476106981965421054368941284050495360426877373499695546419554705520577308209388624122840745644250560817457469068434373101864374835525924623104443985385602205782530946204974805217525061827025316336837002666766874630595759707860728308756251699099782126220870167136041275461663196319277130848276523345729658204996084944219239496158562196186075041424300716447293672083704738300912812287949402249130828276718764907674443800827701952395351348513784522915316432978696298425915759352396305718647152896999943323313293858519025159366466567087643846791682147456769691665781316670715287332922669381449560197281673959840847999119283645086509672156587317858636528821349288638677469061732399173476809660626780300007102687240324179039192832741937306272396937574584178823587398654843373373558226900957904556244864871592573244374778799393670073759241515180729163038467634303882861177605887103559810830395867999860630151860722917612964380993665674727035497095622595915322854549201604448047397679360513751885271686342608655588615614297727431296754512227496232909983549921715305658092112705451252696711677272568867599165274467471612731123124733752245907737824948512565456548889865817956579850890130434653500166691142002708704536862406749664488326659339583777748075433858937312974978539171601810880383087693165603940405754826596287955784865697684632108177262681194444360621036437528078052015239171372605638019087507417170224930775191253827682465662497145176838627194440181529315031418619361161137116754062850348018450635834966759988275209920704218295185598525962895740535897541626799736335478248868577332345489987849385087250900991024974757986012249798800154255994759616194812891448173242093160463768459171245210662090542153901872841132248858427128711984711679144826188575447439192565175239895428558250674220209139106658526834889877683015544107691667869800624380768045561040437585704490853444195817027576107996052842685646185581689940728830280882007135760312999504675080280086064512655211271909659888690943435451205554675167970039022974256488548880533377461149843490693092287888737935474846007936830576791050423641499542632326534975618096511889781668714126161357387505620474473391320976082727776002529184974937536540509856380898257820420649647021136276268618238937920134501104962095059105633862995809789226918816658765648727004057444520782757801505437892433204089914840285080346764862283988707250891424456441050612727202198171975165531034442888925038843885773091125016793734767969435938965766429984193885600530890543173898239347820066140861056591935524578775991755900654486479000896526064954779161673862760737749749755265059937448293068850605804321167775718038780314460768940600924101263569364907701997124749581738068085676922988529067440749759306882389994074552842932031870888394286857706279885027606744701187959361787449721805897593333211328396204255207892726567317999788241178881486806334443250509083020882347019673883477951524593190640506890713261129790392505312081095025583417578339002361623362112932026035427909856107435454961625861722243901402387268631124248218331654585442108724849516356028325611188362881994927963058779752488897468131720735577264304077431516616127312531534762190169414128320673568596507146179186972510138916690347243752619193267542694552999113351866060684673728580551123167083143846578361532244334999415357719263336056191305895305039109595572114791371639183823643609211375088680096918789254741543504542249818340174249262704712678308744838457670444716619087043987562072104867768815940815961745521743777595867025068444501259466679360523043566985733679786651762463440784166230686501181571662985639529088280215865491740488485088946828117538689664121978687325943133871647675863175447536642498716972504981754901599417939694412569338252133465307885637761937494953737586047456595831620894446199844395374828149645563587883041080598356983595798770783808865727724651759906907274919004324761190535052606164253251785371105010171437988878947021868144139178018512384698737514849431648719025289670690041197204934114835510183113973547507645824220001315299204638930366830697053950119264863090262708052134399804744599520139516211608895406154687712267771336535012146991814529005718420266083638597796312856935547649050952653651077126633968365102595651021556416099886859504116188520740703029244713267829324550024268960733894603350151002580947465923718279662340408228905303980370963203370963442182485176116281216566912091380275688729232993417870284847371044469738976632172651992867296524079801336320992723639534297492663741632998864581025279067732624154797566101063784511214655350067759728461191779355031544853986760645200760258955783409450367152996287126907410039249571290414238798373720007397869501941223083089572609756689833080180643436508665795359330596690475859852028710945205636738660606206881618012390494977875937087919990659410884168546635530642536302093951374377660876661094292567929984672504461942913025312751442768282699441956739694637483235064880388961007753124886503898641039797339095024286148486074684637867869233899937602594860510140502317659334795172995892626850406016331837735375230597870584225476388137330564498057627651813357207826342480661179320377129277975714545244160845795345307322508503490501718509888832671332363722605067348660321727834414826942202780368325448093798695395896372500964649857339160642602982904194213599333104412100688086788272315521123017067317324040775370387452621441131074389552236453814164987245023299315783847468291538397050493170185040762595308547765347871236909776840170031473902879912130230409249546054164361751821181158220356198703274040291870154306262539413985332985135364002966224144427962450279820095473108066274661313662127777132620938764211999774009795156561257614905977968539092330408937614717195713132835340127465078535892249422946030453670259107378038614554317542740614839337492004167824927457756169745057473101027823523776568478396804486034470806752754731288115664175184488629759555149911813054668107385984117577810188693962476860948647535544728770103365516234984598767385031141560507668653968208101519594298102845768561680962086393187834520099204415995868179939063927142955787531435003297230070598389039420818425393291886938020200688592952027833110306075280994915597359996047879627587946532258597943424371831073391434125457616353552025903491269008260330491096823065267711773939526962859467066176988079099067816578184453705637492490863542907951013219140772254083568876592148925640777849550116215905977722780816390191439012726987684938159016753615554967391957532171435846884689836062196536615796372320084231517315370365731948602212083820395509721698253640234040590571563811837216757218511377710261883230255427956635901857530737695129093919893745278023220223171127030613458767474438223818018442126234847886992269626822263249137222539627281389200325923489695527977322696454495806257611825175392910689503273644905452758324508695916693002640840658258990393649517019403139716536394951988747706667307179975054584595875200908876368276698987200311577197771437064730224706073333346681261831390491849357227004021691276478853254924539652626785525348029578535137243968758732152649798058533679469165250710806967895658124100592315267602022377701121169560501583257100404763129647599576991178412862885419160600463988992659683948265450319958719975376966361684596497633907088245704060892592919242571613062121518719056878100482150212038598287314047315207306742995897116565749577884208874746380963755956794074221239655265092145145120230636514923222928542925528258597058080102458617607860043065300449531634287368449558355337524076092121795020375979673293715658913275738537251239646989236711171172798574330163482342397316564056566102694710762872237833952279313025489638618717950115424605885477616206972340091933964977014203869247504431692413562121153216526490321124130299805873738256088710685246739443103542489814284375837647648417823078368742689517559965068084046765829527677435340127006489862430328979736267315501778777254499225479313980823777107829432477086188571729596501722175614258142389254693897059348948952137705774299285174151831627770239316460960842162068620144371836245933633420658678772372792147283250888870619109587403149907473056173817918526947993870426890581773917015420496863440412951855655921798249909245373343253755089731711284090007856706303897942353040663735232385785798254695442816376103759190998553214479548296902628119263071999921795997993625228458753003977887167771863288978518673151364645583944581721754451326021632853426679094807099959407861637344099063846388878094467825556082577375251319726572295024160445511005504859458297902210426775315497113962172162925876326123190978773123766348858240634410658634397688841280804076037490294269113792436254724595464935540437013069823028886823242947410580961051382770359695675083285336312739540075144556068841930110232540168748728866805887495132037236475994312620273174408615707126342571129421349431726518166786826446374302919030336459327115737538094856942818379991284171358977932986054514752675243265022641446973552745274933575842046008933987984550055009455948875767365931744881161495276830549027851775484092667932010614098041108587052662340763308137971546120329495178009499562507991404533142582024302874996979310090434786507215805600248926017998961974776077768394724035867182337644250188590879461254799748430467608137640525480956711489183734694562184063834472893781976260757590747052403194796944586144167579009931522556090662910574393380946615427304503226699574929240768504761580669880517215021264365071513827586729382460651229361105322872831093223530725105464459875339814258966502315627935200333511347824966966214168889150278309279536301090513535820771486085805431719033833375953716747818540252120928186347065318811494885775081364914169142859570075915376925975924158433806809145974295278988339949017484874506527411832202572236477078787679906394981913077780916227060500234206660401179649970581864054889236831587308086813609477819211225952750317918149952058749493160015318060949166345291520345734361243143320872141168749517708393310433323615141868973664048602360500147534434097456356119182315705514028650314263663653259435595502389764281222681958063539507098676747848333509927403300358358422772285575181307781966580616333167771836277148805424441581680753655028712103138701938656360866549070511750854923875493555000172856773919063867902640572730179785242478007578879931688923444883601137931851297566730439538714981139938532976238022526534561885547143337555090027511092095552285182474365542783050974488504429973972662189207650643108936274749160220688900384492069056164621141406509355360802212984841996777419161220435791376518488526100316550180050736766051551011625071277488444818812004119878293171078980837316676056236663095825028282386271336523739025955555049853414190519484813839841861562514361072006272793599341272647268964690369308348149741429862637106267911588251461029870407784914398578955636384965589516950712628294772050998458951272810032373673251219701671448981825125954842415661372625703033696889691367884823103695891461819768582429130384832831714642492520281393198059955659069963513321210197009118833160826128928009067102214613775618292509127824178256473616684656211606563463487139227186945406643440386994406097299981174618468909978185732448967331829485713360434671975707117031841824370523710542741609067588565293168204270894047022611003137599455773642580350332314654893748228419844033932779152495429224406348420617024030291918903083792958390927320608856424014303506209171044630993627137319415989093799308383515845005980807354717227710777444990598803357361505648139204805387108272452907583737033603116358331056531260706774741461542766774809916432308794818922538537078044483818528828736641633995079799107003228694980200858326155300918557350848606146787865351705515035425933754537877949238821659650378848681050049766263690270450181620321637001633096881180175818709497551485148788116397252809804008347348797492648241534107302933058660950567488069126759512342931228827564317452076248593288104525814094833057892353121354716823266261034713434722544372623022626339092959171818330526917830767225139696162991451372795042610352976450224034659660474438799574456060387419238375568986530491110506286559174030677367576220999996945900418823136161977090636308099640711141579648225868255014750545370766566010666937348897370813357166032940183136529103915604594016743860312251580607426723484144143479855073268704454048005888460423010557092867715156841122097553917021324854964858963121982381232321084528077761494753956234784357797714153619104840989525762919946157674912532954500313631581736913978219933178489386902123642641672197496923506098900135973602828982874441934063578851833079207684190211293433920103049458991786621975143894492491335217937464765108145726462888799869401988101968182574515278661544214292983093046270263848563898268086475455936407168786055907269106039762290145891833722062005451067220787545872158885127938068674004971080038433791744519201739259071879999532760307489036028987476935188307716110061495575376547908688964890301287340187557298388372995246565625409414787571526364564781050308269173295534118453805094287151261422798444703275164756694076672641838812916018508227792312328610931830616499691686740641259988997033547498121402529445820696293003196124609912624313960448260624925436558212234811801829104972725028521007782491799560440486426574964894973186891216455094818038170262936817366946196133786567714364252594451721642586318731512782467941586085871031476018502653346084423665117285268110872432353935132870209097313470708358044952994765817111589827020176334893724002573160772755521351545709770009022200814446891346138590365883447159733046540634197710158498387258902479088229264818801023069726373191734061089267777435972782491263465935173575186224263823337376488491901899747338587679887667394901751863797278746925071204117449341113150387156357728944394728902903485214784408513770739015953411141455723207560946131869001663215502078902096298705409566995621471803178697082101517068945318443113901556571981454214472195026963686237113311750691242782979754393188840060207676947215862005565730282466976605269301171937077858772669002134194053432733053073865731229361649155918120793881591751306995066232462444158638131964009558966780525104742287004453035263485966715867168032664953180946829043374395239913702078820740355901550863376698784262339880259669256566816583651833574508870783439985483447191890194634947398789647401878408719183185616359487526920667055351323044118159638898894019731384856932091468104825615486536056004631270298464979938142031311473176907133750935494459114757141692575802005133583410108390786069516072881228222812861070312620462579956317891052409149310242190584941605554306393101096407946197096896565728614455086866562288516664875436150583766508770488008971498533403656006376214466337569993345619359074268268229931923881183472054349170509154256121069438707347324527347255141501495515875170929665365423530391762563419312824282213681861937779813742447399613442579791163339556494065951612182309199956330524875668770625073386074527555319744799513030990470533747206420972107479735124348893180055462411946627198874665762340775141641679781085067591376627523833582322192735474420863619959340782187212181892419676231071076299462234210067925041334171083680584293440277335709728581950362975284454369355473739162152492757289853457742200427675167111795562591917628954286184933234041908930895677311470868853275452589833622319989530141233713835454452124702337007177084831555539636135294963898613857281008601079137525636177963834908334150878790187794688669377300644754604509021804828087519490279330811105620003391032771878794770434256530378061003008836273050158003841075266434798633475090671582757886942321712754594827921363056445909271792662822092820995673038327172916796769037349251597838576439639225740670641038749558680480640105765874943687076258351219489627812998693495508706811717678545088020925811984899796012739930858151904693854337029732869943124903489735782283165262061221487167943660368223454255256641467921600907532977408854366184886771443858947974437049963476230814674124405731825835761891521629362557397069017499669769135429357172517171193497323346118801779134324711663961332012771031036312733804983342004687434297942616486578794721230956344780466167539911540524575632216264324546899022969749402216472272290156528445329759243862313371761213201944639409767433306899001965310556741605830408583860108660533382373746196711211414639770085065907227633047686438421985885939207670504698879264534740239687120307997717531053131590334204466290968229419964516539006985511170628910694279587365393411707019914462276739281822738836876776242663877181832743126954260266489720739169280345641615247415480920835389074782427603093282745926679310232876990545910187863607406869369292941168618152868136482000212273545108577564368545871437827155360845653570943686691409070543116404379907971041462697869816964185563278876639167180031112619508444935374926395083847191734644074479038485776248696290079012300704745057459426104326987713452860499075971236292242272092704440575274444246017520637739405074002688096023554397272278278246882459162563486695167746754696640879929299843417187162645082844070072582721752408625458357988501147357900440978595988795731343959354641190149234252418040971827324948618541660238713253481016546668585097517850613023347621607732774094076068378455117976671416479767922437166114181643608896707411656764058276321239501696047519800361905458178746130013978014928840364445517888598465032155391098669212874479828869476167858800972241669104079620021866429044706935530904067532329207676145746619231874731966004454574161248719435033114733388191727970102275719626912429990959510740250509958421486438880429617588271374845700192313414848052342497504021459738909461607248187310274002038053393915770978601823932892648755700804594111164949704598169992774650901673328946559849327584238041942301681948851368511103318705748682564901901934484038091271410744336813391712190302765366870259924610507913544493448211405389177317474985981342526305261816786682256599145911200891889234271894678285995819499666136480870211384440160521394126937057537382720053426882001439539238130595898922354969706154964445095813044283428117950701102285190625019369149406137300348399762589650439385312157896747125282634636510767100582563169720982588340438912043336327451621358233231355609466451846241257586867400651285375336330118919984579186665690670477058508286897286582361175714639114322575224580532902013296794912105077260035756338141647002939447175243560154710151810763675894411355577276978916496183123673187841934001166665065561207759410595009784891501918555601631212309919354069091205010220452163928100148873678702029941533202144321149455768216473279257649762267529391260725914132267131609317809306043685319891444179936046691498305603614676585946490788843993110713535825332720041636392863649161461291501610519629771452119878687430471489237268232762157671688727736591821082785607622201753941766116548689192949724286157620112606319398196987060911631040704133812062530767057538900296088901037497518712137491983349708959722711279934142259129681158527631272397005766808883530475428028105033492824532137073177481118421840108015576069419355723330744749833880323024788952509963803218707545078321880612155734648971236533385239351044102970129674259346245740064763661801234435333616983045393691992107441165125264120241472409147972855930819043724102945613119798243529005291848519664433669391624597622021206030475806812905977370343069793815471478452078734689942982192005343807670366237670972087433146439805480349015304590789844197468667400278372156190186517855983588348474067631912234603466029112566202358604300712306991040939594774571782932820438786912689671599441330579971067276783360900652235194570256715871198950167935686921650734582613703605465585905244183593728371296191613415333085238670396852096682783671883299300362038360102947636090049015963411753601066207164187314180752595159213166344444641101554589195444157571316047905409520770057464833655797764563728274992693484666152183158853350812727602027605508633047010159138980348102727799603235653688024198408401336965444994824860344806444025636215537304560937687596323214104959998048918924913543028661749954136747435225481840553794728795442156664073958752759228744076451650244925775307406143920522442794935208849599141496196474528541474026485261737092988972884932223153842169382432665257149034045568502513822654833127750350901367881520157879767664468734748629947416495014257298003935087425520958909180382696449987715815340367384912161238473851365999463650048975833277133999280075517397923669230330857905553093013982206204574194666517465768262642286430344019818617155211969705621097013822743148359615528875371037583074128566238767471980177688219599181189446052560605302347484615634415086953489325728539240118402486596661429805767869593288121756593693141590497109201756453441322960322943320436708909936285511577150660684900817699963016324450550919805264158507942808869599954757519961082256217956721403219160533656110572348498777622931149681923098548840452618025019766724300721802598358248633408837063352256899656466284850431641684792264411868671200207887787174457220141600905849445020932698490635949957761545228310383428094394939476773172260338291270675958573276527458798469578354033998840164917890098414605226644193973842916209024512947976588032161166156819737166553038508682867996237221061987301950771653868711788901196964680572141299663096746828824305249807687555166234264973355587972798061271973673481065182673194089913333529652308495305270605800477588854714034805167851387700379437855611097745075242939120642422266093227560781842868554250919282143156469151723138715992388245439099737532825657470306482471328938930657377630159799585709651152045938958664402991716236832484693784681275814137257911426234049908655099637231027233295721663290101754698651448346883703171714281167467790957335320969078787304458618116333812906986198225814907180079630412008814820920768280988059391971933138206164753755917001164121978803853653986342469570799393012128731060034746251538186816928944245215064125912641302501604753718658955042652246117386390523488672310121326467876589865145142338193404038469645831176244609191721506983387191646263623748005624476673582647941974195867102758993306760172617523546221841398503504984161120119253365406193718161594976408112858009734803204080331949968680357593876582254707599956590361586193716980184101279210555235646449654765618717381031555011390492025561811210496187720268697883849770857418354090841844718517635066562782964355151222172937584743459380720372640048524066116284125655133411991163391584303958658819526807341177972981461749366796699450723217650373279329437124682863865279680330236961512251987557558059191585997370507783932695388959987556422972795747839830357050506713045948196307515684126416136974382810706350773688172522574896630065499135849543222232948327791721636619924234062941455878752039449190913230270704406923793365336065873663814167313620781036347836780564625372636198086247724180377945801341917221693841523778526878470409243294528103301648372740368178709668488224998426049757254735149843318933369905333541757196875161584925696671144249585543763945538213570683380380635771993970040143868797203085015683120321747873562984989660779375857124813162944304826289791676406216559133784677084015252171424513269234700968495924826675451391470550149929664944360828613106959069865587286003929116780350734105379925636809522683606296374574172044691870070186444967115023984357023780881860381532925565413533713037409247983967351196338406875425645829022826041867746253819173266174289341367548514558392910155885145597213460123415589961498300222889860629223812526650107274307104333372335849135233945714663292577604139967177041977078886283108404264399733382234235409465621331167369013653282318306480298647254524774849962498430239033445174949219977897146078026531695672044521130362318602702015896060472200409361239734048947801170368634584281625525174213976676517019503944171137395139448538290918802469326354996690411546203699840508419140758467488214145658556469066204092733034098220236690346102648079900867842486827874626077652660247623699768244500933291434307019459136261517906910494460024914215819530960402506709465545860873876079826410626046149374137790487627051130422974142503053017286160160071066010653655744246526357063884362854415844709890372972288114817949020529280832428469697406047123312017288151318551528118840261110634116836043623112823315504899090100473668752900104703338309858076913897545732302628217835796545753795246746949650820673374379836331201560804504603317486461693175302857161651544227046277552384011503963130350833511936186281311445071555426010293858244759183155530263812706246946192456389637423257132191654985361474625317412258526868902965324693387492613865502698952529428636247751775569143322988614013295063927497198228268171457671993448653443091103575076196709641156344162305012055243087422152361894671711888548124671666637492044644568925651777353382184885502105021601868642126439023911539211604324714490761015373781314848517446378726570758675843476672118353866304384208758710318492379282210029295803243264134902020075513629743501613015290853888967182327427796497163433803674277606897530100286926110414415962730527369882495928386688095276747477980458443307746967549609518769833276824470911995721706557107652595045847089835872205222557851427776207241984235963769238631648445991382932674099345012371886392570048264266301348511388193682520000725538366917578764133110306002595952140230766856887249287270235345550614845509127832447435718353188450500327202145228850527242665823287602363162028266994991781032125717228426920931329316663382430436084632558624175494188822327369993258717274882135033685530049708865588670355293420137770293093695012472093454096079709528385370481347383870666301122625538993651141539644167254100044878734254565150511356915747614993759521538868686966972034278696224657368773222063267003323291492203141940336459367644829075701828123474268773525816148486220291275729020121401663405808244894731669948084600015558511271054936670480120217424773878672634113648058004464155520412207050515646085787310636793463212530634183051145265395282954970157267668621125024087664198799310366773128888544949310486024604510860903830751991219149782844908897346336208218863936953793808283470149489713484099577507486558083282520355765772772668388561803072430746943124887408590183610496008112189934736174806415817480667590706127023382216538023978969186149698388230155437941808388433065263304920412523693256377043306339892201808769715984010226960269193652615010057895027285821311608802788388159157870797906772640965089810026138954153503956215463825387555432239546174013403352926714623533564191679734742539600208526436210187777988253646995600852175889109497052817300121893481738496360511123115457017792738555913385523618102122679564130419907171756775004328862636036695865561947413235676347523052805397106042544501114502250169108580307630669835492150311272459198217353755591018182435758217835164850233554368736470527625972930324485134230181275621774371157548298335588890108864953886367935183328950507454202280850185109545610946027180855945150324423918595351824216721596434103079340656692900536588336498199425224933205704443293213232341921744391293087329129574405963553245972204066382013497258159929592138022320374593152708993141724023203913234065115240787769429551582399137302063159166522095800732569793278820843757435829846470822029503114443329745586291410031639129370328179001693385779185421931246464056963584319143565432630538675181386601124996159968800767970997920258536389222018406255912581341585238368128931438133548716953444395311072625460732993321037965526864008015363992622853855047562853732466610070593166882903754386143459561295741802324770205115509239660595805123843603735036216902366021628025047804142711173691008266158352601092773528936896776803434849192671069681777275960783925756974049095234774868723044424851852509265795616385229436816110571651585826352576114453855133669362325145537969970790360264277040180935569481777827262107702523520820925022103371771537485705166588417221546709284213289543527586364606379761208592422872921540712728539796823120924936534907000536244890054887743836409757361877805812219256536603662410688781702033345563740848609222887522215177648422390368198597931857351981627847632596281606576268769302339726642149588841275898027054761993825157160469979861836914748779666052028296075516618099883264044721906200872740664074840945913247182493590847789979021294980965663254177136530621757586434828543126289733647721682435085797678597260036114208675745083825292206040276054534820507033547956996067031956641834572150456421670425239155787621774583554622332814070961364382108468851504080915613665226586058751847059528612425247424977021079825500398865621526328635964253998509360593400572128034385929090147156621949225035979302416326004091676933944889259572363320328127921801655816500289734834746554811890505396513161481974294668571787450838181569868638791855312037725552919494117619198816607229996757375005315340056722140131550706972981163595047445919164491314011697093028109844803249733323298413243166557046154682108095722945712241144096513881329147241837547944567405285008272487507103074486269059692600893339259308461609065353948305641796003985352947163365353735874875380683449163612735533509283638851027920355337539143804700761773594538325245924784952390092332724583951819769900685902911787097481253619194382292058402489142746371530448734428673265766077805652808760524065703976374587578144378447341938302559742613543362914924386472940288057093210467721621921339077236415165307923339619927520962601975748409432338312897994143314462548320705533683801323407477118648534335248650291759242966259174829090164241139311460708902055426014103477757757027607802655012042499913533459099563286801055765285682831299486176084412104999455511842999815191701423732553044967189610175045631258573512826094579127019638276878196723775427054613076358161471973080936459128376576555514763138213683051930135252521488268347673762806554751728846619897076595058680350249864452936760095075043517753056079062818435357940128589696824934871729251490339237723052682293257745010216092688811863102287432234165269503366202854731346019971048962757266331717550281207966385331349424308902943710381675153612673359056496894320909098446824848537508937909616191655867000075254335009880770592568945526957237262938975206115455703693420246693424955600049925340648405491355752495351611525925482354405529704083476702590657879479771303734359623097654592162188881632959648369300932826496084046832656991166205107898483137154802156582801497051800955425624103581310015610352840128907144764303900603978576790070719600618882276404043858430250385228366116039644019370332163567621184550131606034084757277104074112800751926139754362777759413935355159356771006331652241908351295115701315385935827951948588208956942982187763427855077178928763369397940117965752304733439269829404860165814802640481773583886228576408422975085602873726082969797683200282648392462181120223267736675694653120155852955929924197664297218776357727550319660219063853000188540311622536747675945221471798084900397787214253206799156391298723209716588711368288645946890218654364560195500144677034344708404754595934888967185626650443352879192103163802894413744596272146491129995509698775542148802796142828558924428453958882758742489524785275134726217081508650693297862454193585189198713942180602314867516743471111687797833737249849583360703194448795660442229595103097854328013013103265138113742080418282101995757653786707907773662339877948634008051275223711882230204212628501555019673210420952246186803227628060492532818882571273499503705391185977316863382770651319675170945862633970703120264151971928536083324146700309352548872778430628392399456993194502323861330748863030786715765968791074153139725318060555561592537151292784091365464376990148520178572762112195166709756618935319446200174500483026991177061739531314171681403732436637574320985379973155120486573807064339866811056090904207158354790801719181479237328843531520900749818559840414643817218553073871612503424935584038604781229645898397140842196766530432122708914587933452849772934505092647649134100034061493450934151989128326614871916878029121884560926006844564872695762038292355734930334558260885528896805262789583024832880140096415750293018139769388201295066175236585962811183889971394834998210217142720727694215174899457180133828574039306769247545842761429108021930388281635717029950253561217291330477675971701785279634281353464519702024519454766803659663825843691426226322608190704745087541760707772880949020921803189666581399824245626608485304440739506898269950699048702072752636258279364551345204783142910732043563759000219136700940575020689493942196810832500128554025461556966558641600980625358067248333353900534287583220295522435470526879571076107871356953026017454509869444479975322203631442537091134221114316666018493925580073645906050556779389882031236320331472779280458798956309607239014584715261428439868433128934185080342203173351698973832331574802354180421772818808980738748955191135050699315747997532128226568680732075804775409053115838197385090892589078075803619152297122026974175708850321175199317671734860981054415553689973993940133629344129394621735681111013690653368981088798182330180303950037405457206872492665267985891326529139985109199874631610321046934826186412316617342041663433679201402449243299247043926364043420181124938651078699899816105479324721669712535076594559405150244172318707624061121754614149740846798561613829292181245988116130882387819468358220890536598741282654986247458364226668735575741137937057740988312536415233217670480077210119737668305483212022457894284114427425957124848147648037724291656093796219764313211619297523743699723335788412224987887540115158688020665792956890443872304755108526507382061118399598790865809471045728552527199324908026289334554762546079847254064593929271573362928762222600631164065423926138126610756003830522128338940169270322027022199658766881623587090812854297253587775125357970023052306563000725525947049006700449934248409531147333938024586445547476681709058329465492368437323588164816616912975648221195673226318820051757811408736051836621982986610491073541469390337598110784656501594309937991158967512201890826891142891115498231775458724449204408672446644235722027062014402344261317566399722547683679313214563416896791382304725528643751736042314137586514937291513061842609104376568899419156594037579249317767679204620100469403226653228205650583728362327525603932430387831843538116344453144989086408136622021997413945990638200137512988237398896849053232029512726611095635840127741777127269058369741694357205356518887531573076494969658945485754438545265849785324862167276410794042152584745351096463021809956174025998981639538773606008227768794367244887614443519806760178344662902753305189346505149529093272556104746228021228680076525967874092029922185932076906930512689878552478375406947224396835815744457355771301266694734854582508541170080586316469789139983113962525548217571600152574877168474706895354119377567762127896390125487158769780897791733412205514061896582602318255510070935907124098559215908653858541596993881211299942682229391972446861850373511154583063206776780838702065811791378121842304222138412325893400957689898909134614349460844673193730589180284599269765056906593440473471049499890478320186451498098096874488017032040904320109115390497442836855012245968604914919032592598798368900792260352021119067298851384273405862622141431716585070443361044154905591609071440683100854878594217321240007415211560484503406523055825505575300426092937349201218750010975734001392358377281205369521660541677692673825924610999611748078710747438098899784496292821717907342529729942478151606988966628789359279802682735807367010387745895987259890076071063543574544477325025034681157931031613144175566831715415400937147634113581794191788390861037992112493035170822476204611958576094138105185069222583868327633714089295215953101713590148847836887145480783144165277730434650637804764194565882724449255849326519307452265860528180379885465206646519525019997129652240284308495897576714210175389396749016266759816163605543813285977215058831753224018434771593862321931979015975751947998932781100753577540652943119247073033702006648859364135475294077069666730154864320864601321388755256917938551420288951126747852759794419653195180086996067285788298015663254636576975339475071773217048113897499207248374527079556529861215921670001987700750990151421530061251621336486752929994610644073428551511284410362064509546422529047305380102918400365958785858292998509670053107190761572697628026808532709142982527135132696386959108539151842011452723697558054595641146573865245218619675706790991715921900452646011377176609537452842978406674812010538828293696889918601453545580619911591218186664704249344307402394011642323003145737201423116241334621089505178216401976709398864236617275084500056940575436052060731672829759007685171229902133764173049842600723478611517170137131552687989495567985034346545999267346627224712145421329212389851932956808497157676561597531138229468692724978663004816547792166156002843044298850945368981173562222809261348356663461511257553431699915920620860761854876104501525117757921088345017851825667377452897879834544762123774470713054590133090225966487051135941384124056342654824852031913060286173885855125193925681115077694795970146216471197913865247089583759393699807365135580079307766624339935642978791388572575221296954448678998316354423404777438000138741500976826777159216094067432299658844902502611179534754616477177980968554184409276177927169099894788864199049874850442427696537461394152245171127926396788382373816371362252894269602932512026708882546646028934243643537503834785646811186680167382814649317167906846396526335719473534753751498646715264870857610035124539206611054123964178605508999897475855348983744146903040318033637018725099395405757758956292639979190605816893985837689215450999112831599197439261557566886510651943215853549748391854905923936890600347176830696575288144290227786476441915286928393099107239700451456190006261036782860874145430639807940030165197044542676132415116919629795571369061419612290631653952583551666044873625764831067515311228543433454244884550993518651207791491362313748504653894714601077724679721641614708755486189204969444296262544458339980200220363295213601866343907838359844138352181754745973123141237518397941815060009196742388001503466047634043116500307730419274111696960401367947689247689125412128236529114623680096434761191467066439417939375897138284214369843456170903413957852808982274731012423593015730373713539599289628982654036425652734207323612314359394519593909027638807880213899735427012964834123049474548670354936565928083552915736149910908214483659789739730644867658043379111984575490198443969057984074325107934730151852142046599347305902555053300659496957292383627300370803582322721251031696148813759427392831251762331373723053880376940867687368386615987587507921623672494506182531469149826099685295007337177842539920873361928204241549092316360787471195572795336961795163185711781292350229084007191495264151518109932437353809639254749578968181231079084786802625534088182989741603502827918